高级语言程序第9次个人作业

这个作业属于哪个课程 2025高级语言程序设计 (福州大学)
这个作业要求在哪里 高级语言程序设计课程第九次个人作业
学号 102300317
姓名 李东阳
  1. 作业内容
    声明一个结构体类型,用来存放某个学生的姓名、学号、性别、班级、三科成绩,并且打印出来该学生信息。
    定义一个结构体数组,用来存放班级中N个学生以上信息,编写三个函数进行信息输入、排序和输出。分别使用数组和指针作为函数参数,完成学生信息输入、以及成绩从小到大排序、按排序顺序进行信息输出。
    设计一个程序以指针和结构体变量名分别访问结构体变量的成员,进行输出。
    设计一个程序使用typedef定义结构体类型的别名。
    建立一个链表,链表的节点个数为N(>5),使用从链尾到链头的建立方式和从链头到链尾的建立方式。
    对建立好的链表进行遍历。
    编写程序删除链表中的某个节点。
    编写程序根据一定的条件,删除多个节点,该条件要在作业中写出。
    编写程序根据一定的条件,插入多个节点,该条件要在作业中写出。
    image

  2. 结构体声明和typedef
    声明了Student结构体,包含姓名、学号、性别、班级、三科成绩
    使用typedef定义了Student和StudentPtr别名

image
image
image
image
image
image
image
image
image
image
image

  1. 功能实现
    单个学生信息操作:使用结构体变量名和指针分别访问成员
    数组操作:分别用数组和指针作为函数参数实现输入、排序、输出
    排序功能:按三科总成绩从小到大排序
    链表操作:
    两种建立方式:从链尾到链头、从链头到链尾
    遍历链表
    删除单个节点(按学号)
    删除多个节点:条件为总成绩低于180分
    插入多个节点:条件为在学号大于"1001"的节点后插入新节点

程序运行:
image
image
image

总结:
结构体的多重表示方式
通过本次作业,我深刻理解了结构体的三种访问方式:
结构体变量名访问:stu.name - 直观明了
结构体指针访问:pStu->name - 效率更高
结构体数组访问:students[i].name - 适合批量处理

思考:
不同场景选择不同的访问方式,对于单个变量用.,对于指针用->,既能保证代码清晰度,又能提升效率。
函数参数传递方式的对比
作业要求分别用数组和指针作为函数参数,让我体会到:
数组参数:void func(Student students[])
更符合直觉,易于理解
编译器会自动转换为指针
适合初学者理解数组操作
指针参数:void func(Student *students)
更贴近底层实现
操作更灵活
可以用于动态内存分配

posted @ 2025-12-15 16:39  102300317-李东阳  阅读(3)  评论(0)    收藏  举报