> # ♻️ 资源
> **大小:** 349KB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100013197**](https://www.yuque.com/sxbn/ks/100013197)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/88228236**](https://download.csdn.net/download/s1t16/88228236)
> **注:更多内容可关注微信公众号,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 一.需求分析
仓库管理系统的功能如下:
- 先读入仓库中已存在的商品的编号、名字、数量
- 在仓库进货时,读入含进货信息的文件,改变商品的种类以及数量
- 在仓库出货时,读入含出货信息的文件,减少对应商品的库存量
- 查询功能:可以根据商品编号或商品名称随时查看当前仓库的库存,包括货品编号、货品名称、原始库存、进货数目、出货数目、最终库存
- 保存功能:在用户完成入库出库的操作后,可对当前信息进行保存
本仓库管理系统主要分为入库、出库、查询三大模块,分别对进货、出货和查询的操作进行管理。
- 在入库模块中,首先读入含进货信息的文件,进而对相应的商品信息进行修改
- 在出库模块中,首先读入含出货信息的文件,进而对相应的商品信息进行修改。其中有两种情况:
- 如果需求量大于仓库中商品的储存量,则拒绝该请求,保持仓库中该种商品数量不变,并用红色字体标红该商品信息,示意改出货请求失败
- 如果该商品出货之后的数量为0,则删除该商品,在查询时显示“该商品库存为0,已被清除!”
- 在查询模块中,可以根据商品编号或商品名称随时查看当前仓库的库存,包括货品编号、货品名称、原始库存、进货数目、出货数目、最终库存
- 在保存模块中,待用户选择保存并退出的请求后,系统将当前信息写入文件保存,并退出
![image.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1692321601982-1f663839-0ef5-4a24-ad68-c90f5577d77f.png#averageHue=%230d0d0d&clientId=u94f57f08-3649-4&from=paste&height=431&id=u266d5776&originHeight=539&originWidth=1468&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=12102&status=done&style=none&taskId=ue688bf24-c1cf-41bc-8f62-bad2eb33ee4&title=&width=1174.4)
# 二.数据设计
我们定义了一个名为goods的结构体,其中n代表货品编号,name是一个char类型的数组,用于储存货品的名字,stock是物品原始库存量,in、out分别是进货和出货量,将会分别在入库和出库环节从文件中读入。amount是货品在进货出货操作后的最终数量。state是为了判断货品数量的状况,避免出现库存量小于0(即出货量大于总库存的情况)。copy则作为一个数据保存库存量小于零情况下原来库存量。
# 三.函数设计
## 3.1 主函数
在主函数中,首先,我们通过Readfile()函数读入原有仓库中的货品信息。继而我们定义了一个名为select的int型变量,用于进行系统功能的选择。下图就是进入系统后的选择界面。我们通过读入用户的select数据调用不同的函数,进而进入不同的模块。
## 3.2 Input()函数
这是读入含进货信息文件的函数。系统打开含有进货信息的名为“stockin.txt”的文件,并且只需要读入货品编号和进货数量两个数据。进而遍历原始库存中的货品编号,当两个货品编号相等时,就把存放进货信息结构体中的in变量赋值给存放原始库存结构体中的in变量。等读入所有的进货信息后,再把存放原始库存信息的结构体中的in变量与stock变量相加,即可得到现存量。
## 3.3 Output()函数
这是读入含出货信息文件的函数。系统打开含有出货信息的名为“stockout.txt”的文件,并且只需要读入货品编号和出货数量两个数据。进而遍历原始库存中的货品编号,当两个货品编号相等时,就把存放出货信息结构体中的out变量赋值给存放原始库存结构体中的out变量。等读入所有的进货信息后,再用存放原始库存信息的结构体中的stock变量减去in变量,即可得到现存量。其中copy变量保存了在出货前的库存量,避免出现出货失败的情况。
## 3.4 Judge()函数
该函数主要用于判断库存是否小于0。当库存量小于0时,将该结构体中定义的state为1,用于后面显示时使该操作失败的货品信息用红字标出,并且当state变量为1时,应用copy变量来显示现库存量。
## 3.5 Inquire()函数
在查询模块当中,在显示界面中,我们可以通过货品编号或货品名称对商品进行查询。系统通过读取货品编号或货品名称,再遍历仓库当中所有商品的编号及名称,当两者匹配时,再对该商品的state进行判断,如果商品的state=1,则用红色字体输出商品信息,说明该商品的出货操作失败。如果state=0,说明该商品状态正常,正常输出商品信息即可。
在查询模块中,假设该商品的数目在出货之后为0,我们利用条件语句进行判断。
## 3.6 Display()函数
Display()函数用于入库和出库模块中。在仓库系统读入含进货信息和出货信息的文件后,我们需要Display()函数显示仓库系统中货品信息的变化。并且我们通过判断变量j是否能被10整除,控制显示信息时以十行为一个单位显示信息,按任意键后可以显示下一个十行的信息,避免数据过多导致的难以清楚看清商品信息的问题。
而当出现商品出库后库存为0的情况,在进行判断之后,该商品将从系统中删除,不予输出。如下图中的编号为2,名称为A2的商品就因为库存为0,没有输出。
## 3.7 Printf_back()函数
该函数通过取得任一字符,即用户按下任意键即可返回主菜单。从main()函数继续开始运行。
# 四.输入与输出
## 4.1 Readfile()函数
这是读入原始库存数据的函数,首先打开保存有库存信息的“goods.txt”的文件,我们定义了一个初始值为0的int型变量,用于通过自增不停地读入文件的数据。在读取完所有数据之后,我们关闭该文件,并且用变量P储存货品数量。
## 4.2 Writefile()函数
这是写输出文件的函数,该函数将仓库系统一系列操作之后的数据写入“amount.txt”文件中,保存该仓库的商品信息。
神仙别闹
- 粉丝: 4189
- 资源: 7485
最新资源
- 多路Qt串口通信源码C++语言接口自定义协议帧Qt读写配置文件ini: 可变长定长通信接口协议实现Qt多路串口发送接收SerialProtocol.rar 工控自定义报文 可用于嵌入式,单片机,ARM
- 中关村在线Web自动化测试需求文档
- MATLAB代码:考虑综合负荷的主动配电网最优潮流计算 关键词:综合负荷 配电网优化 最优潮流 动态调度 二阶锥 参考文档:综合负荷部分店主自己编写了参考文档,可联系我查阅 主动配电网最优潮流研究
- lenevo D2000 cpld and uefi
- 两阶段市场投标策略 电力市场程序 提出了日前电力市场和实时电力市场下充电站的投标策 略 ,基于闵可夫斯基加法提出了充电站内电动汽车集群模型的压缩方法,并建立了日前可调 度潜力预测模型和实
- Java反编译工具:jd-jui
- 毕业设计基于单片机的室内有害气体检测系统源码+论文(高分毕设)
- 区块链理论与实践 课程作业手册
- 机械设计搅拌机sw21全套设计资料100%好用.zip
- 基于单片机的室内有害气体检测系统源码+论文(高分毕设)
- 机械设计互感器电流测试台(sw21可编辑+工程图)全套设计资料100%好用.zip
- Motorcad 外转子式42极36槽 永磁同步电机,直流无刷电机设计案例, 该电机55kw,220rpm,功率密度较高
- 欧姆龙CP1H+CIF11与施耐德ATV变频器通讯程序 功能:原创程序,可直接用于现场程序 欧姆龙CP1H的CIF11通讯板,实现对施耐德ATV12变频器 设定频率,读取实际频率,变频器状态功能
- 生成word文件的docxtemplater模板
- 2-StartAllBack Windows11开始菜单增强工具-V3.9.0.5220 PC绿色版
- 机械设计机器人取料检测抓手sw18可编辑全套设计资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