用C语言设计一个简单的学生成绩管理系统。设有学生成绩文件student.txt,每位学生成绩信息包含学号(num)、姓名(name)、性别(sex)、出生日期(birthday,包括年、月、日,分别表示为year,month,day)、3门功课的成绩(高数、C语言、大学物理)、总分和平均分。设计程序,要求从文件student.txt中读出学生成绩表,之后参对成绩表进行如下操作: (1)建立学生成绩信息结构数组(从student.txt读入数据) (2)显示。即输出出所有成绩。 (3)添加。可添加一条或多条记录。 (4)排序。分为两个方面,按学号递增排序和按总分递减排序。 (5)查找。分为三方面:按学号查找、按姓名查找和按分数查找。 (6)计算。计算各门课的平均分数。 (7)保存。退出程序前将结果保存到studeng.txt。 2)要求 (1)设计一个简单的界面 (2)每一个功能设为一个模块
时间: 2023-12-22 16:05:55 浏览: 150
好的,这是一个比较大的项目,分为多个模块,需要逐步实现。
首先,我们需要设计一个菜单,让用户选择要进行的操作。可以使用switch语句实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int choice;
while(1)
{
printf("请选择操作:\n");
printf("1. 显示成绩\n");
printf("2. 添加成绩\n");
printf("3. 按学号排序\n");
printf("4. 按总分排序\n");
printf("5. 按学号查找\n");
printf("6. 按姓名查找\n");
printf("7. 按分数查找\n");
printf("8. 计算平均分\n");
printf("9. 保存成绩\n");
printf("0. 退出程序\n");
scanf("%d", &choice);
switch(choice)
{
case 1:
// 显示成绩
break;
case 2:
// 添加成绩
break;
case 3:
// 按学号排序
break;
case 4:
// 按总分排序
break;
case 5:
// 按学号查找
break;
case 6:
// 按姓名查找
break;
case 7:
// 按分数查找
break;
case 8:
// 计算平均分
break;
case 9:
// 保存成绩
break;
case 0:
// 退出程序
exit(0);
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
接下来,我们需要设计每个功能的模块。
1. 显示成绩
读取student.txt文件,将学生信息输出到终端上。
2. 添加成绩
读取用户输入的学生信息,并将其添加到结构体数组中。
3. 按学号排序
按照学号递增排序,可以使用冒泡排序或快速排序等算法。
4. 按总分排序
按照总分递减排序,同样可以使用冒泡排序或快速排序等算法。
5. 按学号查找
输入学号,查找学生信息。
6. 按姓名查找
输入姓名,查找学生信息。
7. 按分数查找
输入分数,查找成绩等于该分数的学生信息。
8. 计算平均分
计算每门课程的平均分数。
9. 保存成绩
将结构体数组中的学生信息保存到student.txt文件中。
阅读全文