《C语言大作业封面模板.doc》由会员分享,可在线阅读,更多相关《C语言大作业封面模板.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 C语言大作业 班级:10物理 学号: 姓名:崔文明 2013年6月20日#include #include #include #define M 3 typedef struct students char name20; char num15; float scoreM; float average; float total;MESSA; MESSA stu20;int S; void menu(void); void choose(void); void input(void); void savescore(void); void loadscore(void); void choos
2、ec(void); void average(void); void total(void); void name(void); void number(void); void show(void); void excellent(void); void passing(void); void personal(void); void Exit(); void main() menu(); choose(); void menu(void)system(CLS);printf(t * n);printf(t * 欢迎使用这个成绩管理系统 * n);printf(t * n);printf(t
3、n);printf(t 请输入学生的分数.请按.1 n);printf(t 搜索学生分数 .请按.2 n);printf(t 搜索学生的优秀通过率.请按.3 n);printf(t 搜索学生的通过状况.请按.4 n);printf(t 搜索个人各门成绩分数.请按.5 n);printf(t 退出.请按.6 n); printf(nt请选择:n); void choose(void) int x,flag=0; while(flag=0) fflush(stdin); scanf(%d,&x); getchar(); switch(x) case 1:input();savescore();lo
4、adscore();menu();choose();flag=1;break; case 2:choosec();flag=1;break; case 3:excellent();flag=1;break; case 4:passing();flag=1;break; case 5:personal();flag=1;break; case 6:Exit();flag=1; default:printf(tSorry,your choose doesnt exist! please choose again!n); void input(void) int flag=1,j,i;char k;
5、float pp=0; for(i=0;flag=1;i+) printf(t请输入第N.%hd个学生的成绩信息:n,i+1); puts(姓名:); fflush(stdin); gets(stui.name); fflush(stdin); puts(学号:); fflush(stdin); gets(stui.num); puts(t分数:t语文t数学t英语); for(j=0;jM;j+) scanf(%f,&stui.scorej); puts(t你想要继续么?(Y/N); while(1) puts(t请选择.); fflush(stdin); scanf(%c,&k); if(k
6、!=N&k!=Y) puts(t出错了,哈哈,再输一次吧!); else if(k=N) flag=0;S=i;break; else break; for(i=0;i=S;i+) for(j=0,stui.total=0.0;jM;j+) stui.total+=stui.scorej; stui.average=stui.total/M; void savescore(void) int i,flag=1;FILE *fp;char m;puts(t你想要保存这些数据么?(Y/N);while(1) fflush(stdin); scanf(%c,&m); if(m=Y) if(fp=fo
7、pen(D:score.txt,w)=NULL) printf(t对不起哦,无法打开这个表单.n); exit(0); for(i=0;i=S;i+) if(fwrite(&stui,sizeof(struct students),1,fp)!=1) puts(t对不起,表单书写错误了!); flag=0; if(flag=1) for(i=0;i=S;i+) printf(t好了,第N.%d个学生的数据已经被保存了哦!n,i+1); fclose(fp); break; else if(m!=N&m!=Y) puts(t对不起,你输入错误,请重新输入一次吧!); else break; vo
8、id loadscore(void) FILE *fp;char n;MESSA restu20;int i,j,flag=0; char read510=学号,姓名,语文,数学,英语; puts(t你想要立刻读取这些数据么?(Y/N); while(1) fflush(stdin); scanf(%c,&n); if(n=Y) if(fp=fopen(D:score.txt,r)=NULL) fprintf(stderr,tOpen %s error!n,score.txt); exit(0); for(i=0;i=S;i+) fread(&restui,sizeof(struct stud
9、ents),1,fp); system(CLS); puts(t成绩信息读取中.); printf(n); printf(t$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$n); printf(t$*$ $*$nt); printf($*$ ); for(i=0;i5;i+) printf(%-10s,readi); printf( $*$); printf(n); for(i=0;i=S;i+) printf(t$*$ ); printf(%-10s%-10s,restui.num,restui.name); for(j=0;j3;j+) printf(
10、%-10.2f,restui.scorej); printf( $*$n); printf(t$*$ $*$); printf(nt$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$n); fclose(fp); break; else if(n=N) break; else printf(t对不起,出现错误了,再来一次吧,相信你会成功的!n); puts(t输入任意键回到主菜单.n); getchar(); getchar(); void choosec(void) int biao,i,flag=0;FILE *fp; if(fp=fopen(D:sco
11、re.txt,r)=NULL) printf(t对不起,你无法输入任何成绩信息! 无法打开这个表单!nnn);printf(t输入任意键回到主菜单!n); getchar();getchar(); menu(); choose(); for(i=0;i=S;i+) fread(&stui,sizeof(struct students),1,fp); fclose(fp); system(CLS); printf(t以下是第二个菜单:n); printf(n); printf(t%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$n); printf(t%
12、$ 按平均分由高到低.请按.1 %$n); printf(t%$ 按总分由高到低.请按.2 %$n); printf(t%$ 按学号降序.请按.3 %$n); printf(t%$ 按姓名降序.请按.4 %$n); printf(t%$ 回到主菜单.请按.5 %$n); printf(t%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$n); printf(nt请选择输入方式:n); while(flag=0) fflush(stdin); scanf(%d,&biao); getchar(); switch(biao) case 1:flag=1;a
13、verage();show();break; case 2:flag=1;total();show();break; case 3:flag=1;number();show();break; case 4:flag=1;name();show();break; case 5:flag=1;menu();choose();break; default:printf(t对不起,你的操作无法进行! 请重新做出正确操作!n); void show(void) int i,j,n,flag=0; char head710=学号,姓名,语文,数学,英语,总分,平均分; system(CLS); puts(
14、t读取信息中.); printf(n); printf(t$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$nnt); for(i=0;i7;i+) printf(%-10s,headi); printf(nt); for(i=0;i=S;i+) printf(%-10s%-10s,stui.num,stui.name); for(j=0;j3;j+) printf(%-10.2f,stui.scorej); printf(%-10.2f,stui.total); printf(%-10.2f,stui.average); printf(nt); p
15、rintf(nt$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$n); printf(nYou want :(1 or 2)n); puts(t1.回到第二个菜单!n); puts(t2.回到主菜单!n); while(flag=0) fflush(stdin); scanf(%d,&n); getchar(); switch(n) case 1:flag=1;choosec();break; case 2:flag=1;menu();choose();break;default:printf(t出错了,请再次输入!n); void average
16、(void) int i,j,k;MESSA t; for(i=0;iS;i+) k=i; for(j=i+1;j=S;j+) if(stuk.averagestuj.average) k=j; if(k!=i) t=stuk; stuk=stui; stui=t; void total(void) int i,j,k;MESSA t; for(i=0;iS;i+) k=i; for(j=i+1;j=S;j+) if(stuk.totalstuj.total) k=j; if(k!=i) t=stuk; stuk=stui; stui=t; void number(void) int i,j,
17、k;MESSA t; for(i=0;iS;i+) k=i; for(j=i+1;j=S;j+) if(strcmp(stuk.num,stuj.num)0) k=j; if(k!=i) t=stuk; stuk=stui; stui=t; void name(void) int i,j,k;MESSA t; for(i=0;iS;i+) k=i; for(j=i+1;j=S;j+) if(strcmp(stuk.name,stuj.name)0) k=j; if(k!=i) t=stuk; stuk=stui; stui=t; void excellent(void)int i,j,k,w,
18、flag=0;float m;FILE *fp;char head2310=数学,语文,英语;if(fp=fopen(D:score.txt,r)=NULL) printf(t对不起,你无法输入任何信息! 找不到该表单!nnn);printf(t输入任意键回到主菜单!n); getchar();getchar(); menu(); choose(); for(i=0;i=S;i+) fread(&stui,sizeof(struct students),1,fp);fclose(fp);system(CLS);for(i=0;iM;i+)printf(tThe excellent studen
19、ts in %s is following:n,head2i); for(j=0,k=0;j=85.00) k+; printf(t%st%s,stuj.num,stuj.name); printf(t%.2fn,stuj.scorei);m=(k*1.0/(S+1)*100; printf(tThe excellent rate is %.2f%n,m);printf(nn);puts(t你想要继续操作么?n);printf(t1.离开系统!n);printf(t2.回到主菜单!n);printf(t3.回到第二个菜单!n); puts(t请选择:n);while(flag=0) fflus
20、h(stdin); scanf(%d,&w); getchar(); switch(w) case 1:Exit();flag=1; case 2:menu();choose();flag=1;break; case 3:choosec();flag=1;break; default:printf(t对不起,操作无法进行! 请重新选择!n); void passing(void) int i,j,k,w,flag=0;float m;FILE *fp; char head2310=数学,语文,英语; if(fp=fopen(D:score.txt,r)=NULL) printf(t对不起,你不
21、能输入任何信息! 无法找到该表单!nnn);printf(t输入任意键回到主菜单!n); getchar();getchar(); menu(); choose(); for(i=0;i=S;i+)fread(&stui,sizeof(struct students),1,fp);fclose(fp);system(CLS); for(i=0;iM;i+) printf(tThe passing students in %s is following:n,head2i); for(j=0,k=0;j=60.0) k+; printf(t%st%s,stuj.num,stuj.name); pr
22、intf(t%.2fn,stuj.scorei); m=(k*1.0/(S+1)*100; printf(tThe passing rate is %.2f%n,m); printf(nn); puts(t是否继续操作?n);printf(t1.离开系统!n);printf(t2.回到主菜单!n);printf(t3.回到第二个菜单!n); puts(t请选择:n);while(flag=0) fflush(stdin); scanf(%d,&w); getchar(); switch(w) case 1:Exit();flag=1; case 2:menu();choose();flag=1
23、;break; case 3:choosec();flag=1;break; default:printf(t对不起,你的操作无法进行! 请重新选择!n); void personal(void)int i,j,f,w,flag=0;char b10,a;FILE *fp;char head3710=学号,姓名,语文,数学,英语,总分,平均分; if(fp=fopen(D:score.txt,r)=NULL) printf(t对不起,无法输入任何信息! 无法找到该表单!nnn);printf(t输入任意键回到主菜单!n); getchar();getchar(); menu(); choose
24、(); for(i=0;i=S;i+) fread(&stui,sizeof(struct students),1,fp); fclose(fp); puts(t请输入你想要搜索的学生成绩信息:n); puts(t学生成绩信息如下.n); for(i=0;i=S;i+) printf(t%s,stui.name); puts(tnYour choose is :n); while(1) fflush(stdin); gets(b); for(i=0;i=S;i+) if(strcmp(b,stui.name)=0) printf(t该生学生成绩信息%s?(Y/N)n,stui.name); f
25、=i; fflush(stdin); scanf(%c,&a); if(a=Y) system(CLS); puts(t成绩信息读取中.); printf(n); printf(t*nnt); for(i=0;i7;i+) printf(%-10s,head3i); printf(nt); printf(%-10s%-10s,stuf.num,stuf.name); for(j=0;j3;j+) printf(%-10.2f,stuf.scorej); printf(%-10.2f,stuf.total); printf(%-10.2f,stuf.average); printf(n); pr
26、intf(t*n);break; else printf(t出错了,哈哈哈,重新选择吧!n);puts(t是否继续操作?n);printf(t1.离开系统!n);printf(t2.回到主菜单!n);printf(t3.回到第二个菜单!n); puts(t请选择:n);while(flag=0) fflush(stdin); scanf(%d,&w); getchar(); switch(w) case 1:Exit();flag=1; case 2:menu();choose();flag=1;break; case 3:choosec();flag=1;break; default:printf(t对不起,操作无法进行! 请重新选择!n); void Exit(void)system(CLS); exit(0);