本项目通过C语言编程实践,实现了基于数组和链表的学生信息管理系统,涵盖增删改查等基本功能,旨在提升数据结构理解和实际应用能力。
基于数组的“学生信息管理系统”实验内容:编写并调试程序来实现学校各专业班级的学生信息管理功能。定义一个包括学号、姓名、专业、班级以及三门成绩在内的学生信息结构体类型,N被设定为符号常量,并且创建包含N名学生的结构体数组。
1. 在主函数中通过菜单形式向用户提供各项操作选项。
2. 编写Input函数以从键盘输入任意数量的学生信息。
3. 实现Save功能将所有或部分学生的信息保存至指定文件,用户可以选择存储全部或者选择性地存储一部分数据到文件内。
4. 定义Output函数用于格式化输出特定学生的详细信息,并允许用户通过学号来检索相应记录。
5. 设计Fetch函数能够从文件中随机读取一个具体的学生条目。
6. 创建Del函数,删除指定学号对应的学生资料并更新原文件中的内容。
7. 实现功能以展示所有学生的信息包括总分和平均成绩。
8. 编写Max函数计算某门课程的所有学生的最高分数,并输出该分数及对应的姓名;若存在多个相同高分,则全部列出这些名字。
9. 定义Sort_select,对特定专业的学生依据总的平均分进行简单选择排序(由低到高)。
10. 设计Sort_bubble以针对某一专业内某班级的学生按总成绩从高到底实施冒泡排序。
11. 编写Sort_insert函数用于按照一门课程的成绩从小至大为某个专业内的特定班级学生执行直接插入排序操作。
12. 实现Search功能,该功能支持查找智能专业的第一班中所有综合分数达到或超过240分的学生信息。
13. 定义printmenu打印菜单并提供退出选项。
基于链表的“学生信息管理系统”实验内容:编写程序以实现学校各专业班级的信息管理。定义一个包括学号、姓名、班级和专业的结构体类型,以及三门课程的成绩,并建立单向循环链表来存储这些数据。
1. 主函数中通过菜单形式提供多种操作选项给用户选择。
2. 实现CreateList函数按照学生编号从小到大顺序创建有序的链表。此过程逆序输入n个学生的资料(调用n次input),即先录入较大的学号,形成带头结点的单向循环列表。
3. 定义Output以指向某特定节点为参数输出该生的信息。
4. 实现Save函数将学生信息写入文件中保存起来。
5. 设计Fetch从文件随机读取一个学生的记录并展示其详细资料。
6. 编写Search_num用于查找指定学号的学生,返回对应结点的指针作为结果。
7. 创建InsertList来在链表中的适当位置插入一个新的学生信息节点,并维持整个列表按学号排序的状态不变。
8. 设计Delete_num从已建立好的有序单向循环链表中删除特定学号学生的记录。
9. 实现Search_major_subject_score函数查找指定专业内某门课程成绩低于给定分数的学生,返回指向该学生的指针作为结果。
10. 编写Delete_major_subject功能用于移除符合某一专业和所设定的最低标准的成绩条件下的学生信息。