C语言学生成绩管理系统源程序--精选文档_第1页
C语言学生成绩管理系统源程序--精选文档_第2页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、附录程序#include"stdio.h"#include<stdlib.h> #include<string.h> #include"process.h"#include"ctype.h"typedef struct char num10; char name10; int chinese; int math; int english; int dianlu; double aver;Student;Student stu99; int shuru(Student stud,int n)/*输入若干条记录*/

2、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+); printf("输入学生的语文、数学、英语、电路分数:");scanf("%d%d%d%d",&stun+i.chines

3、e,&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);void xianshi(Student stud,int n) /*显示所有记录*/ int i ; prin

4、tf("-n"); /*格式头*/ printf("学号 姓名 语文 数学 英语 电路 平均成绩 n"); printf("-n"); for(i=0;i<n;i+) printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lfn",stui.num,,stui.chinese,stui.math,stui.english,stui.dianlu,stui.aver); void xiugai(Student stud,int n)/*修改*/ int i=0

5、,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"

6、;);printf("| 英语分数 请按 4 |n"); printf("| 电路 请按 5 |n");printf("| 退出 请按 0|n"); printf("+-+n"); printf("请输入您的选择:"); scanf("%d", &choice); switch(choice) case 0:break; case 1: printf("请输入新姓名:"); scanf("%s", ); bre

