
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

三会两制一课心得体会.docx

党校学员结业鉴定表.docx

静脉输液巡视制度.doc

端午节国旗下致辞稿.docx

制冷车间氨泄漏应急预案.docx

2019年高考英语阅读理解备考策略设计研究.doc

副镇长个人工作总结.docx

干部制度改革思考.docx

车间工作计划汇总5篇(一).docx

食品从业人员个人卫生要求.doc

观看《焦裕禄》心得体会.docx

残联工作人员先进事迹.docx

区教育局校园文化建设工作报告摘编.docx

某年度安全生产“一岗双责”责任书.docx

双百行动工作总结.docx

CC系列磁悬浮直流变频离心式水冷冷水机组.doc

中药材种植订购合同.doc

观《惊涛骇浪》有感.docx

电力系统电工电子技术应用研究.docx

一至十级古诗考级内容.doc

电费风险防范思考.docx

服务器系统的性能测试.doc

雾化吸入法及护理.doc

侧钻井钻井液施工技术规范.docx

2019年年三支一扶考试真题及答案详解精品资料全.doc
![体育局个人工作总结[1].docx](https://www.badou.com/fileroot_temp1/2022-4/23/bc102650-579b-4c02-a587-4c8a605b6121/4112a5a499414115b5adf8993c423c6e.gif)
体育局个人工作总结[1].docx

2019年河北省中考文综试卷及答案.doc

港珠澳大桥学习总结.doc

农业局实践学发展观开展解放思想活动实施计划.docx

应急救援管理工作中存在的问题与建议.docx

民政局十二五时期工作总结及十三五工作计划.docx

2019年中招考试英语模拟试题及答案(下册一word版).doc

中考前物理复习;三轮复习螺旋提升决胜中考.doc

20秋北京课改版数学二年级上册北京课改版2数上-爬坡题-第二单元.docx

2019年上海市高考化学试卷.doc

2015上半年信息处理技术员上午真题及答案.docx

XX销售团队的组建计划.doc

传达学习市“改作风、抓落实、促发展”主题教育活动精神.docx

2022个人职业规划计划书.docx

车间个人工作计划.docx

电力系统供电可靠性的提升途径.docx

电子商务下的区域仓储网络平台构建_1.docx

电气工程自动化技术在智能建筑的应用.docx

院前急救人员岗位职责.doc

乡镇纪委书记述职述廉报告.docx

发展规划部职责_1.docx

教师节同学讲话稿.docx

CFG桩基专项施工组织方案.doc