公司库存管理系统C++
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计内容公司库存管理系统
一、设计要求
1.目的和要求
(1)要求学生熟练掌握C++语言的基本知识和技能;
(2)要求利用面向对象的方法以及C++的编程思想来完成系统的设计,在设计的过程中,建立清晰的类层次;;
(3)基本掌握面向对象程序设计的基本思路和方法;
(4)在系统中定义类,每个类中要有各自的属性和方法;
(5)在系统的设计中,至少要用到面向对象的一种机制。
(6)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
(7)写出设计说明书
2.设计内容
1、问题描述(功能要求):
某公司现有以下设备:普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、入库和出库、保存的功能。
普通电视机有下列属性:尺寸、类型(液晶或等离子)、售价、重量、品牌、入库数量、入库编号
DVD有下列属性:规格(高清、蓝光高清、普通)、售价、重量、品牌、入库数量、入库编号
带DVD的电视机是上两者的派生类,但请注意有些属性的重复问题。
要求生成的相关库存数据结果以文件方式存放在硬盘中,或用链表、数组来进行管理。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)写出需求分析(做什么),建立该系统的功能模块框图;
(2)分析系统中的各个实体之间的关系及其属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告以及系统使用说明书。
3.设计环境
Windows操作系统、VC++6.0、C++语言
4.个人承担任务
主要负责系统的显示、查找、入库、出库主要功能实现和系统封装。二、系统需求分析
公司库存管理系统程序中,系统要求我们设计四个类:一个基础类Device,由Device 类派生出来的普通电视机类和DVD类;再由普通电视机类和DVD类共同派生出来的带DVD 的普通电视机类。在这个系统中我们需要实现主要的五个功能:1、显示物品功能;2、查找物品功能;3、入库物品功能;4、出库物品功能;5、保存物品功能。
公司库存管理系统主要是为了让用户根据自己的需要自己想输入的一些物品,然后将其保存,当用户想查看所有物品时可以查看,想添加物品时可以添加自己想添加的相关物品信息;当用户根据实际物品的库存调整时,可以进行出入库操作,并且记录每一次的出入库的时间和数量,以便日后查看;当用户想查找某一物品时,用户可以输入这一物品的名称或入库编码,然后搜索并查看这一物品的所有信息。
在这个系统中,用户可以根据系统的提示分别执行用户自己想实现的功能,比如:在显示物品功能中用户可以查看用户所保存的所有物品信息;在查找物品功能中用户可以根据自己的需要输入自己想查找的物品名称或入库编码,然后查找用户想查找的物品的所有相关信息;在出、入库物品功能中用户可以根据自己的需要输入自己想要出、入库的物品名称或入库编码,然后进行出、入库操作;在物品保存功能中,凡是用户每对库存系统内部的信息进行一次操作,系统就会自动保存并记录相关信息。
三、程序设计思路
1、系统功能模块图:
从系统的需求中我们可以看到:该系统要对产品进行显示、查找、入库、出库和保存功能。这就意味着这个系统需要一个show 函数(通过cout 将数据显示在屏幕上)来实现显示功能,而其他各个功能需要不同的模块来实现,也就意味着这个系统需要五个不同的功能模块。
1、显示物品信息
2、查找物品信息
3、入库物品信息
4、出库物品信息
5、退出系统
菜
单
派生
派生2、公司库存管理系统中各功能模块的实现:
a. 显示物品模块:
在输入好库存信息后,库存信息就会被保存到“库存清单。txt”文本中,然后根据菜单显示选择“1、显示物品信息”,就会直接调用文本文件中的所有信息并加以显示。
b.查找物品信息:
查找类型
查找物品信息
显示物品信息显示物品出、入库记录
查找名称
c.入库物品信息:
选择“3、入库物品信息”后,首先刷屏显示现有库存信息的全部内容,方便用户观察需要入库的产品信息和具体库存数量。之后,可以根据选择入库编码或者设备名称来查找需要入库的具体设备。如果该设备存在于库存当中,则输入入库数量,提示入库成功;如果仓库中没有该种设备,则提示“对不起,没有找到该库存物品。”入库成功后,该物品库存数量增加,库存记录增加。
如图:
d.出库物品信息:
出库物品信息和入库物品信息操作原理一样,显示相同;只不过一个增加一个减少,在此就不再赘述。
e.保存效果:
3、具体程序代码书写思路:
因为用的c++编程语言和环境,所以针对于面向对象的程序书写理念。我将程序模块化,把类的实现进行了封装,运用创建一个工程的方式把程序做的更为具体和清晰。在关键地方,在程序后面做有注释,便于其他人阅读和分析。
四、总结
本公司库存管理系统很好的实现了“显示、查找、入库、出库、保存”的主要功能,较为完美的实现了本次程序设计的主要要求。除此之外,我还在程序中增加了一定的纠错能力,比如当出库数量大于现有库存是会提示“库存不足,请重新输入”的提示,直到用户输入正确的数值为止。而且,在用户对于菜单的属于操作出现失误时,系统也会根据具体情况进行相应的提示,避免了死循环的出现,方便了用户的操作、增加了系统的健壮性。
对于程序的书写,可以说这个程序的封装以及模块化结构做的很好,主程序很简单,需要运用函数的时候直接调用相应部分即可。这对于程序书写时的修改、校正也极为方便,避免了“牵一发而动全身”的麻烦。我觉得这种模块化的思想应该继续保持,运用到今后的程序设计当中,既避免了主程序过于繁杂的麻烦,也为其他人的阅读、分析和今后的程序改良提供了方便。
在程序应用中,菜单选项仅是对于现有库存的各种操作和处理,但并没有提供外部接口让用户主动添加其它的物品信息。对于此,我们特意增加了文本修改功能,可以从后台的地方增加或删减现有库存信息。弥补了库存不可变动的缺陷。也体现了,重要信息需要掌握在公司内部人员手中,而不能随意进行修改的理念。
五、调试及其测试
(调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整)
1、由于本次设计用到了类,而类中有受保护的对像和私有对象,他们都不可以在
类外使用。于是使得下边一些数据不能使用。最后我只能将数据全改成公有数
据。这样也让继承的时候不会出现问题。
2、本次程序几经修改才做到了现在这个样子,起初是一个长达700多行的程序,
没有运用封装和工程,显得程序比较冗长。但是有个严重的问题就是每次程序
重新启动的时候上次录入的信息和记录就全部清零,必须重新录入才可以进行