还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
,int a,i,j;//i定义为学生,j为学生分数a代表加入学生的数量systemcis;printfH已经转到添加成绩菜单\n;printf请输入新增加的学生人数:\nn;scanfn%dH,a;n=n+a;fori=n-a;in;i++{printfHW;printf请输入第%1位学生的学号:\n”,i+1;scanf%s”,stu[i].number;printfC*:\n;scanf%s”,stu[i].name;printf输入该学生性别\n;scanfC%s\stu[i].sex;printfC,请输入学生成绩:\n;printfn高数分\t英语分\tC语言分\n”;forj=0;jM;j++scanfn%fH,stu[i].score[j];printfC,添加成功\n;/米米标米米米米米糕糕秣米米米米删除学生成绩米米标米米标米米米米米米秣米米米糕标米米/voiddelscorevoidint i,j,c;char m,a
[10];//m用来存放后面输入删除的字母y或nsystemcis;printfC已经转到删除成绩菜单\n”;printf”请输入学生学号\n”;scanfn%s,a;fori=0;in;i++{ifstrcmpa,stu[i].number==0{printf名次\t学号\t\t\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\nH;printfn%d\t%s\t%s\t%s\tH,i+1,stu[i].number,stu[i].name,stu[i].sex;forj=0;jM;j++printfH%
4.2f\tn,stu[i].score[j];printfH%
4.2f\t,stufi].total;printfH%
4.2f”,stu[i].aver;printf\n;c=i;break;}elseprintfH未找到该学生信息\n”;printfC是否删除该学生成绩y/n成n;scanfn%s\m;ifm==,y,fori=c;in-l;i++stu[i]=stu[i+1];〃结构体整体赋值将后一位学生成绩信息拷贝迸入前一位学生信息的存储位置n=n-l;printf删除成绩成功\n;//删除该学生信息后学生总数减一elseprintfH删除成绩失败\n;/米米米米米米米米米米米米米米米米米米保存举4席婚)void savescorevoid{FILE*f;〃定义指针pint i,flag=l;char m;systemcis;printfH已经转到保存成绩菜单\n”;puts是否保存学生成绩y/n”;scanfn%sM,m;ifm==y{iffp=fopenHscore.datn,nwbn==NULL〃从文件score中打开{printfH文件打开失败\n;return;fori=0;in;i++iffwritestuFil,sizeofstruct student,1,fp!=l//学生成绩写{「14玳箕”保存失败\11”;flag=O;ifflag==lprintf保存成功保n;fclosefp;//界面关闭elsereturn;void addvoid;//学生成绩添加void modifyvoid;//学生成绩修改void delscorevoid;删除〃学生成绩void menuvoid;菜单〃学生成绩void main{short int flag=0;menu;do{flag=l;switchgetchO{case1:inputscore;break;〃在菜单界面输入1,调用i函数nputscore实现输入学生成绩信息功能,case2:1ookscor e;break;〃在菜单界面输入2调用函数,lookscore实现学生成绩按平均分高低排序输出同时lookscore函数调用avregescoreO函数实现各个学生的平均分计算,case3:searchscore;break;〃在菜单界面输入3调用searchscore函数实现通过学号查找学生成绩信息功能case4:statistic;break;〃在菜单界面输入4,调用statistic函数输出每一门课程的最高分,平均分以及不及格人员case5:modify;break;//在菜单界面输入5,调用modify函数实现通过学号修改学生成绩的功能case6:add;break;//在菜单界面输入6,调用add函数实现添加学生成绩case,7:delscoreO;break;//在菜单界面输入7,调用del score函数实现删除指定学生的成绩case8:savescore;break;//在菜单界面输入8,调用savescore函数将学生成绩信息保存case9:exit0;break;//在菜单界面输入9,退出成绩管理系统default:printf输入有误\n;printf按任意键继续\n”;getch;//按任意键继续,起到暂停的作用,函数头文件conio.h已经定义menu;//菜单}while flag==l;void menuvoidsystemcis;//清屏printfH\nH;printfn★★★★★★★欢迎迸入学生成绩管理系统★★★★★★★\n”;printfH菜单printfH☆输入成绩------------------------------------------------l\n”;☆查看成绩及成绩排序printfH--------------------2\n;printf☆查询学生成绩-------------------------------------------3\n”;printfH☆成绩统计------------------------------------------------4\n”;printfH☆修改成绩------------------------------------------------5\n”;printfH☆添加成绩------------------------------------------------6\n”;printfH☆删除成绩------------------------------------------------\n;7n☆保存成绩printf------------------------------------------------8\n”;☆退出系统printfH------------------------------------------------9\n”;printf★★★★★★★★★★★★★★★★★★★★★★★★\nn;printfH请输入您的选择1-9\n;/米糅糅米糅米米米糅糅输入各个同学的学生信息标糅米米标米米糅糅糅糕米糕米米米米米米米糕/void inputscorevoid{int i,j;//输入成绩systemcis;//清屏专用,以下出现位置作用相同已经转到输入成绩菜单\n”;printfHprintf请输入学生总数\n”;scanfn%dn,n;printf提示输入学号时请输入9位学生编号图书借阅证上的学号\n”;//因二维表上下需对正故有此要求fori=0;in;i++printf请输入第%1位学生的学号:\n”,i+1;scanfC%s”,stu[i].number;//输入学生学号printfn:\nn;scanf%sn,stufi].name;//输入学生名字printf请输入该学生性别\n”;scanfn%s\stu[i].sex;〃输入性别printf”请输入学生成绩\n”;printf高数分\t英语分\tC语言分\n“;forj=0;jM;j++scanfn%fn,stu[i].scorefj];//输入高数、英语、C语言的成绩printfH成功输入按任意键继续后请输入8进行保存\n”;/糕米糅米米米米米米米标标米计算各个同学的总分标米米糅米米米米米米米米糕株糕米糅米void totalvoid{int i,j;//定义变量i,j;i用来表示学生个数,j则用来表示学生每门课的分数fori=0;in;i++{stu[i],total=0;forj=0;jM;j++//M表示科目在头文件出已经定义stufi].total+=stu[iL score[j];}}/糕糅糅糅米糕米糕米糕计算各个同学的平均分米糕糅糕糕株糕糕米糅糕糅糕糅株米/void avergescorevoid{int i,j;//定义变量i,j;i用来表示学生个数,j则用来表示学生每门课的分数{printfn\nn;fori=0;in;i++{stu[i].aver=O;for j=0;jM;j++//M表示科目在头文件出已经定义stu[i].aver+=stu[i].score[j];}stu[i].aver=stu[i].aver/M;〃计算平均分/米米米秣米糅糅标查看学生成绩及根据平均分对学生进行排序糕糕标标米糕米秣米糕株糕/void lookscorevoid{int i,j,k;//i,j,k都表示学生成绩比较用来调换顺序STU t;total;//此处用来对调用函数的声明avergescoreO;systemcis;//清屏专用printfH已经转到查看成绩及成绩排序菜单\n”;fori=0;in-l;i++{fork=i,j=i+l;jn;j++ifstu[j].averstu[k].averk二j;ifk!=j{t=stu[k];stu[k]=stu[i];stu[i]=t;printf名次\t学号\t\t\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\n”;fori=0;in;i++{printf%d\t%s\t%s\t%s\tM,i+1,stufi].number,stu[i].name,stufiL sex;forj=0;jM;j++printfH%
4.2f\t,stu[iL score[j];printfn%
4.2f\tn,stu[i].total;printfn%
4.2fH,stufi].aver;printfn\nH;}/糕米糅米米米糅米糅株株通过输入学号查找学生成绩米糅糅米糅糅株标米糅米米米米糅糅糅/void searchscorevoid,{char a
[10];〃定义数组a的类型可输入数字字母或字符int i,j;systemCcls;〃清屏printfn已经转到查询学生成绩菜单\n“;printfC请输入需查询的学生学号\n”;scanfH%s,a;fori=0;in;i++{ifstrcmpa,stu[i].number==0//如果输入的学号为真则输出相关信息{printf名次\t学号\t\t\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\nn;printfn%d\t%s\t%s\t%s\tn,i+1,stu[iL number,stu[i].name,stu[iL sex;forj=0;jM;j++printfC1%
4.2f\tn,stu[i].score[j];printfH%
4.2f\tn,stu[i],total;printfC1%
4.2f”,stu[i].aver;printfH\nn;break;//找到该学生成绩信息后跳出for循环elsepr intf未找到该学生信息\nn;/米糕秣米米统计学生成绩信息,计算出每一门课的最高分秣米米米糕糕求米米米标米/void statisticO{int i,j=0,k=0,cl;char str
[2];float average[M],sum=0;printf没有可被查找的记录\n;//systemcis”;ifM==0//如果没有输入成绩则输出没有可查找的记录printf没有可被查找的记录\n;elsewhilelprintf下面将统计考试成绩\n”;printfC请选择你要统计哪科的成绩
1.高数\t
2.英语\t
3.C语言\n”;scanf%dn,cl;printfn\t一共有%d个记录\n”,M;/*总共记录数米/switchclcase1://用来判断高效的最高分,平均分,输出不及格人员fori=0;iM;i++sum+=stu[i].score
[0];ifstu[kL score
[0]stu[iL score
[0]k=i;ifstu[jL score
[0]stu[i].score
[0]j=i;average[0sum/M;printf\t高数的最高分:\n;:%s:%s数:%・2f\nH,stu[j].number,stu[j],name,stu[j].scorefOJ;printfn\t高数的最低分是\n;:%s:%s数:%・2f\n”,stu[k].number,stu[k].name,stu[k].score
[0];printf\t高数的平均分是%
5.2f\nn,average
[0];printf平均分低于60分的学生成员\n“;fori=0;iM;i++ifstu[i].score
[0]60printfH%s\n,stu[i].name;break;case2://用来判断英语的最高分,平均分,输出不及格人员fori=0;iM;i++sum+=stu[i].score
[1];ifstu[k].scorefl]stu[i].score[l]k=i;ifstu[jL score[l]stu[i].score[l]j=ii;average
[1]=sum/M;printfH\t英语的最高分:\n;:%s:%s数:%・2f\n”,stu[j].number,stu[j].name,stu[j].scorefl];printfH\t英语的最低分是:\n;:%s:%s数:%・2f\n”,stu[k].number,stu[k].name,stufk].scorefl];printf H\t英语的平均分是%
5.2f\nn,average fl];printf平均分低于60分的学生成员\n“;fori=0;iM;i++ifstu[i].score[l]60printfH%s\n,stu[i].name;break;,case3://用来判断C语言的最高分,平均分输出不及格人员fori=0;iM;i++/次循环输入判断*/{sum+=stu[i].score
[2];ifstu[k].score
[2]stu[i].score
[2]k=i;ifstu[j],score
[2]stu[i].score[2J j=i;average
[2]=sum/M;printf\tC语言的最高分:\n”;/*最高分*/printfH\t\t学号%s:%s分数:%・2f\n”,stu[j].number,stu[j].name,stu[j].score
[2];printf”\tC语言的最低分是分n;/*最低分米/printfH\t\t学号:%s:%s分数:%・2f\n”,stu[k].number,stu[k].name,stu[k].score
[2];printfH\tC语言的平均分是%
5.2f\n,average
[2];printf平均分低于60分的学生成员\n”;fori=0;iM;i++{ifstu[i].score
[2]60printfH%s\n,stu[i].name;break;default://如果输入的数字不符合要求则显示错误信息printf输入错误!请输入1〜3之间的数\n”;}sum=0;getcharO;printfC1是否继续进行统计?y/n”;getsstr;ifstr
[0]==y||str
[0]==Y statisticO;else break;/米米糅糅糅糕糕糕去修改学生成绩糕糕秣糕糕米糕米米糅/void modifyvoidchar a
[10];int i,j;systemcis;printfH已经转到修改成绩菜单\n”;printf”请输入需要修改成绩的学生学号\n”;scanfn%s,a;fori=0;in;i++{ifstrcmpa,stu[i].number==0{printf名次\t学号\t\t\t性别\t高数分\t英语分\tC语言分\t总分\t平均分\n”;printfn%d\t%s\t%s\t%s\tH,i+1,stu[i].number,stu[i].name,stu[i].sex;forj=0;jM;j++printfn%
4.2f\tn,stu[i].score[j];printfH%
4.2f”,stu[i].total;printfM%
4.2f,stu[i].aver;printfH\nn;printf请重新输入该学生的\n”;scanfn%%sn,stu[i].number;printfH\n;scanfn%s”,stufiL name;printfH请输入该学生性别\n;scanfn%sn,stu[i].sex;printf请重新输入该学生成绩\n”;printfH高数分\t英语分\tC语言分\n;forj=0;jM;j++scanf%fn,stu[i].score[j];printf修改成功\n;break;〃找到该学生成绩后进行修改,跳出for循环}elseprintf请确认该学生是否为该校学生!\n”;。
个人认证
优秀文档
获得点赞 0