c语言实训三.doc_第1页
c语言实训三.doc_第2页
c语言实训三.doc_第3页
c语言实训三.doc_第4页
c语言实训三.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

学生成绩排文件管理1、实训目的(1)掌握文件指针的概念和运用;(2)掌握文件的相关操作:打开、读、写、关闭;(3)掌握文件的定位操作。2、实训内容(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩;(2)从键盘输入10个学生的以上内容,存入文件stud.dat,关闭文件;(3)打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件;(4)打开文件stud.dat文件,读出数据,将10个学生按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件studsort.dat中;(5)从studsort.dat 文件中读取第2,4,6,8,10个学生的数据。3、实训要求(1)在报告中画出程序流程图,说明程序设计的算法,附主要程序段;(2)在报告中说明知识点;(3)在报告中说明程序设计过程中的难点、解决办法及编程小结或体会;/*存放10个学生的数据*/#include#define N 10struct student_typeint num;char name10;int math;int chinese;int english;float average;studN;void save()FILE *fp;int i;if(fp=fopen(stud.dat,wb)=NULL)printf(cannot open filen);return;for(i=0;iN;i+)if(fwrite(&studi,sizeof(struct student_type),1,fp)!=1)printf(file wirte errorn);fclose(fp);void main()int i;printf(putin the %d number student save to stud.dat:nnum name math,chinese,english,score:n,N);for(i=0;iN;i+)scanf(%d%s%d%d%d,&studi.num,,&studi.math,&studi.chinese,&studi.english);save();/*打开stud.dat,检验输入是否正确*/#include#define N 10struct student_typeint num;char name10;int math;int chinese;int english;float average;studN;void main()int i;FILE *fp;fp=fopen(stud.dat,rb);printf(the 51.c stud.dat is:n);printf(number name math chinese english:n);for(i=0;iN;i+)fread(&studi,sizeof(struct student_type),1,fp);printf(%3d %s %d %d %dn,studi.num,,studi.math,studi.chinese,studi.english);fclose(fp);/*打开stud.dat,输出10个学生平均分从高到低顺序,并存储到studsort.dat*/#include#define N 10struct student_typeint num;char name10;int math;int chinese;int english;float average;studN;void printf_student_dat()int i;FILE *fp1;fp1=fopen(stud.dat,rb);printf(the 51.c stud.dat is:n);printf(number name math chinese english:n);for(i=0;iN;i+)fread(&studi,sizeof(struct student_type),1,fp1); /* studi.average=(studi.math+studi.chinese+studi.english)*1.0)/3;*/printf(%3d %s %d %d %d %n,studi.num,,studi.math,studi.chinese,studi.english,studi.average);fclose(fp1);void save()FILE *fp;int i;if(fp=fopen(studsort.dat,wb)=NULL)printf(cannot open filen);return;for(i=0;iN;i+)if(fwrite(&studi,sizeof(struct student_type),1,fp)!=1)printf(file wirte errorn);fclose(fp);void main()printf_student_dat();int i,j,k;FILE *fp;fp=fopen(stud.dat,rb); for(i=0;iN;i+)fread(&studi,sizeof(struct student_type),1,fp); studi.average=(studi.math+studi.chinese+studi.english)*1.0)/3;/*for(i=0;iN;i+)studi.average=(studi.math+studi.chinese+studi.english)*1.0)/3;*/for(i=0;iN-1;i+) k=i; for(j=i+1;jstudk.average) k=j; if(k!=i) studN=studi; studi=studk; studk=studN; printf(number name math chinese english averagen);for(i=0;iN;i+)printf(%3d %s %d %d %d %fn,studi.num,,studi.math,studi.chinese,studi.english,studi.average); save();/*从studtsort.dat输出2,4,6,8,10的成绩*/#include#define N 10struct student_typeint num;char name10;int math;int chinese;int english;float average;studN;void main()int i,k,j;FILE *fp;if(fp=fopen(studsort.dat,rb)=NULL)printf(can not open filen);return;printf( num name math chinese english averagen);fp=fopen(studsort.dat,rb);for(i=0;iN;i+) /*fseek(fp,i*sizeof(struct student_type),0);*/ fread(&studi,sizeof(struct student_type),1,fp); for(i=0;iN-1;i+) k=i; for(j=i+1;jN;j+)if(studj.numstudk.num) k=j;if(k!=i) studN=studi; studi=studk; studk=studN;for(i=1;iN+1;i+=2)printf(the %3d student dat:%3d %s %d %d %d %fn,i+1,studi.num,,studi.math,studi.chinese,studi.english,studi.average);fclose(fp);/*检验studsort.dat数据*/#include#define N 10struct student_typeint num;char name10;int math;int chinese;int english;float average;studN;void main()int i;FILE *fp;fp=fopen(studsort.dat,rb);printf(the 51.c studsort.dat is:n);printf(number name math chinese englis

温馨提示

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

评论

0/150

提交评论