2022年C语言学生成绩管理系统源程序 .pdf
附录程序#includestdio.h#include#include#includeprocess.h#includectype.htypedef structchar num10;char name10;int chinese;int math;int english;int dianlu;double aver;Student;Student stu99;int shuru(Student stud,int n)/*输入若干条记录*/int i=0;char sign,x10;double a=0.0;while(sign!=n&sign!=N)printf(输入学生学号:);scanf(%s,stun+i.num);printf(输入学生姓名:);scanf(%s,stun+i.name);printf(输入学生的语文、数学、英语、电路分数:);scanf(%d%d%d%d,&stun+i.chinese,&stun+i.math,&stun+i.english,&stun+i.dianlu);a=1.0*(stun+i.chinese+stun+i.math+stun+i.english+stun+i.dianlu)/4;stun+i.aver=a;gets(x);/*清除多余的输入*/printf(是否继续输入?(Y/N):n);scanf(%c,&sign);i+;return(n+i);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 13 页 -void xianshi(Student stud,int n)/*显示所有记录*/int i;printf(-n);/*格式头*/printf(学号姓名语文数学英语电路平均成绩n);printf(-n);for(i=0;in;i+)printf(%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lfn,stui.num,stui.name,stui.chinese,stui.math,stui.english,stui.dianlu,stui.aver);void xiugai(Student stud,int n)/*修改*/int i=0,choice=1;char x10;while(choice!=0)printf(请输入您要修改的学生的学号:n);scanf(%s,x);for(i=0;i+)if(strcmp(stui.num,x)=0)break;printf(请选择您要修改的内容:n);printf(-n);printf(|姓名请按1|n);printf(|语文请按2|n);printf(|数学分数请按3|n);printf(|英语分数请按4|n);printf(|电路请按5|n);printf(|退出请按0|n);printf(+-+n);printf(请输入您的选择:);scanf(%d,&choice);switch(choice)case0:break;case1:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 13 页 -printf(请输入新姓名:);scanf(%s,stui.name);break;case2:printf(请输入新的语文分数:);scanf(%d,&stui.chinese);break;case3:printf(请输入新的数学分数:);scanf(%d,&stui.math);break;case4:printf(请输入新的英语分数:);scanf(%d,&stui.english);break;case5:printf(请输入新的电路分数:);scanf(%d,&stui.dianlu);break;default:printf(n 无效选项!);break;break;return;int shanchu(Student stud,int n)/*按姓名查找,删除一条记录*/char s20;int i;int j;i=0;printf(输入要删除记录的姓名:);scanf(%s,s);while(strcmp(stui.name,s)!=0&in)i+;if(i=n)printf(notfind!n);return(n);for(j=i;jn-1;j+)/*删除操作*/strcpy(stuj.num,stuj+1.num);strcpy(stuj.name,stuj+1.name);stuj.chinese=stuj+1.chinese;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 13 页 -stuj.math=stuj+1.math;stuj.english=stuj+1.english;stuj.dianlu=stuj+1.dianlu;stuj.aver=stuj+1.aver;printf(Delete Successed!n);return(n-1);void chaxun_xingming(Student stud,int n)/*按姓名查找并显示一个记录*/char s20;int i=0;printf(输入姓名:);scanf(%s,s);while(strcmp(stui.name,s)!=0&in)i+;/*查找判断*/if(i=n)printf(notfind!n);/*输入失败信息*/return;printf(他的姓名、学号是:%s%sn,stui.name,stui.num);/*输出该学生信息*/printf(语文高数英语电路平均成绩是:%d,%d,%d,%d,%lfn,stui.chinese,stui.math,stui.english,stui.dianlu,stui.aver);void chaxun_pingjun(Student stud,int n)/*按平均成绩查找并显示一个记录*/double s;int i=0;printf(输入平均成绩:);scanf(%lf,&s);while(stui.aver!=s&in)i+;if(i=n)printf(not find!n);/*输入失败信息*/return;printf(他的学号是:%sn,stui.num);/*输出该学生信息*/printf(他的姓名是:%sn,stui.name);printf(他的语文、数学、英语、电路分数是:%d%d%d%dn,stui.chinese,stui.math,stui.english,stui.dianlu);void paixu_xuehao(Student stud,int n)/*按学号排序*/int i,j,p,q,r,w;double y;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 13 页 -char x20,t10;for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;j0)strcpy(t,studj.num);strcpy(studj.num,studj+1.num);strcpy(studj+1.num,t);strcpy(x,studj.name);strcpy(studj.name,studj+1.name);strcpy(studj+1.name,x);y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chinese=p;q=stuj.math;stuj.math=stuj+1.math;stuj+1.math=q;r=stuj.english;stuj.english=stuj+1.english;stuj+1.english=r;w=stuj.dianlu;stuj.dianlu=stuj+1.dianlu;stuj+1.dianlu=w;return;void paixu_pingjun(Student stud,int n)/*按平均成绩排序*/int i,j,p,q,r,w;double y;char x20,t10;for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;jstuj+1.aver)y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chinese=p;q=stuj.math;stuj.math=stuj+1.math;stuj+1.math=q;r=stuj.english;stuj.english=stuj+1.english;stuj+1.english=r;w=stuj.dianlu;stuj.dianlu=stuj+1.dianlu;stuj+1.dianlu=w;strcpy(x,stuj.name);strcpy(stuj.name,stuj+1.name);strcpy(stuj+1.name,x);strcpy(t,stuj.num);strcpy(stuj.num,stuj+1.num);strcpy(stuj+1.num,t);return;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 13 页 -void paixu_chinese(Student stud,int n)/*按语文成绩排序*/int i,j,p,q,r,w;double y;char x20,t10;for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;jstuj+1.chinese)y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chinese=p;q=stuj.math;stuj.math=stuj+1.math;stuj+1.math=q;r=stuj.english;stuj.english=stuj+1.english;stuj+1.english=r;w=stuj.dianlu;stuj.dianlu=stuj+1.dianlu;stuj+1.dianlu=w;strcpy(x,stuj.name);strcpy(stuj.name,stuj+1.name);strcpy(stuj+1.name,x);strcpy(t,stuj.num);strcpy(stuj.num,stuj+1.num);strcpy(stuj+1.num,t);return;void paixu_english(Student stud,int n)/*按英语成绩排序*/int i,j,p,q,r,w;double y;char x20,t10;for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;jstuj+1.english)y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chinese=p;q=stuj.math;stuj.math=stuj+1.math;stuj+1.math=q;r=stuj.english;stuj.english=stuj+1.english;stuj+1.english=r;w=stuj.dianlu;stuj.dianlu=stuj+1.dianlu;stuj+1.dianlu=w;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 13 页 -strcpy(x,stuj.name);strcpy(stuj.name,stuj+1.name);strcpy(stuj+1.name,x);strcpy(t,stuj.num);strcpy(stuj.num,stuj+1.num);strcpy(stuj+1.num,t);return;void paixu_math(Student stud,int n)/*按数学成绩排序*/int i,j,p,q,r,w;double y;char x20,t10;for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;jstuj+1.math)y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chinese=p;q=stuj.math;stuj.math=stuj+1.math;stuj+1.math=q;r=stuj.english;stuj.english=stuj+1.english;stuj+1.english=r;w=stuj.dianlu;stuj.dianlu=stuj+1.dianlu;stuj+1.dianlu=w;strcpy(x,stuj.name);strcpy(stuj.name,stuj+1.name);strcpy(stuj+1.name,x);strcpy(t,stuj.num);strcpy(stuj.num,stuj+1.num);strcpy(stuj+1.num,t);return;void paixu_dianlu(Student stud,int n)/*按电路成绩排序*/int i,j,p,q,r,w;double y;char x20,t10;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 13 页 -for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;jstuj+1.dianlu)y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chinese=p;q=stuj.math;stuj.math=stuj+1.math;stuj+1.math=q;r=stuj.english;stuj.english=stuj+1.english;stuj+1.english=r;w=stuj.dianlu;stuj.dianlu=stuj+1.dianlu;stuj+1.dianlu=w;strcpy(x,stuj.name);strcpy(stuj.name,stuj+1.name);strcpy(stuj+1.name,x);strcpy(t,stuj.num);strcpy(stuj.num,stuj+1.num);strcpy(stuj+1.num,t);return;void tongji(Student stud,int n)/按分数段统计人数int i,j,a,max,min,k,l,q,p,w;k=0,l=0,p=0,q=0,w=0;printf(你想统计哪科成绩:1 语文2 数学3 英语4 电路5 平均n);scanf(%d,&j);printf(input2 score:n);scanf(%d%d,&max,&min);if(maxmin)a=max;max=min;min=a;if(j=1)for(i=0;imin&stui.chinesemax)k+;printf(分数段的人数为:%d,k);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 13 页 -elseif(j=2)for(i=0;imin&stui.mathmax)l+;printf(分数段的人数为:%d,l);elseif(j=3)for(i=0;imin&stui.englishmax)p+;printf(分数段的人数为:%d,p);elseif(j=4)for(i=0;imin&stui.dianlumax)w+;printf(分数段的人数为:%d,w);elseif(j=5)for(i=0;imin&stui.avermax)q+;printf(分数段的人数为:%d,q);return;int wenjian2(Student stud,int n)/*从文件中读入数据*/int i=0,num;FILE*fp;/*定义文件指针*/char filename20;/*定义文件名*/printf(tttInputthe filename:);scanf(ttt%s,filename);/*输入文件名*/名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 13 页 -if(fp=fopen(filename,rb)=NULL)/*打开文件*/printf(tttcanntopen the filen);/*打开失败信息*/printf(ttt);system(pause);return(n);fscanf(fp,%d,&num);/*读入总记录量*/while(inum)/*循环读入数据*/fscanf(fp,%s%s%d%d%d%d%lfn,stun+i.num,stun+i.name,&stun+i.chinese,&stun+i.math,&stun+i.english,&stun+i.dianlu,&stun+i.aver);i+;n+=num;fclose(fp);/*关闭文件*/printf(tttSuccessed!n);printf(ttt);system(pause);return(n);void wenjian1(Student stud,int n)/*将所有记录写入文件*/int i=0;FILE*fp;/*定义文件指针*/char filename20;/*定义文件名*/printf(Inputthe filename:);/*输入文件名*/scanf(%s,filename);if(fp=fopen(filename,w)=NULL)/*打开文件*/printf(cannt open the filen);return;fprintf(fp,%dn,n);/*循环写入数据*/while(in)fprintf(fp,%s%s%d%d%d%d%lfn,stui.num,stui.name,stui.chinese,stui.math,stui.english,stui.dianlu,stui.aver);i+;fclose(fp);/*关闭文件*/printf(Successed!n);/*返回成功信息*/名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 13 页 -int menu()/*菜单函数*/int c;doprintf(tt*学生信息管理系统菜单*n);printf(tt1.编辑n);printf(tt2.显示n);printf(tt3.查询n);printf(tt4.排序 n);printf(tt5.统计 n);printf(tt6.文件n);printf(tt0.退出n);printf(*n);printf(ttt请选择(0-6):);scanf(%d,&c);while(c6);return(c-0);/*返回选择*/int bianji()printf(tt1.录入 n);printf(tt2.修改 n);printf(tt3.删除n);printf(tt按其它数字键退出n);int i;scanf(%d,&i);return i;int chaxun()printf(tt1.按姓名查询 n);printf(tt2.按平均成绩查询n);printf(tt按其它数字键退出n);int i;scanf(%d,&i);return i;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 13 页 -int paixu()printf(tt1.按学号 n);printf(tt2.按语文成绩 n);printf(tt3.按数学成绩 n);printf(tt4.按英语成绩 n);printf(tt5.按电路成绩 n);printf(tt6.按平均成绩 n);printf(tt按其它数字键退出n);int i;scanf(%d,&i);return i;int wenjian()printf(tt1.从文件中读入数据n);printf(tt2.将所有记录写入文件n);printf(tt按其它数字键退出n);int i;scanf(%d,&i);return i;void main()/*主函数*/int n=0;for(;)for(;)switch(menu()case1:switch(bianji()case1:n=shuru(stu,n);xianshi(stu,n);break;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 13 页 -case2:xiugai(stu,n);xianshi(stu,n);break;case3:shanchu(stu,n);xianshi(stu,n);break;break;case2:xianshi(stu,n);break;case3:switch(chaxun()case1:chaxun_xingming(stu,n);break;case2:chaxun_pingjun(stu,n);break;break;case4:switch(paixu()case1:paixu_xuehao(stu,n);xianshi(stu,n);break;case2:paixu_chinese(stu,n);xianshi(stu,n);break;case3:paixu_math(stu,n);xianshi(stu,n);break;case4:paixu_english(stu,n);xianshi(stu,n);break;case5:paixu_dianlu(stu,n);xianshi(stu,n);break;case6:paixu_pingjun(stu,n);xianshi(stu,n);break;break;case5:tongji(stu,n);break;case6:switch(wenjian()case1:n=wenjian2(stu,n);break;case2:wenjian1(stu,n);break;break;case0:exit(0);/*结束程序*/名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 13 页 -