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











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



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

浙公网安备 33010602011771号