C语言学生成绩管理系统(含源代码)宋晏吉资料下载.pdf
《C语言学生成绩管理系统(含源代码)宋晏吉资料下载.pdf》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统(含源代码)宋晏吉资料下载.pdf(15页珍藏版)》请在冰豆网上搜索。
1.程序设计组成框图:
学生成绩管理系统输入学生成绩查看学生成绩及成绩排序通过学号查询学生成绩统计成绩信息通过学号修改学生成绩添加学生成绩通过学号删除学生成绩保存学生成绩退出程序2:
模块功能说明:
1输入功能:
输入学生姓名学号及成绩。
2查看功能:
输出姓名学号及各科成绩。
3查询功能:
通过学号查询学生姓名及各科成绩。
4统计功能:
统计班级学生及格率,优秀率,各个学生成绩方差等。
5修改功能:
通过输入学号修改指定学生的错误信息。
6添加功能:
添加学生信息。
7删除功能:
通过输入学号输入指定学生信息。
8保存功能:
将学生信息保存。
9退出系统。
-3-3:
主要函数之间的调用关系及各自功能:
主要函数的函数原型voidinputscore(void);
voidsavescore(void);
voidavergescore(void);
voidmodifyscore(void);
voidlookscore(void);
voidsearchscore(void);
voidstatistic(void);
voidadd(void);
voidmodify(void);
voiddelscore(void);
voidmenu(void);
i.在菜单界面输入1,调用函数inputscore()实现输入学生成绩信息功能。
ii.在菜单界面2,调用函数lookscore()实现学生成绩按平均分高低排序输。
出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算。
iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。
iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。
v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。
vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。
viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。
ix.在菜单界面输入9,退出成绩管理系统。
-4-开始输入指令19输入成绩查询成绩成绩统计修改成绩添加成绩删除成绩保存成绩显示成绩123456789退出三程序运行效果截图1主菜单-5-2输入成绩3查看成绩4查询成绩5统计成绩-6-6修改成绩7添加成绩-7-8删除成绩9保存成绩四、源代码#include#include#include#include#defineN30#defineM4typedefstructstudentcharnumber9;
/*学号*/charname20;
/*姓名*/charsex15;
/*性别,“0”代表女,“1”代表男*/intage;
/*年龄*/floatscoreM;
/*成绩*/intorder;
/*排名*/-8-floataver;
/*平均成绩*/floattotal;
/*总分*/STU;
STUstuN;
intn;
voidinputscore(void);
voidsum(void);
voidmenue(void);
voidmain()shortintflag=0;
menue();
doflag=1;
switch(getch()case1:
inputscore();
break;
/*输入成绩*/case2:
lookscore();
/*查看成绩*/case3:
searchscore();
/*查找成绩*/case4:
statistic();
/*成绩统计*/case5:
modify();
/*修改成绩*/case6:
add();
/*添加成绩*/case7:
delscore();
/*删除成绩*/case8:
savescore();
/*保存成绩*/case9:
exit(0);
/*退出成绩*/default:
printf(输入有误n);
printf(按任意键继续n);
getch();
while(flag=1);
voidmenue(void)-9-system(cls);
printf(n);
printf(*欢迎进入学生成绩管理系统*n);
printf(菜单n);
printf(-输入成绩-1n);
printf(-查看成绩及成绩排序-2n);
printf(-查询学生成绩-3n);
printf(-成绩统计-4n);
printf(-修改成绩-5n);
printf(-添加成绩-6n);
printf(-删除成绩-7n);
printf(-保存成绩-8n);
printf(-退出系统-9n);
printf(*n);
printf(请输入您的选择n);
/*输入各个同学的学生信息*/voidinputscore(void)inti,j;
system(cls);
printf(请输入学生总数:
n);
scanf(%d,&
printf(提示:
*输入学号时请输入由8位数字组成的学号,如012104000*n);
for(i=0;
in;
i+)printf(请输入学生%d的学号:
n,i+1);
scanf(%s,stui.number);
printf(请输入学生%d的姓名:
scanf(%s,stui.name);
printf(请输入学生%d的性别(“0”代表女,“1”代表男):
scanf(%s,&
stui.sex);
printf(请输入学生%d的年龄:
stui.age);
printf(请输入学生%d的成绩:
printf(高数t马哲t外语tc语言n);
for(j=0;
jM;
j+)scanf(%f,&
stui.scorej);
printf(成功输入n);
/*计算各个同学的总分*/voidtotal(void)-10-inti,j;
i+)stui.total=0;
j+)stui.total+=stui.scorej;
/*计算各个同学的平均分*/voidavergescore(void)inti,j;
i+)stui.aver=0;
j+)stui.aver+=stui.scorej;
stui.aver=stui.aver/M;
/*查看学生成绩及根据平均分对学生进行排序*/voidlookscore(void)inti,j,k;
STUt;
total();
avergescore();
in-1;
i+)for(k=i,j=i+1;
jstuk.aver)k=j;
if(k!
=j)t=stuk;
stuk=stui;
stui=t;
printf(名次t学号tt姓名t性别t年龄t高数t马哲t外语tc语言t总分t平均分n);
-11-for(i=0;
i+)printf(%dt%st%st%st%dt,i+1,stui.number,stui.name,stui.sex,stui.age);
j+)printf(%4.2ft,stui.scorej);
printf(%4.2ft,stui.total);
printf(%4.2f,stui.aver);
/*通过输入学号查找学生成绩*/voidsearchscore(void)chara10;
inti,j;
printf(请输入需查询的学生学号n);
scanf(%s,a);
i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t性别t年龄t高数t马哲t外语tc语言t总分t平均分n);
printf(%dt%st%st%st%dt,i+1,stui.number,stui.name,stui.sex,stui.age);
/*找到该学生成绩信息后跳出for循环*/elseprintf(未找到该学生信息n);
/*统计学生成绩信息,平均分及及格率*/voidstatistic(void)STU*p=stu;
inti;
floatcount=0.0,sum=0.0;
iaver;
printf(该班级平均分为n,sum/n);
/*平均分计算*/for(i=0;
iaver=60)count+;
printf(该班级及格率为%4.2f%n,count/n*100);
/*及格率计算*/count=0.0;
iaver=90)count+;
printf(该班级优秀率为%4.2f%n,count/n*100);
/*优秀率计算*/printf(平均分低于60的学生名单n);
i+)if(stui.aver60)printf(%sn,stui.name);
/*统计不及格学生名单*/*修改学生成绩*/voidmodify(void)chara10;
printf(请输入需要修改成绩的学生学号n);
printf(%4.2f,stui.total);
printf(请重新输入该学生的学号姓名:
scanf(%s%s,stui.number,stui.name);
printf(请重新输入学生成绩:
printf(高数t物理t马哲t外语tc语言n);
/*找到该学生成