C语言程序设计项目化教程课件第10章.ppt
1、第第10章章 项目中文件的应用项目中文件的应用 在前面的章节中,我们学习了结构体这种构造数据类型,它主要是为了存储复杂的数据,在第9章中,我们通过学生信息管理系统来实现对批量数据的处理,但这些批量数据只能在程序执行时占据内存,程序结束后即从内存消失。那么添加学生信息等操作每次都要重新执行。如何将数据永久保存起来,即将输入输出的数据以磁盘文件的形式存储起来,这些内容是本章需要解决的问题。本章将结合学生信息管理系统项目中学生信息的存储和重载,学习文件的概念、分类、文件指针和文件操作等相关知识。学习目标:理解和掌握文件的概念、文件的打开、文件的关闭;理解和掌握文件的读写操作。10.1 任务二 项目中数据的存储一、任务描述 在主函数中,通过InputStu()函数添加学生信息,添加完后,应将学生信息保存在磁盘文件中。在浏览、删除等操作中,首先要将数据读入到结构体数组中,对结构体数组进行操作,操作完成后,再将结构体数组中的数据保存到文件中。该任务将用SaveStu()函数将结构体数组存入到“list.dat”文件中,用LoadStu()函数实现将“list.dat”文件中的数据导入到结构体数组中
2、。二、任务涉及知识要点 本任务涉及到的新知识点主要有文件的打开、读写、关闭等操作。三、任务分析 实现学生信息的处理和保存,可以用LoadStu()函数和SaveStu()函数实现读取和存储。该项目中虽然定义了能够处理的最大学生数N,但是由于从文件中读取或者通过函数InputStu()输入的学生数量是不定的,所以在LoadStu()、InputStu()函数中均要统计读取或输入的学生数量。在调用SaveStu()函数进行数据保存时,也要将数组元素的个数作为实参传入,以确定要保存的数组元素个数。考虑到数据分多次录入的情况,SaveStu()可采用追加和覆盖两种方式写入文件。由于要对学生信息数组stu和学生实际人数同时进行传递,因此在函数的参数定义中采用结构体数组和指针,如void LoadStu(struct student stu,int*stu_number);,这样可以使学生信息结构体数组stu和学生人数stu_number在各个函数之间进行传递。四、任务实现各函数的定义分别为:1.学生信息的读取函数void LoadStu(struct student stu,int*stu_nu
3、mber)FILE*fp;int i=0;if(fp=fopen(list.dat,rb)=NULL)printf(不能打开文件n);return;while(fread(&stui,sizeof(struct student),1,fp)=1&iN)i+;*stu_number=i;/重置学生记录个数if(feof(fp)fclose(fp);else printf(文件读错误);fclose(fp);return;2学生信息的保存函数void SaveStu(struct student stu,int count,int flag)FILE*fp;int i;if(fp=flag?fopen(list.dat,ab):fopen(list.dat,wb)=NULL)printf(不能打开文件n);return;for(i=0;icount;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(文件写错误n);fclose(fp);3.增加学生记录函数void InputStu(struct student stu,in
4、t*stu_number)char ch=y;int count=0;while(ch=y)|(ch=Y)system(cls);printf(ntt 增加学生记录 n);printf(nntt 请输入学生信息n);printf(n学号:);scanf(%d,&stucount.no);printf(n姓名:);scanf(%s,&stucount.name);printf(n性别:);scanf(n%c,&stucount.sex);printf(n语文成绩:)scanf(%3d,&stucount.score0);printf(n数学成绩:);scanf(%3d,&stucount.score1);printf(n英语成绩:);scanf(%3d,&stucount.score2);stucount.sum=stucount.score0+stucount.score1+stucount.score2;stucount.average=stucount.sum/3.0;printf(nntt 是否输入下一个学生信息?(y/n);scanf(n%c,&ch);count+;*stu_
5、number=*stu_number+count;SaveStu(stu,count,1);/参数1表示以追加方式写入文件 return;程序说明:(1)在程序第一次执行时,应首先进行学生信息的添加,即调用InputStu()函数添加学生记录,并将录入的学生信息数据和统计的学生人数通过调用SaveStu()函数保存到list.dat文件中。浏览、删除等函数执行时均调用LoadStu()函数读取学生信息数据,处理完后,若学生信息发生了改变,则重新写入文件。为区分是添加信息还是重新保存,在SaveStu()函数的形参中,构造了一个flag标志变量,若flag=1,则添加信息并追加到数据文件中;若flag=0,则将学生的信息重新以覆盖方式保存到数据文件中。学完本章后,学生应该将SaveStu()函数的内容补充到相应的函数中去。相关的内容见附件的完整程序。(2)在LoadStu()函数中,要将学生信息读入到结构体数组中,学生人数在InputStu()函数和DeleteStu()函数中会有改变。为了使数据更安全,在程序中没有使用全局变量来定义学生的人数,而是通过指针变量stu_number来存储
《C语言程序设计项目化教程课件第10章.ppt》由会员m****u分享,可在线阅读,更多相关《C语言程序设计项目化教程课件第10章.ppt》请在八斗文库上搜索。
《MATLAB图像处理实例详解》课件Chapter_9o第9章彩色图像处理.pptx
《MATLAB图像处理实例详解》课件Chapter_6i第6章图像复原技术.pptx
《MATLAB图像处理实例详解》课件Chapter_13a第13章小波在图像处理中的应用.pptx
《Windows Server操作系统维护与管理项目教程》课件学习情境4.pptx
《MATLAB图像处理实例详解》课件Chapter_11o第11章图像特征分析.pptx
《中外广告史》课件第七章ppt.pptx
《经济学原理与应用》课件第8章ppt.pptx
《企业内部控制与制度设计(第3版)》课件项目五销售业务内部控制与制度设计.pptx
《经济学原理与应用》课件第4章ppt.pptx
《企业内部控制与制度设计(第3版)》课件项目三采购业务内部控制与制度设计.pptx
《资产评估》课件项目 八企业价值评估.ppt
《经济学原理与应用》课件第7章ppt.pptx
《人员测评原理与方法(第三版)》课件第十一章 个人资料的分析与评鉴.pptx
课件《客舱设施与服务》(模块一实操).pptx
《新编文学理论(第二版)》课件第七章.pptx
课件《客舱设施与服务》(模块三案例).pptx
《资产评估》课件项目四 机器人设备评估.ppt
《企业纳税实务(第3版)》项目一、项目二.ppt
《酒吧服务与管理(第3版)》课件模块一酒吧概述.ppt
《营销心理学》课件项目二 探索消费者的心理过程.pptx
《人员测评原理与方法(第三版)》课件第五章智能测评.pptx
《人员测评原理与方法(第三版)》课件第七章 胜任素质测评.pptx
《银行产品推广与服务》课件.pptx
《客舱设施与服务》模块二练习题答案.docx
《经济学原理与应用》课件第3章ppt.pptx
《中外广告史》课件第十章.pptx
《酒吧服务与管理(第3版)》教案教案(模块十三).docx
《跨境电商通关实务(第2版)》课件2021课件4关务技能3-报关单填制.ppt
《客舱设施与服务》模块一练习题.docx
《资产评估》课件项目一 资产评估基本理论.ppt
《经济学原理与应用》课件第1章ppt.pptx
《企业内部控制与制度设计(第3版)》同步训练参考答案.doc
电大企业战略管理形成性测评答案.doc
2018年人版小学五年级语文[上册](全册)知识点汇总.doc
北京市中医住院医师规范化培训试题及答案.doc
初中物理课堂有效教学策略设计研究.doc
2018年_2019学年人版必修1_第三单元近代西方资本主义政治制度的确立和发展单元检测.doc
2018中考语文试题附含答案.doc
大学生积极分子党课培训笔记.doc
2015保密知识答题活动试题和答案.doc
2018四川成都市中考语文试题和答案(word版).doc
20185月一级劳动者能力资源管理师理论知识真题及答案.doc
公安机关招警面试题和参考题答案[一].doc
大学生网购调查报告.doc
常见意外伤害的急救知识培训教材.doc
COPD分级及规范化治疗.doc
初中化学酸碱盐试题及答案.doc
花的学校教学设计教案.doc
村居后备干部面试试题整理.doc
第二章第三节植物体的结构层次[教学案].doc
环境生态学期末试题和答案.doc
2018年高考语文试卷分类汇编_论述类文本阅读(及答案).doc
北师大版九年级历史(上册)期末检测试题整理.doc
东软_计算机网络期末考试题库完整.doc
呼吸系统疾病章节试题.doc
党规党纪和政策法规在线测试题库(多选题).doc
儿童水墨画教学案[奇妙课程].doc
高中政治必修三文化生活知识点整理全.doc
2014_2018高考英语全国卷作文题及优秀范文汇总.doc
广西大学设计研究生论文开题报告模板.doc
2018年宿迁市的中考语文试卷(含答案).doc
大学英语四级新闻听力.doc
高等教育自学考试书籍装帧历年试题.doc
福建省福州市2018年中考初三历史质检考试试卷答案.doc
《组织行为学》作业2_5参考题答案.doc
基础生态学复习精华.doc
冠心病介入培训12月答案.doc
传染病防治知识试题.doc
2017年中级会计实务考试真题及其答案(第二批).doc
急救护理试题及答案(护理三基)(答案).doc
2018广东中考语文试题.doc
高中历史小论文的撰写方法和技巧.doc
2018黑龙江省龙东地区中考语文试题与答案(word版).doc
小学奥数七大模块36个知识.doc
多中心协作设计研究常用临床科研设计方案和对策.doc
小升初英语真题及模拟考试题.doc
《向我国人脱帽致敬》教学案.doc
小学语文实践性作业的设计研究.doc
高中化学平衡移动习题与答案.doc
护士资格考试历年真题精选试题解析.doc
小学教师纪律作风整顿心得体会.doc
ASP程序设计及应用(第二版)课件第11章Web安全.ppt
C++面向对象程序设计课件第六章 多态性与虚函数.ppt
Visual C++程序设计教程课件第5章.ppt
C++面向对象程序设计课件第三章 C++程序的结构.ppt
Windows Server 配置管理项目实训教程课件项目7 管理存储设备.ppt
ASP程序设计及应用(第二版)课件第3章VBScript脚本语言.ppt
Visual Basic程序设计简明教程(第二版)课件第1章.ppt
C语言程序设计(第二版)课件第10章.ppt
3ds max 2009基础案例教程课件3ds max 2009-6.ppt
3ds max 2009基础案例教程课件3ds max 2009-3.ppt




马上下载
