




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*学生成绩管理系统*/#include #include #defineSWN 3 /* 课程数 */#define NAMELEN 20 /* 姓名最大字符数 */#define CODELEN 10 /* 学号最大字符数 */#define FNAMELEN 80 /* 文件名最大字符数 */#define BUFLEN 80 /* 缓冲区最大字符数 */* 课程名称表 */char schoolworkSWNNAMELEN+1 = Chinese,Mathematic,English;struct record char nameNAMELEN+1; /* 姓名 */ char codeCODELEN+1; /* 学号 */ int marksSWN; /* 各课程成绩 */ int total; /* 总分 */stu;int totalSWN; /* 各课程总分 */ /全局变量/ FILE *stfpt; /* 文件指针 */char stufFNAMELEN; /* 文件名 */* 从指定文件读入一个记录 */int readrecord(FILE *fpt,struct record *rpt) char bufBUFLEN; int i; if(fscanf(fpt,%s,buf)!=1) return 0;/* 文件结束 */ strncpy(rpt-name,buf,NAMELEN); fscanf(fpt,%s,buf); strncpy(rpt-code,buf,CODELEN); for(i=0;imarksi); for(rpt-total=0,i=0;itotal+=rpt-marksi; return 1;/* 对指定文件写入一个记录 */writerecord(FILE *fpt,struct record *rpt) int i; fprintf(fpt,%sn,rpt-name); fprintf(fpt,%sn,rpt-code); for(i=0;imarksi);/* 显示学生记录 */displaystu(struct record *rpt) int i; printf(nName : %sn,rpt-name); printf(Code : %sn,rpt-code); printf(Marks :n); for(i=0;imarksi); printf(Total : %4dn,rpt-total);/* 计算各单科总分 */int totalmark(char *fname) FILE *fp; struct record s; int count,i; if(fp=fopen(fname,r)=NULL) printf(Cant open file %s.n,fname); return 0; for(i=0;iSWN;i+) totali=0; count=0;while(readrecord(fp,&s)!=0) /注意函数参数的传递,地址传递 for(i=0;iSWN;i+) totali+=s.marksi; count+; fclose(fp);return count;/* 返回记录数 */* 列表显示学生信息 */void liststu(char *fname) FILE *fp; struct record s; if(fp=fopen(fname,r)=NULL) printf(Cant open file %s.n,fname); return ; while(readrecord(fp,&s)!=0) displaystu(&s); printf(n Press ENTER to continue.n); while(getchar()!=n); fclose(fp); return;/* 按学生姓名查找学生记录 */int retrievebyn(char *fname, char *key) FILE *fp;int c;struct record s;if(fp=fopen(fname,r)=NULL) printf(Cant open file %s.n,fname); return 0;c=0;while(readrecord(fp,&s)!=0) if(strcmp(,key)=0) displaystu(&s); c+; fclose(fp);if(c=0) printf(The student %s is not in the file %s.n,key,fname);return 1;/* 按学生学号查找学生记录 */int retrievebyc(char *fname, char *key) FILE *fp; int c; struct record s; if(fp=fopen(fname,r)=NULL) printf(Cant open file %s.n,fname); return 0;c=0;while(readrecord(fp,&s)!=0) if(strcmp(s.code,key)=0) displaystu(&s); c+; break; fclose(fp);if(c=0) printf(The student %s is not in the file %s.n,key,fname);return 1;main() int i,j,n;char c;char bufBUFLEN;FILE *fp;struct record s;printf(Please input the students marks record files name: );scanf(%s,stuf);if(fp=fopen(stuf,r)=NULL) printf(The file %s doesnt exit, do you want to creat it? (Y/N) ,stuf); getchar(); /吸收前面scanf语句的回车 c=getchar(); if(c=Y|c=y) fp=fopen(stuf,w); printf(Please input the record number you want to write to the file: ); scanf(%d,&n); for(i=0;in;i+) printf(Input the students name: ); scanf(%s,&); printf(Input the students code: ); scanf(%s,&s.code); for(j=0;jSWN;j+) printf(Input the %s mark: ,schoolworkj); scanf(%d,&s.marksj); writerecord(fp,&s); fclose(fp); fclose(fp);getchar();puts(Now you can input a command to manage the records.);puts(m : mean of the marks.);puts(t : total of the marks.);puts(n : search record by students name.);puts(c : search record by students code.);puts(l : list all the records.);puts(q : quit!);while(1) printf(Please input command:n); scanf( %c,&c);/* 输入选择命令 */ if(c=q|c=Q) puts(n Thank you for your using.); break; /* q,结束程序运行 */ switch(c) case m: /* 计算平均分 */ case M: if(n=totalmark(stuf)=0) /实际上是在测试程序 puts(Error!); break; printf(n); for(i=0;iSWN;i+) printf(%-15ss average is: %.2f.n,schoolworki,(float)totali/n); break; case t: /* 计算总分 */ case T: if(n=totalmark(stuf)=0) puts(Error!); break; printf(n); for(i=0;iSWN;i+) printf(%-15ss total mark is: %d.n,schoolworki,totali); break; case n: /* 按学生的姓名寻找记录 */ case N: printf(Please input the students name you want to search: ); scanf(%s,buf); retrievebyn(stuf,buf); break; case c: /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西赣南医科大学高层次人才招聘180人考前自测高频考点模拟试题及一套完整答案详解
- 2025江苏徐州市文化广电和旅游局所属事业单位招聘高层次人才2人模拟试卷及完整答案详解1套
- 2025河北雄安新区新建片区学校选聘校长及骨干教师13名考前自测高频考点模拟试题完整参考答案详解
- 2025年度黑龙江省气象部门高校毕业生招聘4人(第三批次气象类)模拟试卷及参考答案详解
- 2025广东阳江市阳春市招聘乡村公益性岗位32人(第三批)模拟试卷带答案详解
- 2025年甘肃庆阳庆城县事业单位引进高层次和急需紧缺人才(第三批)模拟试卷及完整答案详解
- 2025年上海新上铁实业发展集团有限公司合肥分公司招聘1人考前自测高频考点模拟试题及答案详解(典优)
- 2025黑龙江孙吴县卫生健康局乡村医生招聘8人模拟试卷(含答案详解)
- 2025广东江门市恩平市引进各类人才(卫生健康系统医共体高层次人才和急需紧缺人才专场)模拟试卷及一套答案详解
- 2025贵州黔西南州人民医院高层次人才引进58人考前自测高频考点模拟试题附答案详解(考试直接用)
- T/CADBM 62-2022多元镁轻质无机板
- 销售业务外包合作协议范本7篇
- 统编版(2024)道德与法治一年级上册全册公开课一等奖创新教学设计
- (高清版)DB11∕T1205-2024用能单位能源审计报告编制与审核技术规范
- 慢性阻塞性肺病临床路径教学的查房课件
- Unit4Lesson19MeetLiMingsFamily(教学设计)-冀教版英语五年级上册
- 《子宫腺肌症》课件
- UL498标准中文版-2019插头插座UL标准中文版
- 功能性食品市场分析
- 高考数学复习:三角函数 专项练习(原卷版+解析)
- 《孙子兵法及影响》课件
评论
0/150
提交评论