C语言项目开发基础与实战-教案 第48讲 数据存储持久化_第1页
C语言项目开发基础与实战-教案 第48讲 数据存储持久化_第2页
C语言项目开发基础与实战-教案 第48讲 数据存储持久化_第3页
C语言项目开发基础与实战-教案 第48讲 数据存储持久化_第4页
C语言项目开发基础与实战-教案 第48讲 数据存储持久化_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页学院教师课时授课教案 编号:48授课日期授课班级授课学时2课型实践课题:数据存储持久化教学目标:本讲通过对一个综合性示例的讲解与练习,使学生能够系统掌握文件的相关操作方法,具体目标包括:1.巩固复习文件操作的相关步骤;2.巩固复习文件操作的相关函数的使用方法;3.掌握文件存储综合应用程序的编写方法。重点与难点:文件操作相关函数的使用方法。解决措施:使用多媒体教学工具,在电子课件的帮助下,结合提问、讨论及互动等多种教学方法,再辅以综合示例予以解决。教学方法设计:讲授,讨论,演示教学资源:PPT,DEV-C编译器,多媒体教学工具

学院教案用纸第48讲教学环节教学内容教学组织与教学方法组织教学:实践1.考勤;2.对上讲课及作业批改情况进行总结;3.介绍本讲课内容及相关重难点。一、实践任务分别编写程序,将购物车系统的所有数据备份到硬盘上,将备份数据恢复到内存中。二、程序要求1.全部采用函数实现2.存储数据的数组定义采用全局变量3.存储文件位于C盘根文件夹下4.文件名为backup.data5.文件类型为二进制6.自行编写验证函数三、备份数据structdate //定义日期型结构{ intyear; //年 intmonth; //月 intday; //日};structdatelastOrderDate; //最后一个订单日期structuser //定义用户结构{ intuserID; //用户编号 charuserName[21]; //用户名称 charuserPass[17]; //用户密码 enumgenderuserGender; //用户性别 structdateuserRegisterDate; //用户注册日期};constintuserMaxNum=100;structuserusers[userMaxNum]; //声明100个用户intuserNum=0; //声明用户数量intuserLastID=2000; //目前最后一个用户编号,2为普通用户,000表示目前没有用户。structproduct //定义商品结构{ charproductID[11]; //商品编号 charproductName[21]; //商品名称floatproductPrice; //商品单价 floatproductInStock; //商品存量};constintproductMaxNum=1000;structproductproducts[productMaxNum]; //声明1000种商品intproductNum=0; //声明商品种类数structorder //定义订单结构{ charorderID[13]; //订单编号,前8位为日期,后4位为顺序编号 charproductID[11]; //商品编号 intuserID; //用户编号 floatproductNum; //购买商品数量 enumresultchecked; //是否已结账};constintorderMaxNum=10000; //声明最大订单数量structorderorders[orderMaxNum]; //购物车中订单数组intorderNum=0; //声明订单数量intlastOrderID=0; //声明当前订单的后4位编号四、参考程序1.备份程序//定义存储所有数据函数voidsaveAllDataToFiles() { FILE*fpw; //定义一个写入文件指针//打开备份文件,以二进制方式写入,如果没有,则建立 fpw=fopen("CartBackup.data","wb"); if(fpw==NULL)//打开或建立出错,则提示错误 { printf("Opendatafileerror!!\n"); return; } printf("Begintobackupsystemdata...\n"); fprintf(fpw,"%d\n",productNum); fprintf(fpw,"%d\n",userNum); //写入用户数量 fprintf(fpw,"%d\n",userLastID); //写入最大用户编号 fprintf(fpw,"%d\n",orderNum); //写入订单数量 //写入最后订单后4位顺序编号fprintf(fpw,"%d\n",lastOrderID); fprintf(fpw,"%d\n",lastOrderDate.year); fprintf(fpw,"%d\n",lastOrderDate.month); fprintf(fpw,"%d\n",lastOrderDate.day); //写入所有商品信息fwrite(products,sizeof(structproduct),productNum,fpw); //写入所有用户信息 fwrite(users,sizeof(structuser),userNum,fpw); //写入所有订单信息 fwrite(orders,sizeof(structorder),orderNum,fpw); fclose(fpw); //关闭写入文件指针 printf("Backupingsystemdatasuccessfully.\n"); }2.恢复数据voidrestoreAllDataFromFiles() //定义恢复所有数据函数{ FILE*fpr; //定义一个读取文件指针//以二进制方式打开备份文件 fpr=fopen("CartBackup.data","rb"); if(fpr==NULL) //如果打开文件出错,则提示错误 { printf("Opendatafileerror!!\n"); return; } printf("Begintorestoresystemdata...\n"); fscanf(fpr,"%d\n",&productNum); fscanf(fpr,"%d\n",&userNum); //恢复用户数量 fscanf(fpr,"%d\n",&userLastID); //恢复用户最大编号 fscanf(fpr,"%d\n",&orderNum); //恢复订单数量 fscanf(fpr,"%d\n",&lastOrderID); //恢复最后订单后4位顺序编号 fscanf(fpr,"%d\n",&lastOrderDate.year); fscanf(fpr,"%d\n",&lastOrderDate.month); fscanf(fpr,"%d\n",&lastOrderDate.day); //读取后面的商品信息 fread(products,sizeof(structproduct),productNum,fpr); //读取后面的用户信息fread(users,sizeof(structuser),userNum,fpr);//读取后面的订单信息 fread(orders,sizeof(structorder),orderNum,fpr);fclose(fpr); //关闭文件读取指针 printf("Restoringsystemdatasuccessfully.\n"); }就上讲课的主要内容及相关重难点作简要回顾与总结。

课外作业:1.复习本次课所授的相关知识内容。教学反思、总结:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论