c语言成绩管理系统源代码+流程图_第1页
c语言成绩管理系统源代码+流程图_第2页
c语言成绩管理系统源代码+流程图_第3页
c语言成绩管理系统源代码+流程图_第4页
c语言成绩管理系统源代码+流程图_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、#include<stdio.h>#include<string.h>#include<stdlib.h> void frist_print()prmtf("tt*nnH);printf ("ttt欢迎进入学生成绩系统nM);printf("tttttttt此程序合作完成由printf(nntttttttt printf("tttttttt printf(ntttttttt printf(Atttttttt * printf(Atttttttt * printf(Mtttttttt * printf(*'ttt

2、ttttt * printf(Atttttttt printf("tttttttt printf(ntttttttt printf(Atttttttt printf(*'tttttttt printf(Htttttttt printf(Mtttttttt printf(Atttttttt*天顺/欢迎信息”);*nM);*nn);*n");*nu);*n");淼鑫*n“);*n“);*n“);*n");*nn);*n“);*nn);n");n");/*voidmenu()*printf("ntt*n");/

3、管理菜单printf("ntt=1.录入学生成绩ntt+nM);printf("tt=2.显示学生成绩ntt+n'f);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(Htt=8.退出系统n");prmtf(Hntt*n'

4、f);printf(Hplease choise putchar(10);专业资料,*/结构体定义/第一次输入信struct MM变量(char num20;char name10;float sco5sco2,sco35sco4;int many;mm;I/*void scanf_1 ()息并保存在文件中(char ch;FILE *fp;if(fp=fopen(,dd.dat,"wb+")=NULL)(printf(Hcannot open filenH); exit(O);do(printf(”请输入学生的-编号:t"); getchar();gets(mm

5、.num);printf(n 姓名:t"); gets();printf("总成绩:t"); scant("%fH,&mm.sco);printf(u 平时成绩:t"); scanf("f”,&mm.sco2);printf("作业成绩:t“);scanf("%r,&mm.sco3);printf("考试成绩:t"); scanf(M%f",&mm.sco4);printf("学号:tu);scanf("%d"

6、,&mm.many);if(fwrite(&mm,sizeof(struct MM),1 ,fp)!=1)(printf("file write errornn);exit(O);|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")

7、=NULL)(printf(Hcannot open filenH); exit(O);printf("请输入要查询的成绩的式nt1.编号2.姓名:nt请选择1 or 2 f); scanf("%d'&a);if(a=1)getchar();printf(”请输入学生的编号:门;gets(ch);while(fread(&mm,sizeof(struct MM),1 ,fp)=1) if(strcmp(mm.num,ch)=O)(b+;printf("编号t姓名t成绩tt学号n");printf("st%st%.3ftt

8、%drT,mm.num,,mm.sco,mm.many);)if(b=O) printf("对不起!没有找到相关信息:n”);|else if(a=2) printf("请输入学生的姓名:t");getchar();gets(ch);while(fread(&mm,sizeof(struct MM),1 ,fp)=1) if(strcmp(,ch)=O)b+;printf("编号t姓名t成绩tt学号n“);printf(n%st%st%.3ftt%,mm.sco,mm.many);if

9、(b=O) printf("input error!nM);fclose(fp);)I/*/第二次输入信void scanf_2()息并保存在文件中(char ch;FILE *fp;if(fp=fopen(,dd.dat',"ab")=NULL) (printf(Mcannot open filenfl);exit(O);do(printf("请输入要添加成绩的一编号getchar();gets(mm.num);printf("姓名:t“); gets();printf("成绩:f);scanf("%

10、r,&mm.sco);printf(”学号:tu);scanf(n%dn,&mm.many);if(fwrite(&mm,sizeof(struct MM),1,fp)!=1)(printf("file write errorn");exit(O);printf("是否继续输入yorn ?tn);getchar();ch=getchar();while(ch='y|ch=,Y');fclose(fp);)I/* * *void print。输出文档中的信息(FILE *fp;if(fp=fopen(,dd.dat,7,rbH

11、)=NULL)(printf("cannot open filen"); return ;printf("编号t姓名t成绩tt学号n“);while(fread(&mm,sizeof(struct MM),1 ,fp)=1)printf(n%st%st%.3ftt%,mm.sco,mm.many);fclose(fp);I/*void change()修改信息的函数,定义另一个文件,把要修改的信息放到该文件中struct XX/然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名把原来的文件移除;char num2

12、0;char name10;float sco;int many;xx;FILE *fp2;int a,b=0,c=0,n=0;char ch20,ck;FILE *fp;doif(fp=fopen(,'dd.dat,;,rb',)=NULL)(printf("cannot open filenn); exit(O);Hf(fp2=fopen("temp.dat","wb")=NULL)(printf("cannot open filenn);exit(O);|printf(”请输入要修改成绩的编号:t");

13、 scanf(n%s",ch);n+;while(fread(&mm,sizeof(struct MM),1 ,fp)=1)if(strcmp(mm.num,ch)=O)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(”请输入成绩的新姓名:tu);ge

14、ts();printf(”请输入成绩的新成绩:r);scanf("%fu,&xx.sco);printf(“请输入成绩新学号:t");scanf(n%d",&xx.many);getchar();fwrite(&xx,sizeof(struct XX), 1 ,fp2);)if(strcmp(mm.num,ch)!=O)fwrite(&mm,sizeof(struct MM),1 ,fp2);if(b=O)(printf("t 没有找到相关信息! nH); getchar();rewind(fp);如果要继续

15、修改的话,要把标记返回到文件的开头;printf("是否继续修改? enter y or h t");ck=getchar();fclose(fp);fclose(fp2);removef'dd.dat"); rename(,'temp.dat";'dd.dat,');while(ck=y|ck=,Y');if(b!=O) /如果没有找到相关信息就不能输出printf(”t 修改成功:n");*void del()删除函数(和修改很相似)FILE *fp2;int a,b=0,c=0,n=0;char c

16、h20,ck;FILE *fp;do if(fp=fopen(,'dd.dat',;,rbH)=NULL)判断以读二进制的式打开文件dd.dat ,文件句柄保存到fp , fp是否为空如果为空,就是打开文件 失败,否则打开文件成功( printf("cannot open filenn); exit(O);if(fp2=fopen("temp.dat","wb")=NULL) ( printf("cannot open filenn);exit(O);| printf(”请输入要删除成绩的编号:门; scanf(&qu

17、ot;s”,ch);n+;while(fread(&mm,sizeof(struct MM),1 ,fp)=1) /fread ()成功的 返回值就是参数里读取的数据块个数,这里就是1;sizeof中是每一项的长度, (if(strcmp(mm.num,ch)=O) / 设这两个字符 串为str1, str2 ,若str1 =str2 ,则返回零;若str1 <str2 ,则返回负数;若str1 >str2 ,则返回正 数。b+;b的值如果一直没有改变说明,没有找到相关的信息;printf("编号t姓名t成绩tt学号n");printf('

18、9;%st%st%.3ftt%dn',mm.num,,mm.sco,mm.many);else if(strcmp(mm.num,ch)!=O) fwrite(&mm,sizeof(struct MM),1 ,fp2);是向fp2指向的文件中写m中的容,sizeof中是每一项的长度,后面的1是指写1个长度if(b=O)printf(Ht没有找到相关信息! n"); getchar();rewind(fp);getchar();getchar();printf("删除成功! ”);改的话,要把标记返回到文件的开头;getchar();/如果要继续修printf("是否继续删除? enter y or 'n' tH);ck=getchar();fclose(fp);fclose(fp2);remove

温馨提示

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

评论

0/150

提交评论