1、C语言学生成绩管理系统源程序1word版本附录程序#includestdio.h#include #include #includeprocess.h#includectype.htypedef struct char 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(si
2、gn!=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); /*清除多余的输入*/
3、printf(是否继续输入?(Y/N):n);scanf(%c,&sign);i+; return(n+i);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.dianl
4、u,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(| 英语分数 请按
5、4 |n); printf(| 电路 请按 5 |n); printf(| 退出 请按 0|n); printf(+-+n); printf(请输入您的选择:); scanf(%d, &choice); switch(choice) case 0:break; case 1: printf(请输入新姓名:); scanf(%s, stui.name); break; case 2: printf(请输入新的语文分数:); scanf(%d, &stui.chinese); break; case 3: printf(请输入新的数学分数:); scanf(%d,&stui.math); brea
6、k; case 4: printf(请输入新的英语分数:); scanf(%d, &stui.english); break; case 5: 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.n
7、ame,s)!=0&in) i+; if(i=n) printf(not find!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; stuj.math=stuj+1.math; stuj.english=stuj+1.english; stuj.dianlu=stuj+1.dianlu;stuj.aver=stuj+1.aver; printf(Delete Successed!n);
8、 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(not find!n); /*输入失败信息*/ return; printf(他的姓名、学号是:%s %sn,stui.name,stui.num); /*输出该学生信息*/ printf(语文 高数 英语 电路 平均成绩是:%d,%d,%
9、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); /*输出该学生信息*/ print
10、f(他的姓名是:%sn,stui.name); printf(他的语文、数学、英语、电路分数是:%d %d %d %d n,stui.chinese,stui.math,stui.english,stui.dianlu); void paixu_xuehao(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;j0) strcpy(t,studj.num); strcpy(studj.num,studj+1.num); strcpy(s
11、tudj+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
12、+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=stu
13、j+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(s
14、tuj.num,stuj+1.num); strcpy(stuj+1.num,t); return;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
15、=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); strcp
16、y(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=
17、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;vo
18、id 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=stu
19、j.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
20、 n) /*按电路成绩排序*/ int i,j,p,q,r,w; double y; char x20,t10; 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+
21、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
22、,q,p,w; k=0,l=0,p=0,q=0,w=0; printf(你想统计哪科成绩: 1语文 2数学 3英语 4电路 5平均 n); scanf(%d,&j); printf(input 2 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); else if(j=2) for(i=0;imin&stui.mathmax) l+; printf(分数段的人数为 :%d,l); else
23、 if(j=3) for(i=0;imin&stui.englishmax) p+; printf(分数段的人数为 :%d,p); else if(j=4) for(i=0;imin&stui.dianlumax) w+; printf(分数段的人数为 :%d,w); else if(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 filena
24、me20; /*定义文件名*/ printf(tttInput the filename:); scanf(ttt%s,filename); /*输入文件名*/ if(fp=fopen(filename,rb)=NULL) /*打开文件*/ printf(tttcannt open 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.nu
25、m,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(Input the filename:);/*输入文件名*/ scanf(%s,filename); if(fp=fopen(filename,w)=NULL) /*打开文件*/ printf(cannt open the filen); return; fprintf
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1