




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通信 1701 吕继辉实验一:文件程序设计实验目的:1. 掌握文件的基本概念;2. 掌握文本文件的打开和关闭操作3. 掌握文本文件的顺序读、写方法、实验要求:1. 编写程序,从键盘输入若干实数 (以特殊数值 -1 结束),分别写到一个文本文件中。要求:数据写入文件时,各数据 独自占一行。输入示例:输出示例:通信 1701 吕继辉2. 从键盘输入以下 5 个学生的学号、姓名,以及数学、 语文和英语成绩,写到文本文件 f2.txt 中,再从文件中取出 数据,计算每个学生的总成绩和平均分,并将结果显示在屏 幕上。提示 :在文件读写的整个过程中,每一次成功的操作都 将改变文件指针的位置。当多次打开文件
2、,并需要将读写位 置指针定位在文件的首地址时,可使用 重定位文件首函数 rewind ()。调用格式为:rewind ( FIFL *fp );建议 :可将学生信息定义变量如下形式:输入输出示例:通信 1701 吕继辉3. 在第 2 题的基础上,改进要求:从键盘输入学生信息 的个数不做限制,当对应学号信息输入为“-1”时,结束学生信息录入4. 【拓展题目】假定有个数据文件“cet4.dat ”,存储了若干学生的英语四级成绩。每个学生的基本信息结构包括: 学号( 12 位),姓名(不含空格且不超过 20 位),专业(不通信 1701 吕继辉超过 30 位)和英语四级成绩。编写程序,从文件中读取数
3、 据,完成下列要求,并将筛选结果输出到屏幕。(1)按学号序输出: “电科”专业 CET-4 成绩“优秀” ( 550 分以上)的学生信息,每个学生的信息占一行;输入输出示例:(2)按学号序输出: “软件工程”专业 CET-4 未通过( 425 分以下)的学生信息,每个学生的信息占一行。三、实验内容:(在实验课之前,根据实验要求,将 源代码 整理于此,并对 每个程序要求 截屏执行结果 ;实验课上机调试过程中,发现 错误,则直接在上面用其它颜色标记并修改出来。 )通信 1701 吕继辉四、实验结果 & 总结:(列出实验过程中的收获和遇到的困难)1.#include #include int mai
4、n(void)FILE *fp; double num;fp = fopen(test.txt,w);for(;)scanf(%lf,&num);if(num = -1)break;fprintf(fp,%lfn,num);通信 1701 吕继辉fclose(fp);return 0;通信 1701 吕继辉2.错误原因:为将文件读入#include #include typedef struct studentint stu_ID;char stu_Name10;int stu_math, stu_chi, stu_eng;int score_all, score_ave;STUDENTinf
5、 main(void)STUDENTS 三 10a7nnB輛F_LE *pfp H fopenuNxvw in二fo(一 H 07-H4T+)scanf (二d %s %d %d %d=QOsfu 日.sfuDau 三.SfuNamecsfu 日 sfumafhcsfussfuchLQOsfussfuengxfprinff(fp=%d %s %d %d %2n=sfu 日.sfuDau 三.SfuNampsf u 日 sfumafhau 日.sfuchLsfu 日.sfueng)八fcose(fp)通信 1701 吕继辉printf(nn *nn);for(i = 0;i=4;i+)stui.
6、score_all = stui.stu_math + stui.stu_chi stui.stu_eng;stui.score_ave = stui.score_all / 3;printf(%d %s %d %d %d %d %dn,stui.stu_ID,stui.stu_Name,stui.stu_math,stui.stu_chi,stui.stu_eng,stui.score_all,stu i.score_ave);return 0;正确#include #include 通信 1701 吕继辉typedef struct studentint stu_ID;char stu_N
7、ame10;int stu_math, stu_chi, stu_eng;int score_all, score_ave;STUDENT;int main(void)STUDENT stu10;FILE *fp;fp = fopen(f2.txt,w);int i;for(i = 0;i=4;i+)scanf(%d %s %d %d %d,&stui.stu_ID,stui.stu_Name,&stui .stu_math,&stui.stu_chi,&stui.stu_eng);10通信 1701 吕继辉fprintf(fp,%d %s %d %d %dn,stui.stu_ID,stui
8、.stu_Name,st ui.stu_math,stui.stu_chi,stui.stu_eng);fclose(fp);printf(nn *nn);for(i = 0;i=4;i+)fscanf(fp,%d %s %d %d %d,&stui.stu_ID,stui.stu Name,&stui.stu_math,&stui.stu_chi,&stui.stu_eng );stui.score_all = stui.stu_math + stui.stu_chistui.stu_eng;stui.score_ave = stui.score_all / 3;11a7nnB輛prinff
9、 (二d %s %d %d %d %d %2n=sfu 日.sfuDau 日.SfuNam psfu 三.sfumafhau 三.sfuchLsfu 日.sfuengau 三.scoea=sfu 日.scoreave)八refum 0 八OVJ 5eAdminaatonD 职 kto pl Z 芽 b i rADgugl-zVJ24nupess80.1 sss -Sa 3 询暑4 u爲量5p g g 6 75 1 4 SC 5GC p 7 GO 83 G 3 7 1呦泮咱0 Of-rocf?器 PFt:=l?ned sSXH SLP6 M Hd Hu- anrdkcfto c on bMn u
10、c ro通信 1701 吕继辉3.错误原因 I j 更正为 i j 1#include #include typedef struct studentint stu_ID;char stu_Name10;13通信 1701 吕继辉int stu_math, stu_chi, stu_eng; int score_all, score_ave; STUDENT;int main(void)STUDENT stu10;FILE *fp;fp = fopen(f2.txt,w);int i,j;j = 0;for(i=0;i+)j+;scanf(%d,&stui.stu_ID); if(stui.s
11、tu_ID = -1)break;14a7nnB輛 scanf (二s %d %d %d=sfu 日.SfuNamecsfu 日.sfumafhcsfu 日. sf uch LQOsf u 日.sf ueng)八fprinff(fp=%d %s %d %d %2n=sfu 日.sfuDau 三.SfuNampsf u 日 sfumafhau 日.sfuchLsfu 日.sfueng)八fcose(fp)prinfftrAn*fo(一 H 07-=jT+)fscanf(fp=%d %s %d %d %d=QOsfu 日.sfuDcnfu 三.sfu Namecsc日.sfumafhcsfu 三.
12、sfuchicsfu 日.sfuen g)八亠5通信 1701 吕继辉stui.score_all = stui.stu_math + stui.stu_chi +stui.stu_eng;stui.score_ave = stui.score_all / 3;printf(%d %s %d %d %d %d %dn,stui.stu_ID,stui.stu_Nam e,stui.stu_math,stui.stu_chi,stui.stu_eng,stui.score_all,stu i.score_ave);return 0;16通信 1701 吕继辉正确#include #include
13、 typedef struct studentint stu_ID;char stu_Name10;int stu_math, stu_chi, stu_eng;int score_all, score_ave;STUDENT;int main(void)STUDENT stu10;FILE *fp;fp = fopen(f2.txt,w); int i,j;j = 0;17a7nnB輛fo(llo+)宀j+scanf (二d=QOsfu 日.SC-D)八 if(sfu三.sfuD hh 1)宀break 八scanf (二s %d %d %d=sfu 日.SfuNamecsfu 日.sfum
14、afhcsfu 日. sf uch LQOsf u 日.sf ueng)八fprinff(fp=%d %s %d %d %2n=sfu 日.sfuDau 三.SfuNampsf u 日 sfumafhau 日.sfuchLsfu 日.sfueng)八fcose(fp)通信 1701 吕继辉printf(nn *nn);for(i = 0;ij-1;i+) fscanf(fp,%d %s %d %d %d,&stui.stu_ID,stui.stuName,&stui.stu_math,&stui.stu_chi,&stui.stu_en g);stui.score_all = stui.stu
15、_math + stui.stu_chistui.stu_eng;stui.score_ave = stui.score_all / 3;printf(%d %s %d %d %d %d %dn,stui.stu_ID,stui.stu_Name,stui.stu_math,stui.stu_chi,stui.stu_eng,stui.score_all,stu i.score_ave);return 0;19通信 1701 吕继辉4.错误 1使用了 double 未成功读取20通信 1701 吕继辉#include #include #define N 10000typedef struct
16、 student double stu_ID; char stu_Name20; char stu_pro30; int stu_score; STUDENT;int main()STUDENT stuN; int i,j;i = 0;FILE *fp;fp = fopen(d:student.dat,r);for(j=0;j+)21通信 1701 吕继辉fscanf(fp,%.0lf %s %s %dn,&stuj.stu_ID,stuj.stu_Name, stuj.stu_pro, &stuj.stu_score);i+;if(stuj.stu_score = 0) break;prin
17、tf( 通信专业 CET-4未通过: n);for(j=0;ji-1;j+)if(stuj.stu_score 425)printf(%-20.0lf%-10s%-10s%-10dn,stuj.stu_ID, stuj.stu_Name, stuj.stu_pro, stuj.stu_score);22通信 1701 吕继辉if(stuj.stu_ID = 0) break;fclose(fp);return 0;错误 2原因 未对专业筛选#include #include #define N 10000typedef struct student_int64 stu_ID;char stu_
18、Name20;char stu_pro30; int stu_score;23STUDENTinf main()宀STUDENTS 三 N in二 j 八-Ho-F_LE *pa7nnB輛fp H fopenudsfudenf.daa。二+fscanf(fp=%-64d %s %s %2n=Q0sfu 曰.sfup sfu 曰.SfuNampsfu 曰.sfuproQosfu 曰.sfuscore)八if(sfussfuscoe HH 0)break24通信 1701 吕继辉printf( 通信专业 CET-4成绩 优秀: n);for(j=0;j= 550)printf(%-15I64d%-
19、10s%-10s%-10dn,stuj.stu_ID,stuj.stu_Name, stuj.stu_pro, stuj.stu_score);if(stuj.stu_ID = 0)break;fclose(fp);return 0;25通信 1701 吕继辉#include #include #define N 10000 typedef struct student_int64 stu_ID;char stu_Name20;char stu_pro30;int stu_score;STUDENT;int main()STUDENT stuN;int i,j;26通信 1701 吕继辉i =
20、 0;FILE *fp;fp = fopen(d:student.dat,r);for(j=0;j+)fscanf(fp,%I64d %s %s %dn,&stuj.stu_ID,stuj.stu_Name, stuj.stu_pro, &stuj.stu_score);i+;if(stuj.stu_score = 0) break;printf( 通信专业 CET-4未通过: n);for(j=0;ji-1;j+)27通信 1701 吕继辉if(stuj.stu_score 425)printf(%-15I64d%-10s%-10s%-10dn,stuj.stu_ID, stuj.stu_N
21、ame, stuj.stu_pro, stuj.stu_score);if(stuj.stu_ID = 0)break;fclose(fp);return 0;正确#include #include 28通信 1701 吕继辉#include #define N 10000 typedef struct student_int64 stu_ID;char stu_Name20;char stu_pro30;int stu_score; STUDENT;int main()STUDENT stuN;int i,j;char pro1130, pro12= 通信 1703,pro2130,pro2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林业割草劳务合同范本
- 分期买车购车合同范本
- 合同范本模板哪个好用
- 网店外包服务合同范本
- 餐饮转租转让合同范本
- 修车的劳务合同范本
- 过敏性紫癜肾脏受累护理查房
- 会计岗位劳务合同范本
- 分红协议合同范本
- 房子租品合同范本
- 非全日制用工劳动合同书
- 实习安全知识培训课件
- 2025年国家基本公共卫生监督协管测试题及答案
- 2025年食品安全抽样考试试题题库(含答案)
- 血液速递通道2025年冷链物流信息化建设报告
- 2025年秋季开学教师会暨师德师风会议上校长讲话:守住一颗心点亮一盏灯走好一段路
- 数字化种植牙技术
- 2025年全国教育系统师德师风知识测试题及答案
- 2025年中煤财务岗笔试题及答案
- 糖尿病性视网膜病变
- 2025年平面设计笔试题库及答案
评论
0/150
提交评论