




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#includevoid frist_print() printf(tt*nn); /欢迎信息 printf(ttt欢迎进入学生成绩系统n); printf(tttttttt 此程序合作完成由); printf(ntttttttt * * * * n); printf(tttttttt * * * * n); printf(tttttttt * * * n); printf(tttttttt * 王杨 * n); printf(tttttttt * * n); printf(tttttttt * 李淼鑫 * n); printf(tttttttt * * n); printf(tttttttt * * n); printf(tttttttt * 孙天顺 * n); printf(tttttttt * * n); printf(tttttttt * * n); printf(tttttttt * * n); printf(tttttttt * * n); printf(tttttttt * * n); printf(tttttttt * n); /*void menu() printf(ntt*n); /管理菜单 printf(ntt=1.录入学生成绩=ntt+n); printf(tt=2.显示学生成绩=ntt+n); printf(tt=3.查询学生成绩=ntt+n); printf(tt=4.添加学生成绩=ntt+n); printf(tt=5.修改学生成绩=ntt+n); printf(tt=6.删除学生成绩=ntt+n); printf(tt=7.清 空 页 面 =ntt+n); printf(tt=8.退 出 系 统 =n); printf(ntt*n); printf(please choise 1-8:t); putchar(10); /*struct MM / 结构体定义变量 char num20; char name10; float sco,sco2,sco3,sco4; int many; mm; /*void scanf_1() /第一次输入信息并保存在文件中 char ch; FILE *fp; if(fp=fopen(dd.dat,wb+)=NULL) printf(cannot open filen); exit(0); do printf(请输入学生的-编号:t); getchar(); gets(mm.num); printf(姓名:t); gets(); printf(总成绩:t); scanf(%f,&mm.sco); printf(平时成绩:t); scanf(%f,&mm.sco2); printf(作业成绩:t); scanf(%f,&mm.sco3); printf(考试成绩:t); scanf(%f,&mm.sco4); printf(学号:t); scanf(%d,&mm.many); if(fwrite(&mm,sizeof(struct MM),1,fp)!=1) printf(file write errorn); exit(0); printf(是否继续输入y or n ?t); getchar(); ch=getchar(); while(ch=y|ch=Y); fclose(fp); /*void find() /查询成绩的信息 int a,b=0; char ch20; FILE *fp; if(fp=fopen(dd.dat,rb)=NULL) printf(cannot open filen); exit(0); printf(请输入要查询的成绩的方式nt1.编号 2.姓名:nt请选择 1 or 2 t); scanf(%d,&a); if(a=1) getchar(); printf(请输入学生的编号:t); gets(ch); while(fread(&mm,sizeof(struct MM),1,fp)=1) if(strcmp(mm.num,ch)=0) b+; printf(编号t姓名t成绩tt学号n); printf(%st%st%.3ftt%dn,mm.num,,mm.sco,mm.many); if(b=0) printf(对不起!没有找到相关信息:n); else if(a=2) printf(请输入学生的姓名:t); getchar(); gets(ch); while(fread(&mm,sizeof(struct MM),1,fp)=1) if(strcmp(,ch)=0) b+; printf(编号t姓名t成绩tt学号n); printf(%st%st%.3ftt%dn,mm.num,,mm.sco,mm.many); if(b=0) printf(input error!n); fclose(fp); /*void scanf_2() /第二次输入信息并保存在文件中 char ch; FILE *fp; if(fp=fopen(dd.dat,ab)=NULL) printf(cannot open filen); exit(0); do printf(请输入要添加成绩的-编号:t); getchar(); gets(mm.num); printf(姓名:t); gets(); printf(成绩:t); scanf(%f,&mm.sco); printf(学号:t); scanf(%d,&mm.many); if(fwrite(&mm,sizeof(struct MM),1,fp)!=1) printf(file write errorn); exit(0); printf(是否继续输入y or n ?t); getchar(); ch=getchar(); while(ch=y|ch=Y); fclose(fp); /*void print() /输出文档中的信息 FILE *fp; if(fp=fopen(dd.dat,rb)=NULL) printf(cannot open filen); return ; printf(编号t姓名t成绩tt学号n); while(fread(&mm,sizeof(struct MM),1,fp)=1) printf(%st%st%.3ftt%dn,mm.num,,mm.sco,mm.many); fclose(fp); /*void change() /修改信息的函数,定义另一个文件,把要修改的信息放到该文件中 struct XX /然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名 /把原来的文件移除; char num20; char name10; float sco; int many; xx; FILE *fp2; int a,b=0,c=0,n=0; char ch20,ck; FILE *fp; do if(fp=fopen(dd.dat,rb)=NULL) printf(cannot open filen); exit(0); if(fp2=fopen(temp.dat,wb)=NULL) printf(cannot open filen); exit(0); printf(请输入要修改成绩的编号:t); scanf(%s,ch); n+; while(fread(&mm,sizeof(struct MM),1,fp)=1) if(strcmp(mm.num,ch)=0) b+; /b的值如果一直没有改变说明,没有找到相关的信息; printf(编号t姓名t成绩tt学号n); printf(%st%st%.3ftt%dn,mm.num,,mm.sco,mm.many); getchar(); printf(请输入成绩的新编号:t); gets(xx.num); printf(请输入成绩的新姓名:t); gets(); printf(请输入成绩的新成绩:t); scanf(%f,&xx.sco); printf(请输入成绩新学号:t); scanf(%d,&xx.many); getchar(); fwrite(&xx,sizeof(struct XX),1,fp2); if(strcmp(mm.num,ch)!=0) fwrite(&mm,sizeof(struct MM),1,fp2); if(b=0) printf(t没有找到相关信息!n); getchar(); rewind(fp); /如果要继续修改的话,要把标记返回到文件的开头; printf(是否继续修改?enter y or n t); ck=getchar(); fclose(fp); fclose(fp2); remove(dd.dat); rename(temp.dat,dd.dat); while(ck=y|ck=Y); if(b!=0) /如果没有找到相关信息就不能输出 printf(t修改成功:n); /* void del() /删除函数(和修改很相似) FILE *fp2; int a,b=0,c=0,n=0; char ch20,ck; FILE *fp; do if(fp=fopen(dd.dat,rb)=NULL) /判断以读二进制的方式打开文件dd.dat,文件句柄保存到fp,fp是否为空如果为空,就是打开文件失败,否则打开文件成功 printf(cannot open filen); exit(0); if(fp2=fopen(temp.dat,wb)=NULL) printf(cannot open filen); exit(0); printf(请输入要删除成绩的编号:t); scanf(%s,ch); n+; while(fread(&mm,sizeof(struct MM),1,fp)=1) /fread()成功的返回值就是参数里读取的数据块个数,这里就是1; sizeof中是每一项的长度, if(strcmp(mm.num,ch)=0) /设这两个字符串为str1,str2,若str1=str2,则返回零;若str1str2,则返回正数。 b+; /b的值如果一直没有改变说明,没有找到相关的信息; printf(编号t姓名t成绩tt学号n); printf(%st%st%.3ftt%dn,mm.num,,mm.sco,mm.many); else if(strcmp(mm.num,ch)!=0) fwrite(&mm,sizeof(struct MM),1,fp2); /是向fp2指向的文件中写m中的内容, sizeof中是每一项的长度,后面的1是指写1个长度 if(b=0) printf(t没有找到相关信息!n); getchar(); rewind(fp); getchar(); getchar(); printf(删除成功!); getchar(); /如果要继续修改的话,要把标记返回到文件的开头; printf(是否继续删除?enter y or n t); ck=getchar(); fclose(fp); fclose(fp2); remove(dd.dat); rename(temp.dat,dd.dat); while(ck=y|ck=Y); if(b!=0) /如果没有找到相关信息就不能输出 printf(t保存成功:n); /*void myexit() int a; char ch; printf(t是否确定退出?请选择 y or n: ); getchar(); ch=getchar(); if(ch=y|ch=Y) exit(0); else menu(); /*int main() int a; frist_print(); menu(); while(1) scanf(%d,&a); if(a=1) scanf_1(); else if(a=2) print(); else if(a=3) find(); else if(a=4) scanf_2(); else if(a=5)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何打造一个成功的家具品牌设计试题及答案
- 小语种高考改革试题及答案
- 江苏省速写试题及答案
- 小学教师教育教学反思的社会适应性与创新路径探索试题及答案
- 电梯操作证试题及答案
- 建筑行业安全政策变动试题及答案
- 电商与农业合作社的融合发展试题及答案
- 物联网技术在农业电商中的运用考试试题及答案
- 教练原理考试题及答案
- 用户体验在家具设计中的作用试题及答案
- 雨季燕窝知识讲座
- 部编版小学道德与法治六年级下册《多元文化多样魅力》
- 昆虫的生存技巧和适应能力
- 危急值报告制度培训课件
- 2022年深圳市南山区教育系统招聘公办幼儿园副园长考试真题
- 基坑降水计算-潜水完整井-非完整井
- 幼儿园安全教育课件:《嘴巴里的小精灵》
- 幼儿园大班8的加法公开课
- 第一章-波动方程
- 爱心与教育读后感1
- 轨道电路分路不良作业方法课件
评论
0/150
提交评论