《最新C语言编程文件.doc》由会员分享,可在线阅读,更多相关《最新C语言编程文件.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言编程文件电子信息工程学系实验报告(十二)电子信息工程学系实验报告(十二)成 绩:课程名称:C程序设计 指导教师(签名):实验项目名称:文件 实验时间:2009-6-10 班级:计算机 姓名: 学号: 实 验 目 的: 掌握文件以及缓冲文件系统、文件指针的概念;学会使用文件打开、关闭、读、写等文件操作函数;学会用缓冲文件系统对文件进行简单的操作;实 验 环 境:W
2、indows XPTurbo c+ 3.0实 验 内 容 、 过 程 及 分 析 结 果: -有5名学生,每一个学生有3门课的成绩,从键盘输入以上的数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有的数据和计算出平均分数存放在磁盘文件stud中。解:#includestruct student char num10; char name8; int score3; float aver;stu5;void main() int i,www.bjl.tw.j,sum; FILE *fp; for(i=0;i5;i+) printf(input scores of student %d:
3、.twn,i+1); printf(No.); scanf(%s,stui.num); printf(name:); scanf(%s,stui.name); sum=0; for(j=0;j3;j+) printf(score %d:,j+1); scanf(%d,&stui.scorej); sum+=stui.scorej; stui.aver=sum/3.0; fp=fopen(stud,w); for(i=0;i5;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclos
4、e(fp);fp=fopen(stud,r); for(i=0;i5;i+) fread(&stui,sizeof(struct student),1,fp); printf(n%s,%s,%d,%d,%d,%6.2fn,stui.num,stui.name,stui.score0,stui.score1,stui.score2,stui.aver); getch();运行结果:input scores of student 1:No. 102name:wangscore 1:89score 2:82score 3:78input scores of student 2:No.103name:
5、fengscore 1:90score 2:69score 3:70input scores of student 3:No.104name:huangscore 1:78score 2:68score 3:85input scores of student 4:No.105name:jingscore 1:65score 2:78score 3:88input scores of student 5:No.106name:dangscore 1:88score 2:79score 3:66102,wang,89,82,78, 83.00103,feng,90,69,70, 76.33104,
6、huang,78,68,85, 77.00105,jing,65,78,88, 77.00106,dang,88,79,66, 77.67将上题stud文件中的学生数据按平均分进行排序处理,将已经排序的学生数据存入一个新的文件stu-sort中。解:#include #include #define N 10struct student char num10; char name8; int score3; float ave;stN,temp;void main() FILE *fp; int i,j,n; if(fp=fopen(stud,r)=NULL) printf(can not o
7、pen.); exit(0); printf(Filestud:); for(i=0;fread(&sti,sizeof(struct student),1,fp)!=0;i+) printf(n%8s%8s,sti.num,sti.name); for(j=0;j3;j+) printf(%8d,sti.scorej); printf(%10.2f,sti.ave); printf(n); fclose(fp); n=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(sti.avestj.ave) temp=sti; sti=stj; stj=temp; print
8、f(nNow:); fp=fopen(stu_sort,w); for(i=0;in;i+) fwrite(&sti,sizeof(struct student),1,fp); printf(n%8s%8s,sti.num,sti.name); for(j=0;j3;j+) printf(%8d,sti.scorej); printf(%10.2f,sti.ave); printf(n); fclose(fp); getch();运行结果:Filestud: 102 wang 89 82 78 83.00 103 feng 90 69 70 76.33 104 huang 78 68 85 7
9、7.00 105 jing 65 78 88 77.00 106 dang 88 79 Filestud: 66 77.67Now: 102 wang 89 82 78 83.00 106 dang 88 79 66 77.67 105 jing 65 78 88 77.00 104 huang 78 68 85 77.00 103 feng 90 69 70 76.33将上题移排序的数据进行插入处理。插入一个学生的3门课成绩。程序先计算新插入学生 的平均成绩,然后讲它按成绩高低次序插入,插入后建立一个新文件.解:#includestdio.h#includestdio.h#include s
10、tdlib.hstruct student char num10; char name8; int score3; float aver;stu10,t;void main() FILE *fp,*fp1; int i,j,k,n; printf(NO.); scanf(%s,t.num); printf(name:); scanf(%s,t.name);printf(score:); scanf(%d%d%d,&t.score0,&t.score1,&t.score2); t.aver=(t.score0+t.score1+t.score2)/3.0; if(fp=fopen(stu-sor
11、t,r)=NULL) printf(can not open); exit(0); printf(File stud:); for(i=0;fread(&stui,sizeof(struct student),1,fp)!=0;i+) printf(n%8s%8s,stui.num,stui.name); for(j=0;jt.aver&kn;k+)fp1=fopen(sort1.data,w);for(i=0;ik;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf(n%8s%8s,stui.num,stui.name);for(j=
12、0;j3;j+) printf(%8d,stui.scorej);printf(%10.2f,stui.aver); fwrite(&t,sizeof(struct student),1,fp1); printf(n%8s%7s%8d%8d%8d%10.2f,t.num,t.name,t.score0,t.score1,t.score2,t.aver); for(i=k;in;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf(n%8s%8s,stui.num,stui.name);for(j=0;j3;j+) printf(%8d,s
13、tui.scorej); printf(%10.2f,stui.aver); printf(n);fclose(fp);fclose(fp1); getch();运行结果:NO.107name:huascore:97 98 99Filestud:102 wang 89 82 78 83.00 106 dang 88 79 66 77.67 105 jing 65 78 88 77.00 104 huang 78 68 85 77.00 103 feng 90 69 70 76.33Now: 107 hua 97 98 99 98.00 102 wang 89 82 78 83.00 106 dang 88 79 66 77.67 105 jing 65 78 88 77.00 104 huang 78 68 85 77.00 103 feng 90 69 70 76.实 验 心 得:通过对本章知识点的学习,大体上了解了文件的使用方法,不过还是不太熟练,觉得太复杂了,有点难。
限制150内