软件工程课程设计之学生成绩管理系统.pdf
软件工程课程设计之——学生成绩管理系
统
1.题目与要求
1.1问题提出
设计学生成绩管理系统,有N个学生,每个学生的
据包含学号(不重复卜姓名、三门课的成绩及平均成绩,
试设计一学生成绩管理系统
1.2本系统涉及的知识点
结构体组、结构体指针、组、循环、函、分
支、指针
1.3功能要求
1、成绩录入:输入学生的学号、姓名及三门课的成
绩;
2、成绩查询:(至少一种查询方式)。按学号查询
学生记录,或查询不及格学生的记录;
3、成绩统计:计算学生的平均分;根据学生的平均
分高低,对学生的据进行排序后输出;对学生单科成绩
排序,输出学生姓名与该科成绩;
4、退出系统:退出整个系统(即主菜单);
1.4根据所选菜单编写相应代码:
1)输入学生的信息,利用循环赋值的方式,给结构
体组赋值。
2)输出平均分函ave:首先定义double型组,
利用循环赋值的方式,计算出三门课的成绩的平均值放入
组中,利用循环的方式,输出相关值及平均值。
3)按学号查询成绩函search:首先输入要查询的
学号,与结构体中的学号进行比较,如果相等输出这个学
生的信息,另外输出没有查到相关结果。
4)按平均分排序后输出函average:首先另外一个
定义结构体组、结构体指针变量,计算三门课程的平均
值存到结构体成员aver中,利用循环的方式,进行平均
分排序,输出相应的学生信息。
5)对学生单科成绩排序后输出函grade:首先另外
一个定义结构体组、结构体指针变量,通过选择k的值
来选择按分几排序,利用循环的方式,进行单科成绩排
序(从大到小),输出学生姓名及该课的成绩。
6)退出程序。
2、附录:程序清单
#includestdio.h
#includestdlib.h
typedefstructstudent
intnum;
charname[13];
intscore[3];
doubleaver;
}STU;
voidaveSTUs[],intn)
{doublea[1000];
inti;
fori=0;in;i++)
H[i]=s[i].score[0]+s[i].score[l]+s[i].score[2])/3.0;
printf学号\t姓名\t\t分l\t分2\t分3\t平均分\n);
fori=0;in;i++)
nH
printf%d\t%s\t\t%d\t%d\t%d\t%.lt\n,sli].num,s[ij.name,
s[i].score[0],s[i].score[l],s[i].score[2],a[i]);
)
voidsearchSTUs[],intn,inta)
inti,k=0;
fori=0;in;i++)
if