学员成绩管理
2
问题描述
用C语言编写一个程序实现学员成绩管理,每个
学员包括3门课的成绩,从键盘输入学员信息,
包括学号、姓名、三门课成绩,计算出学员的平
均成绩,按照学员平均成绩由大到小排序
插入功能:在排序后的学员成绩表中插入一个学
员的信息,要求插入后仍然保持成绩表有序
删除功能:要求输入指定的学号,从学员信息表
中删除该学员,删除后的成绩表保持有序
3
问题分析
使用结构保存每个学员的信息,包括学号、姓名、三门课
的成绩、平均成绩
使用结构数组保存所有学员的信息
需要实现以下函数:
单个学员信息的录入;
显示学员信息;
排序;(按照平均成绩由大到小)
插入;(插入后保持有序)
删除;(删除后保持有序)
在主函数中调用以上函数,分别完成录入、排序、插入和
删除功能,并显示排序前后的学员信息,以及插入删除后
的学员信息
4
难点分析-1
学员信息用结构表示,包括学号、姓名、三门课成绩,平
均成绩
struct student
{
int no; //学号
char name[15]; //姓名
int score[3]; //三门课程的成绩
double avr; //平均成绩
};
信息保存在一个结构数组中,由于学员人数<50,所以结
构数组的大小定义为50
struct student stu[50];
5
难点分析-2
单个学员信息的录入函数
函数的原型:struct student input();
录入的同时,计算平均成绩,并保存在平均成绩字段中;
在主函数中调用“单个学员信息录入”函数
使用循环完成信息录入功能,由于不确定学员的数量(<50),
所以建议使用while循环;
要求根据用户的输入决定是否继续。比如:
输出:“是否继续? (y or n)”,如果输入y或者Y则继续录入,否
则结束录入;
录入的同时,记录录入学员信息的数量;