下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualC++程序设计报告班级:05081901班学号:0508190109姓名:刘洁设计题目:物品库存管理初看这个题目感觉比较容易,题目比较好理解,但细看过源程序后才发现并没有想象中的那么容易。题目的设计要求比较多且比较复杂,要求改为指针形式,同时添加许多函数,似乎难以下手。仔细揣摩后才发现,原来许多函数都和课本上的功能类似,只需修改其中某些微小的部分就可以了,这样才感觉到明朗了许多。其实在编的过程中还是有很多细小的问题,这其中就有一个大问题,那就是该程序函数较多,要做到在合适的地方合适的时间调用合适的函数,是比较难的,那需要对程序的整体结构有一个清晰的掌控,首先必须理出此程序的整体思路,然后分别将各个函数类添加到该程序中,并做好指针链接等工作,为有效的发挥各函数的功能,指针的运用尤其重要,它使程序简洁、高效,但同时指针的使用又比较复杂,若程序中不能正确使用,则容易导致程序运行时错误,或导致系统的崩溃,所以我在编写程序时总是小心翼翼,怕出错,终于经过无数次的修改与调试,才勉强将程序编了出来,大块做了出来,但还是有几个小小的细节问题没有解决,最后通过交流与学习才把程序做到了尽善尽美。该程序设计要求修改一些地方,比如设置一个商品品种的最大值,增加一个成员变量指示品牌的具体数量。商品品种的数量是每个品种的数量之和。其实这些也都是课本上最基础的知识,下手比较容易一些。但课本上许多细小的规则也都是要注意的,这样才能避免因为一个细微的错误而给自己带来许多麻烦,有时链接时出现许多错误,找了很长时间最后发现竟然是少了一个标点,有时候又是忘了进行初始化,这些都是最基本的,看起来很简单,但要做到时时注意就比较难了。课程设计还要求设计输出每日进货与出货的统计表,要求进货与出货分别为两个文本文件,清单上列有进出货物的时间、品种描述、具体品牌的进出货数量,如果是出货清单,在每笔出货的清单后还要有该次提取货物的总价格。并且商品品种以品种代码的顺序存放。按照这些要求来编程序,由于课本上已经把所需要的类的结构及需要构造的函数都写了出来,所以整个程序大致也就有个规划了。分为四个类,品牌类、品种类、结点类以及链表类。其中品牌类和结点类书上都已经差不多编好了,重头戏就落在品种类和链表类上,特别是链表类中有许多函数都需要自己添加。先看品种类吧。需要添加三个成员函数。intSetItem(intn=0)这个函数有两个功能:第一个是在添加商品时输入商品的各种数据,调用这个功能时利用n的缺省值,在调用时不给n赋值;第二个功能是在进货时如果进的是新的品种,那么也要从键盘上输入这个品种的各种数据,这部分与第一个功能相同,但进货时要输出进货清单,所以进入进货功能调用该函数时n设置为1,函数在运行时增加一个判断语句,若n为1时,将所键入的数据输出至进货清单。voidInModify()这个函数也是于进货功能有关。因为所要进的可能是已有的品种,只是增加其中的数量而已。所以在输入进货品种或进货代码时要判断是否是库中已有的商品,若是就调用这个函数,只从键盘输入具体的品牌数量或新增品牌数据即可,而不用再键入品种的各种数据,同时新键入的各种数据也输出到进货清单,实际上该函数是对链表所存在的结点的部分数据的修改。voidOutModify()这个功能与出货有关,于上面的函数类似。因为库中的商品出货,所以商品品种必须存在,若不存在,则输出提示信息,出货失败。还有一种可能是商品品种存在,但已经全部出完了,这时该品种的各种数据还存在,只是数量为0。所以在函数开始执行时要判断库存量是否为0,若为0则输出提示信息,出货失败。在出货成功结束时同样要将各品种品牌的出货数据输出到出货清单上。同样,该函数也是对链表中部分数据的修改。这三个函数其实有许多相像之处,都要判断是否是新的品种及需不需要进入另一个函数,都涉及到了讨论,因此在编写时需要用if语句来实现这个功能。而且总的程序都分按品种名称还是品种代码这都是需要注意的。下面显示一下第二个函数的设计思路:voidCItem::InModify()//已有商品,再次进货,实际上是修改结点中的数据部分{ inta[10],n; for(inti=0;i<nBrnd;i++) { cout<<"请输入原有品牌"<<i+1<<"的进货数量"; cin>>n; brnd[i].quantity+=n; a[i]=n; } intNewnBrnd; cout<<"请输入新品牌数:如没有请输入0"; cin>>NewnBrnd; for(intj=nBrnd;j<NewnBrnd+nBrnd;j++) { cout<<j; cout<<"请输入新品牌的名称,代号,数量和价格:"; cin>>brnd[j].brnd_name>>brnd[j].Brand_code>>brnd[j].quantity>>brnd[j].brnd_price; a[j]=(int)brnd[j].brnd_price; } nBrnd+=NewnBrnd; for(intk=0;k<nBrnd;k++) { quantity+=brnd[i].quantity; }infile<<"品种名"<<setw(4)<<Item_name<<"品种代号:"<<setw(4)<<Item_code<<"品种颜色:"<<setw(4)<<colour<<"品种数量"<<setw(4)<<nBrnd<<'\n'; infile<<"品牌名称"<<"品牌代号"<<"品牌出货数量"<<"品牌价格"<<'\n'; for(intl=0;l<nBrnd;l++) { infile<<setw(9)<<brnd[l].brnd_name<<setw(9)<<brnd[l].Brand_code<<setw(9)<<a[l]<<brnd[l].brnd_price<<'\n'; } }最后解释一下链表类。链表类在书上本来就把需要的函数设计出来了,而且这里的许多函数都是课本上有的一些成员函数。比如在首部添加一个结点、删除一个指定的结点、查找一个指定的数据、打印整个链表、删除整个链表等等。主要都是参考书上得来的,因此链表和指针虽然难搞一些,但是通过参考书上的许多问题都迎刃而解了。但是不同的题目有不同的要求因此许多问题也都要考虑到为这个题目服务才行。程序最后执行完后的输出结果主菜单是:添加商品品种显示商品品种查询商品删除商品商品出库商品进库(0)退出系统根据不同情况再调用不同函数,最终实现物品的库存管理。到此为止,此程序终于完成.通过几个星期的努力,在程序运行成功时那一刻的兴
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年食品安全合同书
- 2024影视道具租赁合同参考范本
- 工程承包合同示例文本
- 2024举办合同培训班的通知
- 2024年度销售合同智能家居产品销售合同(04版)
- 2024蔬菜超市采购合同
- 2024年度安全设备维护及更新改造合同
- 农村新建住宅协议书
- 2024天台县花生种植收购合同样书
- 2024工业生产厂房租赁合同范本
- 幼儿园教学课件中班美术《百变的花瓶》课件
- 液化石油气充装操作规程(YSP118液化石油气钢瓶)
- 工程样板过程验收单
- 颅内动脉动脉瘤介入治疗临床路径
- 粮食仓储场建设项目可行性研究报告
- 珠宝销货登记表Excel模板
- 深基坑开挖施工风险源辨识与评价及应对措施
- 唯美手绘风花艺插花基础培训PPT模板课件
- 《现代汉语语法》PPT课件(完整版)
- 5G智慧农业建设方案
- 航海学天文定位第四篇天文航海第1、2章
评论
0/150
提交评论