库存文件恢复功能:.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
链表的维护与文件形式的保存 PAGE  PAGE 12 《数据结构》课程设计报告 姓名:裔红艳 学号 专业:计算机师范 一、课题:链表的维护与文件形式的保存 以有序链表结构表示某家电商场的库存模型。提/进货时,需对链表进行维护。每个工作日结束后,应将该链表以文件形式保存;每日营业前,应从文件中恢复该有序链表结构。 链表接点的数据域包括家电名称,品牌,单价和数量,以单价的升序体现链表的有序性。程序包括:初始化,创建表,插入,删除,更新数据,查询及链表数据与文件之间的转换等; 二、功能、算法、体会描述: 系统主要有两个界面,第一个界面是查看界面,任何人可以查看到多个库存或日志文件(050902--050905),如果某个库存文件丢失了,可以通过操作恢复,在这也可以也可以查看到某日的金额统计情况,第二个界面是操作界面,只有操作员可以通过密码进入,可以对某个指定的库存文件进行进货,提货,删货,排序,查询操作,操作的情况可以被系统随时保存,当您想退出此界面时可保存库存和日志情况,文件名可自定,保存完后,自动退回到第一个界面,您当然就可以在查看界面中查看到您刚刚保存的库存或者日志文件了。 1.库存查看功能: 基本思想:利用SetupGoodsList( )函数,将库存文件内容先转成链表形式,然后利用TraverseList( )函数,遍历一个链表,就可以直接显示查看到了。 具体步骤: 先将文件读到结构体中,读满一个结构体内容就将此结构体连到定义好的链表上,这儿利用了InsertRear( )函数,一直这样读下去只到文件里读不到内容为止,语句描述如下: while(ifstrg.code) { ifstrg.nameg.markg.minqg.curq; InsertRear(L,g); } 2.日志查看功能: 日志文件的内容看起来跟库存文件差不多,但是里面多了个“操作情况”这一览,所以 在读的时候要注意这一点,实现这个功能的我编了rizhichakan( )函数 基本思想: 将文件内容独到结构体数组中,然后再显示出来 具体步骤: 先读一个字符串到数组d[ ]中,然后用strcmp( ),判断是不是“j”字符串,如果是就连读5个字符串???定义好的结构体数组中,因为这句话是放在while( )循环里的,要能够的起循环就要不断的给d[ ]赋新值,所以循环语句中还有一句:再读第6个字符串到d[ ]中,只要符合循环条件的都会被连续加到结构体数组中, 语句描述为: ifstrd;//因为是比较两个字符串所以要一个数组 while(strcmp(d,j)==0) { ifstrr[x].coder[x].namer[x].markr[x].minqr[x].curq; ifstrd[0]; //数组赋不起来,所以改成了元素 x++; } 其它以“t”“s”开头的也同样的道理,这样就将处了开头的“j”“t”“s”字符以外的信息内容全分别存到三个结构体数组中,这样往外显示的时候可以更清楚方便准确,然后就到用for( )语句循环的将结构体内容显示了,语句描述为: for(p=1;px;p++) { coutsetw(8)j; coutsetw(9)r[p].codesetw(16)r[p].namesetw(16)r[p].marksetw(10)r[p].minqsetw(10)r[p].curqendl; 体会: 在这懂了strcmp( )是比较两个字符串的,不是单纯的字符,对while()循环有了更深刻的理解,明白了文件的内容要经过一个中间环节,才能够显示,这儿的中间环节就是结构体数组。 3 系统恢复功能: 功能: 可利用前一天的库存文件和当天的日志文件进行恢复,定义了huifu( )函数 算法思想: 首先将日志文件内容切成结构体形式,再将库存文件内容转成链表形式 利用update( )函数,将库存链表更新,然后将更新好的链表保存到文件中。 具体步骤: 将日志文件切成三个结构体数组的过程已经在“日志查看功能”中描述了,库存文件转成链表形式也在“库存查看功能”中描述了,但这有个非常重要的东西要说明一下,因为日志文件的最后一览显示的是“操作量”也就是商品参与操作的变化量,如果直接拿去更新原来库存中的链表,那结果是错误的,要实现能将前一天库存文件的商品“数量”与当天日志文件商品的“操作量”整合一下,然后得到当天库存文件的数量,这是个非常关键的东西。 我是这样来实现的:利用Find( )函数,通过日志文件的商品条形码在库存中找到对应的结构体,Find()函数的关键语句描述如下: while(p!=NULL) if(str

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档