1、附录程序#include“stdio.h“#include #include #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)/*输入若干条记录*/int i=0;char sign,x10;double a=0.0; while(sign!=n scanf(“%s“,stun
2、+i.num); printf(“输入学生姓名:“); scanf(“%s“,stun+i.name); printf(“输入学生的语文、数学、英语、电路分数:“);scanf(“%d%d%d%d“,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“,i+; return(n+i);void xianshi(Student stud,int n) /*显示所有记录*/ in
3、t i ;printf(“-n“); /*格式头*/ printf(“学号 姓名 语文 数学 英语 电路 平均成绩 n“); printf(“-n“);for(i=0;i0) 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.chi
4、nese;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;ch
5、ar x20,t10;for(i=0;istuj+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.dian
6、lu=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_chinese(Student stud,int n) /*按语文成绩排序*/ int i,j,p,q,r,w;double y;char x20,t10;for(i=0;istuj+1.chinese) y=stuj.aver;stuj.aver=stuj+1.aver
7、;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
8、+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;istuj+1.english) y=stuj.aver;stuj.aver=stuj+1.aver;stuj+1.aver=y;p=stuj.chinese;stuj.chinese=stuj+1.chinese;stuj+1.c
9、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,stuj.name);strcpy(stuj.name,stuj+1.name);strcpy(stuj+1.name,x);strcpy(t,stuj.num);strcpy(stuj.num,stuj+1.num);strcpy(s
10、tuj+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;istuj+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;
11、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) /*按电路成绩排序*/ i
12、nt i,j,p,q,r,w;double y;char x20,t10;for(i=0;istuj+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.dian
13、lu=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
14、英语 4 电路 5 平均 n“);scanf(“%d“,printf(“input 2 score:n“);scanf(“%d%d“,if(maxmin return(c-0); /*返回选择*/ int bianji()printf(“tt 1. 录入n“); printf(“tt 2 .修改n“); printf(“tt 3. 删除 n“); printf(“tt 按其它数字键退出 n“);int i;scanf(“%d“,return i;int chaxun()printf(“tt 1. 按姓名查询n“); printf(“tt 2 .按平均成绩查询 n“); printf(“tt 按
15、其它数字键退出 n“);int i;scanf(“%d“,return i;int paixu()printf(“tt 1. 按学号n“); printf(“tt 2 .按语文成绩 n“);printf(“tt 3 .按数学成绩 n“);printf(“tt 4 .按英语成绩 n“);printf(“tt 5 .按电路成绩 n“);printf(“tt 6 .按平均成绩 n“);printf(“tt 按其它数字键退出 n“);int i;scanf(“%d“,return i;int wenjian()printf(“tt 1. 从文件中读入数据 n“); printf(“tt 2 .将所有记
16、录写入文件 n“); printf(“tt 按其它数字键退出 n“);int i;scanf(“%d“,return i;void main() /*主函数*/ int n=0; for(;)for(;) switch(menu() case 1: switch(bianji()case 1:n=shuru(stu,n);xianshi(stu,n); break;case 2:xiugai(stu ,n);xianshi(stu,n); break;case 3:shanchu(stu ,n);xianshi(stu,n); break; break; case 2:xianshi(stu,
17、n);break; case 3: switch(chaxun()case 1:chaxun_xingming(stu,n);break;case 2:chaxun_pingjun(stu ,n);break; break; case 4: switch(paixu()case 1:paixu_xuehao(stu,n);xianshi(stu,n); break ; case 2:paixu_chinese(stu ,n);xianshi(stu,n);break;case 3:paixu_math(stu ,n);xianshi(stu,n); break;case 4:paixu_english(stu ,n);xianshi(stu,n); break;case 5:paixu_dianlu(stu ,n);xianshi(stu,n); break;case 6:paixu_pingjun(stu ,n);xianshi(stu,n); break; break; case 5:tongji(stu,n);break; case 6: switch(wenjian()case 1:n=wenjian2(stu,n);break;case 2:wenjian1(stu ,n);break; break; case 0: exit(0); /*结束程序*/