C语言课程设计-学生成绩管理系统.doc_第1页
C语言课程设计-学生成绩管理系统.doc_第2页
C语言课程设计-学生成绩管理系统.doc_第3页
C语言课程设计-学生成绩管理系统.doc_第4页
C语言课程设计-学生成绩管理系统.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

#include#include/* strcmp函数原型包含*/#define N 100/*定义最大学生人数为100*/struct student /*学生结构体定义*/ char no11; /*学号,10位*/ char name10;/*姓名,3个汉字*/ float score5;/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/stuN;int num;int panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/void output(); /*输出学生成绩函数(公共函数)*/void init(); /*系统初始化函数*/void newfile(); /*建立新的数据文件*/void read1(); /*从数据文件中读取数据*/void weihu(); /*维护界面函数*/void new1(); /*新增一个学生成绩函数*/void xiugai(); /*修改学生成绩*/int xgcj(int); /*修改成绩*/void delete1(); /*删除学生信息函数*/void tongji(); /*统计界面函数*/void tongji1(); /*计算每个学生平均分*/void tongji2(); /*计算每门课程的平均分*/void paixu1(); /*排序函数*/void paino(); /*按学号排序*/void paiave(); /*按平均分排序*/void paidkcj(); /*按单科成绩排序*/void change(int,int); /*交换结构体数组中的两个记录*/void outputx(int); /*选择输出单科成绩 徐修楼编*/void find1(); /*查找界面函数*/int find(char sno); /*按学号查找*/int findname(char cname);/*按姓名查找*/void findyear(int cyear); /*按入学年查找*/void save(); /*保存文件*/void stop(); /*停顿函数*/void stop() /*停顿函数 (公共函数)*/ printf(Press Any Key To Continue.n); getch();void output() /*输出学生成绩函数(公共函数)*/ int i,j; printf(=n); printf(XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDiann); printf(=n); for(i=0;inum;i+) printf(%-11s% -10s%-11d,stui.no,,stui.year); for(j=0;j5;j+) printf(% -7.1f,stui.scorej); printf(n); stop();void init() /*系统初始化函数 */ if(access(stu.dat,0) /*判断文件是否存在*/ newfile(); /*若不存在,新建数据文件*/ else read1(); /*若存在,读取数据*/void newfile() /*建立新的数据文件 */ int i; FILE *fp; if(fp=fopen(stu.dat,wb)=NULL) /*创建二进制文件*/ printf(Chuang Jian Shi Bai! Qing Chong Xin Yun Xing Cheng Xu.n); /*显示“创建文件失败,请重新运行程序”*/ exit(0); /*终止程序*/ printf( Chu Ci Yun Xing, Jin Xing Shu Ju Chu Shi Hua.n);/*显示“初次运行,进行数据初始化.”*/ stop(); clrscr(); printf( Qing Shu Ru Xue Sheng Ren Shu:);/*显示“请输入学生人数:”*/ scanf(%d,&num); for(i=0;inum;i+) printf(Qing Shu Ru Di %d Ge Xue Sheng De Xue Hao:,i+1); /*显示“请输入第i+1个学生的学号:”*/ getchar(); /*吃回车*/ gets(stui.no); printf(Xing Ming:); /*显示“姓名:”*/ gets(); printf(Ru Xue Nian:);/*显示“入学年”*/ scanf(%d,&stui.year); printf(C-YuYan Cheng Ji:);/*显示“C语言成绩”*/ scanf(%f,&stui.score0); printf(GaoShu Cheng Ji:);/*显示“高数成绩”*/ scanf(%f,&stui.score1); printf(DaWu Cheng Ji:);/*显示“大物成绩”*/ scanf(%f,&stui.score2); printf(DianLu Cheng Ji:);/*显示“电路成绩”*/ scanf(%f,&stui.score3); printf(MoDian Cheng Ji:);/*显示“模电成绩”*/ scanf(%f,&stui.score4); fwrite(&stui,1,sizeof(struct student),fp); /*把第i+1名学生成绩写入文件*/ fclose(fp); clrscr(); printf(=n); printf( Gung Cai Shu Ru De %d Ge Shu Ju Wei:n,num); /*显示“刚才输入的 num 个数据为:”*/ printf(=nn); output();void read1() /*从数据文件中读取数据 */ FILE *fp; num=0; /*num为数据文件中实际存储的学生人数*/ fp=fopen(stu.dat,r); if(fp=NULL) /*数据文件不存在*/ printf(Wen Jian Da Kai Shi Bai! Chong Xin Yun Xing Cheng Xun); /*显示“文件打开失败!重新运行程序”*/ exit(0); while(!feof(fp) fread(&stunum,1,sizeof(struct student),fp); num+; num-; fclose(fp); printf(=n); printf( Xian You %d Ge Xue Sheng De Cheng Ji:n,num); /*显示“现有 NUM个学生的成绩:”*/ printf(=nn); output();void weihu() /*维护界面函数 */ char c1; while(1) clrscr(); printf(nnnttt*n); printf(ttt* Wei Hu *n); printf(ttt* 1. Xin Zeng *n); /*新增*/ printf(ttt* 2. Shan Chu *n); /*删除(按学号)*/ printf(ttt* 3. Xiu Gai *n); /*修改*/ printf(ttt* ESC. Fan Hui *n); /*返回*/ printf(ttt*n); printf(tttQing Xuan Ze:n);/*请选择:*/ c1=getch(); if(c1=27) break; switch(c1) case 1: new1(); break; case 2: delete1(); case 3: xiugai(); break; default: printf(Xuan Zen You Wu,Qing Chong Xuan!n);/*“选择有误,请重选!”*/ void new1() /*新增一个学生成绩函数 */ printf(Qing Shu Ru Xue Hao:); /*显示“请输入学号:”*/ getchar(); /*吃回车*/ gets(stunum.no); printf(Xing Ming:); /*显示“姓名:”*/ gets(); printf(Ru Xue Nian:);/*显示“入学年”*/ scanf(%d,&stunum.year); printf(C-YuYan Cheng Ji:);/*显示“C语言成绩”*/ scanf(%f,&stunum.score0); printf(GaoShu Cheng Ji:);/*显示“高数成绩”*/ scanf(%f,&stunum.score1); printf(DaWu Cheng Ji:);/*显示“大物成绩”*/ scanf(%f,&stunum.score2); printf(DianLu Cheng Ji:);/*显示“电路成绩”*/ scanf(%f,&stunum.score3); printf(MoDian Cheng Ji:);/*显示“模电成绩”*/ scanf(%f,&stunum.score4); num+; printf(n=n); printf( Xian You %d Ge Xue Sheng De Cheng Ji:n,num); /*显示“现有 NUM个学生的成绩:”*/ printf(=nn); output();void xiugai() /*修改学生成绩*/ char xg11; int i; printf(nQing shu ru yao xiu gai xue sheng de xue hao:nn); gets(xg); for(i=0;i=1&c=5) k=c-49; printf(nQing shu ru %s cheng ji:n,p+k); scanf(%f,&stux.scorek); printf(nXiu gai hou gai xue sheng xin xi wei:n); printf(XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDiann); printf(=n); printf(%-11s%-10s%-11d,stux.no,,stux.year); for(j=0;j5;j+) printf(% -7.1f,stux.scorej); printf(n); else printf(nXuan Zen You Wu,Qing Chong Xuan!nn); stop(); int find(char sno) /*按学号查找 */ int i; for(i=0;inum;i+) if(strcmp(stui.no,sno)=0) /*判断两个字符串相等*/ return i;/*查找成功*/ return -1;/*查找失败*/void delete1() /*删除学生信息函数*/ char cno11; int i,j; printf(Qing Shu Ru Yao Shan Chu De Xue Sheng Xue Hao:); /*“请输入要删除的学生学号”*/ gets(cno); i=find(cno); if(i!=-1) for(j=i;jnum;j+) stuj=stuj+1; num-; printf(Xian You %d Ge Xue Sheng De Cheng Ji:n,num); /*显示“现有 NUM个学生的成绩:”*/ output(); else printf(qing shu ru zheng que de xue hao. n); stop();void tongji() /*统计界面函数 */ int i; char c2; while(1) clrscr(); printf(nnnttt*n); printf(ttt* Tong Ji *n); printf(ttt* 1. Xue Sheng Ping Jun Fen *n); /*计算学生平均分*/ printf(ttt* 2. Ke Cheng Ping Jun Fen *n); /*计算每门课程平均分*/ printf(ttt* ESC. Fan Hui *n); /*返回*/ printf(ttt*n); printf(tttQing Xuan Ze:n);/*请选择:*/ c2=getch(); if(c2=27) break; switch(c2) case 1: tongji1(); printf(nnXue Sheng Ping Jun Fen Wei:n); printf(=n); printf(XueHao XingMing RuXueNian PingJunFenn); printf(=n); for(i=0;inum;i+) printf(%-11s% -10s%-11d%-10.2fn,stui.no,,stui.year,stui.ave); stop(); break; case 2: tongji2(); break; default: printf(Xuan Zen You Wu,Qing Chong Xuan!n);/*“选择有误,请重选!”*/ void tongji1() /*计算每个学生平均分*/ int i,j; for(i=0;inum;i+) stui.ave=0; for(j=0;j5;j+) stui.ave+=stui.scorej; stui.ave=stui.ave/5; void tongji2() /*计算每门课程的平均分*/ int i,j; float sum; float avec5; /*储存每门课的平均分*/ for(j=0;j5;j+) sum=0; for(i=0;inum;i+) sum+=stui.scorej; avecj=sum/num; printf(nnGe Ke Ping Jun Fen Wei:n);/*“各科平均分:”*/ printf(=n); printf(C GaoShu DaWu DianLu MoDiann); printf(=n); for(i=0;i5;i+) printf(%-7.1f,aveci); printf(n); stop();void paixu1() /*排序界面*/ char c3; for(;) clrscr(); printf(nnn); printf(ttt*n); printf(ttt* Pai Xu * n); printf(ttt* 1. An Xue Hao * n); /*按学号排序*/ printf(ttt* 2. An Ping Jun Fen * n); /*按平均分排序*/ printf(ttt* 3. An dan ke cheng ji * n); /*按单科成绩排序*/ printf(ttt* ESC. Fan Hui * n); /*返回*/ printf(ttt*nn); printf(tQing Xuan Ze(press 1.2.3.Esc):n);/*请选择:*/ c3=getch(); if(c3=27) break; switch(c3) case 1:paino();break; case 2:paiave();break; case 3:paidkcj();break; default: printf(nXuan Zen You Wu,Qing Chong Xuan!nn);/*选择有误,请重选!*/ stop(); void paino() /*按学号排序*/ /*按学号从低到高冒泡法排序*/ int i,j,k; for(i=0;inum;i+) for(j=0;j0) change(j,j+1); printf(nPai Xu Hou Wei:n); /*“排序后为:”*/ output();void paiave() /*按平均分排序 */ /*按平均分从高到低冒泡法排序*/ int i,j; struct student temp; tongji1(); /*计算平均成绩*/ for(i=0;inum;i+) for(j=0;jnum-i-1;j+) if(stuj.avestuj+1.ave) change(j,j+1); printf(ntPai Xu Hou Wei:n); /*“排序后为:”*/ printf(t=n); printf(tXueHao XingMing RuXueNian Ave Pai mingn); printf(t=n); for(i=0;i=1&c=5) k=c-49; for(i=0;inum;i+) for(j=0;jnum-1-i;j+) if(stuj.scorekstuj+1.scorek) change(j,j+1); outputx(k); else printf(nXuan Zen You Wu,Qing Chong Xuan!nn); stop(); void change(int i,int j) /*交换结构体数组中的两个记录*/ struct student temp; temp=stui; stui=stuj; stuj=temp;void outputx(int k) /*选择输出单科成绩*/ char xueke510=Cyuyan,Gaoshu,Wuli,Dianlu,Modian; char (*p)10; /*定义一个指向包含10个字符型元素的一维数组的指针变量*/ int i; p=xueke; printf(ntPai Xu Hou Wei:n); printf(t=n); printf(tXueHao XingMing RuXueNian %s Pai Mingn,p+k); printf(t=n); for(i=0;inum;i+) printf(t%-11s% -10s%-11d%-6.1f%5dn,stui.no, ,stui.year,stui.scorek,i+1);void find1() /*查找界面函数*/ char c4; char cno11,cname10; int i,j,cyear; while(1) clrscr(); printf(ttt*n); printf(ttt* Cha Zhao *n); printf(ttt* 1. An Xue Hao *n); /*按学号查找*/ printf(ttt* 2. An Xing Ming *n); /*按姓名查找*/ printf(ttt* 3. An Ru Xue Nian *n); /*按入学年查找*/ printf(ttt* ESC. Fan Hui *n); /*返回*/ printf(ttt*n); printf(tttQing Xuan Ze:n);/*请选择:*/ c4=getch(); if(c4=27) break; switch(c4) case 1: printf(Shu Ru Xue Hao:n);/*“输入学号:”*/ gets(cno); i=find(cno); panduani( i); break; case 2: printf(Shu Ru Xing Ming:n);/*“输入姓名:”*/ gets(cname); i=findname(cname); panduani(i); break; case 3: printf(Shu Ru RU Xue Nian:n);/*“输入入学年”*/ scanf(%d,&cyear); findyear(cyear); stop(); break; default: printf(Xuan Zen You Wu,Qing Chong Xuan!n);/*“选择有误,请重选!”*/ int findname(char cname) /*按姓名查找*/ int i; for(i=0;inum;i+) if(strcmp(,cname)=0) /*判断两个字符串相等*/ return i; /*查找成功*/ return -1; /*查找失败*/void findyear(int cyear) int i,j,flag=0; for(i=0;inum;i+) if(stui.year=cyear) flag=1;break; if(flag=0) printf(Yao Cha Zhao De Xue Sheng Bu Cun Zain);stop(); else printf(Cha Zhao Dao De Xue Sheng Xin Xi Wei:n);/*“查找到的学生信息为:”*/ printf(XueHao XingMing RuXueNian C GaoShu DaWu DianLu MoDiann); printf(=n); for(i=0;inum;i+) if(stui.year=cyear) /*判断两个数值相等*/ printf(%-11s% -10s%-11d,stui.no,,stui.year); for(j=0;j5;j+) printf(% -7.1f,stui.scorej); printf(n); int panduani(int i) /*通过i的值,判断信息要查找的信息是否存在*/ int j; if(i=-1) printf(Yao Cha Zhao De Xue Sheng Bu Cun Zain);/*要查找的学生不存在*/ stop(); else printf(Cha Zhao Dao De Xue Sheng Xin Xi Wei:n);/*“查找到的学生信息为:”*/ p

温馨提示

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

评论

0/150

提交评论