tsy-数据结构课程的设计报告.docxVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录1课题1——图书管理系统21.1 设计要求21.2 创作的思路31.3 创作和调试41.4 心得体会9附录10设计要求小型图书购销管理系统1、需要处理的基础数据图书资料基本信息:图书编号、书名、作者、出版社、出版日期、定价等。图书库存信息:图书编号、书名、作者、库存数量等。图书采购信息:采购单号、图书编号、采购日期、采购数量、单价、采购金额等。图书销售信息:销售单号、图书编号、销售日期、销售数量、单价、销售金额等。2、系统的基本功能图书基本信息的录入和查询图书采购(1)输入要采购的图书编号,自动从图书基本资料中把相关信息提取出来。(2)根据采购数量和单价,自动计算采购金额。(3)根据采购数量,增加图书库存量。图书销售 (1)输入要采购的图书编号(或书名)、销售数量,从图书库存信息中查找是否合法,合法时进行销售,否则报错。(2)根据采购数量和单价,自动计算销售金额。(3)销售时,从库存中减去相应的数量。利润计算:根据全部的采购金额和销售金额,计算书店的利润情况。思路:1.基本模块:根据要求,应该有三个封装的类,包括:书籍信息,采购信息和销售信息。其中以书籍信息为核心,在书籍信息中建立关于其它两类的友元函数,达到信息交流的目的。2.功能实现:要求实现的功能有:对于书籍信息:录入,查询,采购和销售导致存量的改变 对于采购信息:实施采购,查询采购 对于销售信息:实施销售(需要判断是否合法),查询销售 总利润的计算所以草图如下考虑到购买和销售时要输入书籍号,并且更改基本库存信息。不如将销售和采购函数作为友元函数,或许能减少函数个数。建立程序和调试改错因为是在模块的建设中边建设边调试,所以容易发现错误原因。开始先建设基本类:Book,公有成员为:public: void set_book();录入功能函数 void display_book();反馈功能函数 void buy_book(Buy);//此项在Buy类建立后再输入,为采购函数 void sale_book(Sale);//此项在Sale类建立后再输入,为销售函数 int bianhao;书籍编号(设为公有是为了方便进行对比时调用,不然或许要一个公有函数来实现“查询是否有此书”的功能,if(i==b[i1].bianhao)可能比写函数更加简短。)私有成员为private:string name;//书名string writername; 作者名string publisher;出版社int time;出版时间int price;价格int bnum;存量在主函数中大框架是一个选择结构,选择想要执行的功能,由于选项多,所以选择swich.而进行完一个功能后,考虑到依然有其他功能待执行,所以又用goto回到初始界面。由于goto,所以case分支后面没有break,在调试过程中也没有发现问题用类数组定义了书籍类数组后,用 for 循环进行录入,每次录入后,如果全部录入完毕,有一个选择,可以跳出for循环,同时记下录入函数执行的循环次数,方便反馈时控制反馈函数的执行次数。可是在实际调试中发现,由于忽略了for循环中循环条件的等号,使得次数丢失。于是补上。在建立Buy模块后,发现程序报错,结尾处有非法字符,原来是在打中文的时候顺带打了个“;”,结果非法。在建立完Sale模块后,发现选择执行销售功能时,程序直接结束,再试销售查询,结果也是结束,再试利润计算,也是如此。但其他功能正常开始以为是case的问题,于是加入一个default:cout”请输入正确编码”来测试是否是进入case选择时未能成功匹配到选项,结果不是,输入4,选择销售功能时,依然是直接结束,看来是成功执行到了case 4:以后的语句。在关掉VC后,删除所有生成的文件,再重新打开刚才的CPP后,发现无法构建,结果显示一个Sale的display()函数出现了问题。再仔细看,原来由于Sale模块我是直接copy再修改的Buy模块,结果粗心忘了说明Sale::display(){****}这个函数于是将上面的函数进行说明后,程序完成,最终调试界面:登录界面录入查询(全体展示在任意一次录入完成后选择“N”后自动进行)采购销售采购查询采购多项后查询(后来的多次采购未截屏)同样的,销售多次后(这多次销售未截屏)最后计算利润调试结束4心得程序心得:首先是对这个程序来说,结构简单,也只有大概300行,但是实际写却写了4个小时,首先是因为很多小细节上的语法错误难以控制,又难以寻找,而且到后来很难去检查一个很长的程序哪个细节错了。不过,利用一些小技巧,比如隔离法:用/**/来隐藏一个独立的模块,看是否依然报错,如果没有报错了,那显然错误出现在被隐藏的地方。还有,针对性纠错,比如看看“;”是否是用中文输入法时输入的。而且,养成了括号,

文档评论(0)

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

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

1亿VIP精品文档

相关文档