7、ak; case 2: printf("请输入新的语文分数:"); scanf("%d", &stui.chinese); break;case 3: printf("请输入新的数学分数:"); scanf("%d",&stui.math); break;case 4: printf("请输入新的英语分数:"); scanf("%d", &stui.english); break; case 5: printf("请输入新的电路分数:&quo

8、t;); 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(,s)!=0&&i<n) i+; if(i

9、=n) printf("not find!n"); return(n); for(j=i;j<n-1;j+) /*删除操作*/ strcpy(stuj.num,stuj+1.num); strcpy(,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&q

10、uot;); return(n-1); void chaxun_xingming(Student stud,int n) /*按姓名查找并显示一个记录*/ char s20; int i=0; printf("输入姓名:"); scanf("%s",s); while(strcmp(,s)!=0&&i<n) i+; /*查找判断*/ if(i=n) printf("not find!n"); /*输入失败信息*/ return; printf("他的姓名、学号是:%s %sn"

11、;,,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.av

12、er!=s && i<n) i+;if(i=n) printf("not find!n"); /*输入失败信息*/ return; printf("他的学号是:%sn",stui.num); /*输出该学生信息*/ printf("他的姓名是:%sn",); printf("他的语文、数学、英语、电路分数是:%d %d %d %d n",stui.chinese,stui.math,stui.english,stui.dianlu); void paixu_xuehao(St

13、udent stud,int n) /*按学号排序*/ int i,j,p,q,r,w; double y; char x20,t10; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(strcmp(studj.num,studj+1.num)>0) strcpy(t,studj.num); strcpy(studj.num,studj+1.num); strcpy(studj+1.num,t); strcpy(x,); strcpy(,studj+1.name); strcpy(s

14、tudj+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;

15、 void paixu_pingjun(Student stud,int n) /*按平均成绩排序*/ int i,j,p,q,r,w; double y; char x20,t10; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(stuj.aver>stuj+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;st

16、uj.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,); strcpy(,stuj+1.name); strcpy(stuj+1.name,x); strcpy(t,stuj.num); strcpy(stuj.num,stuj+1.num); strcpy(stuj+1.num,t); r

17、eturn;void paixu_chinese(Student stud,int n) /*按语文成绩排序*/ int i,j,p,q,r,w; double y; char x20,t10; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(stuj.chinese>stuj+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=s

18、tuj.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,); strcpy(,stuj+1.name); strcpy(stuj+1.name,x); strcpy(t,stuj.num); strcpy(stuj.num,stuj+1.num); strcpy(stuj+

19、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;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(stuj.english>stuj+1.english) y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y; p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.chi

20、nese=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,); strcpy(,stuj+1.name); strcpy(stuj+1.name,x); strcpy(t,stuj.num); strcpy(stuj.num,stuj+1.num); s

21、trcpy(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;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(stuj.math>stuj+1.math) y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y; p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.c

22、hinese=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,); strcpy(,stuj+1.name); strcpy(stuj+1.name,x); strcpy(t,stuj.num); strcpy(stuj.num,stuj+1.num);

23、 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; for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(stuj.dianlu>stuj+1.dianlu) y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y; p=stuj.chinese;stuj.chinese=stuj+1.chinese;

24、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,); strcpy(,stuj+1.name); strcpy(stuj+1.name,x); strcpy(t,stuj.num); strcpy(stuj.num,stuj

25、+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("input 2 score:n"); scanf("%d%d",&max,&min); if(max&l

26、t;min) a=max;max=min;min=a; if(j=1)for(i=0;i<99;i+) if(stui.chinese>min&&stui.chinese<max) k+; printf("分数段的人数为 :%d",k); else if(j=2)for(i=0;i<99;i+) if(stui.math>min&&stui.math<max) l+; printf("分数段的人数为 :%d",l); else if(j=3)for(i=0;i<99;i+) if(

27、stui.english>min&&stui.english<max) p+; printf("分数段的人数为 :%d",p); else if(j=4) for(i=0;i<99;i+) if(stui.dianlu>min&&stui.dianlu<max) w+; printf("分数段的人数为 :%d",w); else if(j=5)for(i=0;i<99;i+) if(stui.aver>min&&stui.aver<max) q+; print

28、f("分数段的人数为 :%d",q); return;int wenjian2(Student stud,int n) /*从文件中读入数据*/ int i=0,num; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf("tttInput the filename:"); scanf("ttt%s",filename); /*输入文件名*/ if(fp=fopen(filename,"rb")=NULL) /*打开文件*/ printf("tt

29、tcann't open the filen"); /*打开失败信息*/ printf("ttt"); system("pause"); return(n); fscanf(fp,"%d",&num); /*读入总记录量*/ while(i<num) /*循环读入数据*/ fscanf(fp,"%s %s %d %d %d %d %lfn",stun+i.num,stun+,&stun+i.chinese,&stun+i.math,&stun+i.

30、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 f

31、ilename:");/*输入文件名*/ scanf("%s",filename); if(fp=fopen(filename,"w")=NULL) /*打开文件*/ printf("cann't open the filen"); return; fprintf(fp,"%dn",n); /*循环写入数据*/ while(i<n) fprintf(fp,"%s %s %d %d %d %d %lfn",stui.num,,stui.chinese,st

32、ui.math,stui.english,stui.dianlu,stui.aver); i+; fclose(fp); /*关闭文件*/ printf("Successed!n"); /*返回成功信息*/ int menu() /*菜单函数*/ int c; do printf("tt*学生信息管理系统菜单*n"); printf("tt 1. 编辑 n"); printf("tt 2. 显示 n"); printf("tt 3. 查询 n"); printf("tt 4. 排序n&

33、quot;); printf("tt 5. 统计n"); printf("tt 6. 文件 n"); printf("tt 0. 退出 n"); printf("*n"); printf("ttt请选择(0-6):"); scanf("%d",&c);while(c<0|c>6); return(c-0); /*返回选择*/ int bianji() printf("tt 1. 录入n"); printf("tt 2 .修改n

34、"); printf("tt 3. 删除 n"); printf("tt 按其它数字键退出 n");int i;scanf("%d",&i);return i;int chaxun() printf("tt 1. 按姓名查询n"); printf("tt 2 .按平均成绩查询n"); printf("tt 按其它数字键退出n");int i;scanf("%d",&i);return i;int paixu() printf("tt 1. 按学号n"); printf("tt 2 .按语文成绩n"); printf("tt 3 .按数学成绩n"); printf("tt 4 .按英语成绩n"); printf(&q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论