《C语言课程设计—学籍信息管理系统》
学籍信息管理系统是使用C语言进行课程设计的一个典型项目,它要求开发者创建一个能够管理学生基本信息和学生成绩信息的系统。在这个系统中,数据存储在文本文件中,主要有两个文件:学生基本信息文件(A.TXT)和学生成绩基本信息文件(B.TXT)。系统需要实现数据录入、查询、删除和排序等功能。
1. **数据录入功能**:
系统需要允许用户录入学生的基本信息(如学号、姓名、性别、宿舍号码和电话号码)以及学生成绩信息(课程编号、课程名称、学分、平时成绩、实验成绩和卷面成绩)。综合成绩和实得学分根据特定的规则自动计算:
- 综合成绩计算:
- 若实验成绩为-1,表示无实验成绩,综合成绩 = 平时成绩 * 30% + 卷面成绩 * 70%。
- 若实验成绩不为-1,表示有实验成绩,综合成绩 = 平时成绩 * 15% + 实验成绩 * 15% + 卷面成绩 * 70%。
- 实得学分计算:
- 根据综合成绩的等级,按比例计算实得学分:
- 综合成绩在90~100之间,实得学分 = 学分 * 100%。
- 综合成绩在80~90之间,实得学分 = 学分 * 80%。
- 综合成绩在70~80之间,实得学分 = 学分 * 75%。
- 综合成绩在60~70之间,实得学分 = 学分 * 60%。
- 综合成绩在60分以下,实得学分 = 学分 * 0%。
2. **查询功能**:
- 学生基本情况查询:通过输入学号或姓名查询并显示学生的基本信息。
- 成绩查询:输入学号后,显示该学生所有课程的成绩情况,包括学号、课程名称、综合成绩和实得学分。
- 宿舍查询:输入宿舍号码,显示该宿舍所有学生的基本信息。
3. **删除功能**:
删除A.TXT中的学生信息时,同时从B.TXT中删除对应学生的所有成绩信息,确保数据一致性。
4. **排序功能**:
系统允许用户按照综合成绩或实得学分进行升序或降序排序,并显示排序后的数据。
在实现这个系统时,可以使用结构体数组来存储学生和成绩信息。例如,定义`StudentInfo`结构体存储学生基本信息,`GradeInfo`结构体存储学生成绩信息,然后将这两个结构体数组作为全局变量使用。主程序中,首先从文件中读取数据填充结构体数组,接着进入主循环,显示菜单供用户选择操作,如数据录入、查询、删除和排序等。每次操作完成后,可能需要更新文件内容以保存最新数据。
这个课程设计不仅锻炼了C语言编程技能,还涵盖了文件操作、结构体使用、数据处理及用户交互等多个方面,是学习和实践面向结构化编程的绝佳实例。通过这个项目,学生可以更深入地理解数据结构和算法在实际问题中的应用,以及如何用C语言实现一个完整的系统。