c语言程序设计-第十章学生信息的读取与保存.ppt

c语言程序设计-第十章学生信息的读取与保存.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计 项目十 学生信息的读取与保存-文件 C语言程序设计 项目十 学生信息的读取与保存-文件 项目十 学生信息的读取与保存-文件 * 【项目要求】 从文件a.txt读取某班的期末考试成绩,按总分排序后写入另外一个文件b.txt。 在上一章实现的项目中发现,每次运行程序都要输入大量的数据,如果用我们以前学过的输入的方法就很不方便,最常用的方法就是预先将这些数据写到一个文件里,再将这个文件存放在磁盘上,需要时再将数据从该文件中读取。 为实现本项目需要经过打开文件、从文件进行数据的读/写、关闭文件指针三步。 【项目分析】 * 问题情境及实现 #include stdio.h #define N 100 typedef struct student { char num[11]; char name[9]; int score[3]; float avr; }STU; void fsort(STU s[],int n) //对结构体数组中的n个数据进行简单选择排序 { int i,j,k; STU t; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(s[k].avrs[j].avr) k=j; if(i!=k) { t=s[i];s[i]=s[k];s[k]=t; } } } * 问题情境及实现 void main() { FILE *fp1,*fp2; STU s[N]; int i,n,j,sum; if((fp1=fopen(f:\\cresource\\10w2.txt,r))==NULL) { printf(找不到该文件\n);/*如果打不开文件则给出相应的提示*/ getch(); exit(0); } i=0; while(!feof(fp1))/*从文件中读取有关数据,一直读到文件末尾*/ { fscanf(fp1,%s%s,s[i].num,s[i].name); sum=0; for(j=0;j3;j++) { fscanf(fp1,%d,s[i].score[j]); sum+=s[i].score[j]; } s[i].avr=sum/3.0;/*同时求出平均分*/ i++; } * 问题情境及实现 fclose(fp1); /*关闭文件*/ n=i; for(i=0;in;i++) { printf(\n第%d个学生的信息:%s %s,i+1,s[i].num,s[i].name); for(j=0;j3;j++) printf( %d,s[i].score[j]); } fsort(s,n); fp2=fopen(f:\\cresource\\10w2_2.txt,w);/*打开文件进行保存数据*/ for(i=0;in;i++) { fprintf(fp2,%s %s,s[i].num,s[i].name); for(j=0;j3;j++) fprintf(fp2, %d,s[i].score[j]); fprintf(fp2, %f,s[i].avr); fprintf(fp2,\n);/*写完一个学生的信息换行*/ } fclose(fp2); } * * 相关知识 2. 文件的打开与关闭 本讲小结 1. 文件概述 3. 文件的读写操作 4. 文件应用举例 * 1 文件概述(1) 1.1 使用文件的目的 ①程序与数据分离: 数据文件的改动不引起程序的改动; ②数据共享: 不同程序可以访问同一数据文件中的数据; ③能长期保存程序运行的中间数据或结果数据。 * 1 文件概述(2) 1.2 文件的分类 按文件的逻辑结构: 记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 按存储介质: 普通文件:存储介质文件(磁盘、磁带等) 设备文件:非存储介质(键盘、显示器、打印机等) * 1 文件概述(3) 1.2 文件的分类(续) 按数据的组织形式: 文本文件:ASCII文件,每个字节存放一个字符的ASCII码 二进制文件:数据按其在内存中的存储形式原样存放 * 存储为二进制文件形式: 00100111 1 文件概述(4) 1.2 文件的分类—文本文件和二进制文件 00010000 存储为文本文件形式: 0011000000110000如:int型数10000 内存存储形式 文本文件特点

文档评论(0)

cyx + 关注
实名认证
内容提供者

装饰装修木工持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月15日上传了装饰装修木工

1亿VIP精品文档

相关文档