c++_语言___课程设计____仓库管理系统_第1页
c++_语言___课程设计____仓库管理系统_第2页
c++_语言___课程设计____仓库管理系统_第3页
c++_语言___课程设计____仓库管理系统_第4页
c++_语言___课程设计____仓库管理系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录 1 课程设计的目的和意义 3 2 需求分析 5 本系统是一个针对企业商品的仓库管理的软件,我们需要做到的是让企业 能够更好的对旗下的仓库进行记录,汇总查询,以及掌握商品的供销商的信息 记录。 5 3 系统设计 6 4 系统测试 14 参考文献 19 附录 源程序 20 1 课程设计的目的和意义 课程设计的目的: 企业的库存管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,出入 库、管理、供销商的渠道各有差异,各个企业之间的管理体制不尽相同,因此仓库 的库存管理必须编制一套库存管理系统,实现计算机化操作,而且必须根据企业的 具体情况制定相应的方案。 根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别, 相应分成几个模块来进行商品的出入库,库存盘点,以及对供销商的详细记录。为 了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划进行进货, 使得各商品不会缺货,使物资设备的储备最佳。 因此有必要开发一套库存管理系统来提高企业工作效率, 而所使用的这套库存 管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存 费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细 调查,我们开发了下面的仓库库存管理系统。 课程设计的意义: 库存管理的主要目标就是通过对仓库所有入出库活动的管理及对库存数据有效 的统计和分析,以保证企业生产中畅通的物流,使决策人员及早发现问题,采取相 应措施,调整库存结构,缩短储备周期,加速资金周转,最大限度地降低库存占用, 同时,通过周期性的仓库盘点,及时补救管理中的漏洞,使库存管理系统实时地反 映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协 调企业经营收到更大效益,库存管理系统是协调企业生产经营的基础,其数据的准 确性、方便的查询、有效的分析是整个计算机管理系统顺利运行的关键。 随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经 营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于 每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种 类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品 信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重 点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出 库的产品及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工 3 程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需 要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和 快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企 业的生产效率,都具有十分重要的现实意义。 2 需求分析 本系统是一个针对企业商品的仓库管理的软件,我们需要做到的是让企业 能够更好的对旗下的仓库进行记录,汇总查询,以及掌握商品的供销商的 信息记录。 库存管理系统的总层次图 本人负责的物品信息管理层次图 库存管理系统 库存记录管理 供销商管理物品信息管理 物品信息管理 2. 显 示 全 部 项 目 3. 查 找 项 目 信 息 5. 删 除 项 目 信 息 6. 保 存 项 目 信 息 7. 读 取 项 目 信 息 0. 返 回 4. 修 改 项 目 信 息 1. 增 加 项 目 3 系统设计 3.1 各模块功能分析 模块一:增加项目 按 任 意 键 返 回 此模块是为库存管理系统增加仓库的新商品信息。 运行界面如下: 物品信息管理系统选择界面 输入数字:1 输入入库项目的数量 输入项目编号 输入项目品名 输入商品单价 5 模块二:显示全部项目 按 任 意 键 返 回 此模块是为仓库管理员提供仓库所有的商品的信息。 物品信息管理系统选择界面 输入数字:2 显示结果界面 运行界面如下: 模块三:查找项目信息 返回 输入数字:1 输入编号查询 按任意键返回 输入数字:2 输入品名查询 输入数字:3 输入数量范围查询 输入数字:4 输入单价范围查询 输入数字:5 输入总价范围查询 输入数字:0 此模块是帮助仓库管理员查找仓库所有商品信息。 物品信息管理系统选择界面 输入数字:3 查找菜单 7 运行界面如下: 模块四:修改项目信息 返回 输入数字:1 输入编号修改 按任意键返回 输入数字:2 输入品名修改 输入数字:3 输入数量范围修改 输入数字:4 输入单价范围修改 输入数字:5 输入总价范围修改 输入数字:0 此模块是帮助仓库管理员修改仓库商品信息。 物品信息管理系统选择界面 输入数字:4 修改菜单 运行界面如下: 模块五:删除项目信息 返回 输入数字:1 输入编号删除 按任意键返回 输入数字:2 输入品名删除 输入数字:3 输入数量范围删除 输入数字:4 输入单价范围删除 输入数字:5 输入总价范围删除 输入数字:0 输入数字:5 删除菜单 物品信息管理系统选择界面 9 此模块是帮助仓库管理员删除仓库里的错误商品信息。 运行界面如下: 3.2 类、函数及说明 class Inventory public: Stock *pHead; /定义一个头结点 int count;/定义数量 Inventory();/构造函数 Inventory();/析构函数 int Save(char fileName);/保存所有项目信息到文件 int Load(char fileName);/从文件中读取项目信息 void Menu();/处理项目信息模块菜单 private: friend class OutStocks;/声明友元类 void Display(); void AddStock(Stock*);/添加一个项目 void AddStocks();/添加多个项目 int MenuSelect();/显示和处理项目信息模块菜单 ; class Stock protected: int price;/单价 int amount;/数量 char num20;/编号 char name20;/品名 public: Stock(void);/构造函数 Stock *next;/定义 next 指针 void SetNum(char);/声明初始化编号函数 char* GetNum();/获得编号函数 void SetName(char);/初始化名称函数 char *GetName();/获得名称函数 void SetPrice(int);/声明初始化价格函数 int GetPrice();/获得价格函数 void SetAmount(int);/初始化数量函数 int GetAmount();/获得数量函数 void Input(char* a);/声明输入函数 void Add(int);/声明添加函数 void Out(int);/声明出库函数 void Update();/声明更新函数 void Display();/声明打印函数 ; 4 系统测试 输入数字:2 1 1 首先增加项目: 然后显示全部项目: 然后查找(例如按品名查找和按单价查找): 然后是修改(例如按编号或者总价修改: 1 3 然后删除操作(例如按数量和编号删除): 1 5 5 心得体会 通过两周的课程设计使我对 C+有了更深刻的认识,不仅学习到了基本的 理论知识,还了解到了 C+语言程序设计的思想,这些知识都为我的课程设计 和进一步的学习打下了坚实的基础。 关于库存管理系统的课程设计,一方面是为了检查这一个学期来计算机语 言及链表的学习成果,另一方面也是为了让我们进一步掌握和熟练地运用它, 与此同时,也能够让我们认清自己在 C+学习方面的不足之处和薄弱环节,并 加以弥补和巩固。通过对库存管理系统的程序设计,进一步的巩固了用 C+语 言编写程序的能力,并且利于更好的掌握 C+语言! 在为期近两周的 C+课程设计中,我加强了对 C+程序设计这门课程的认识, 并且复习了自己以前学习到的知识,自己的逻辑思考能力也提高不少。这些都 使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我 收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激 发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序。整 体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设 计,既复习了以前的旧知识,又学到了一些新的知识。像库存管理系统这样的 应用程序的设计和创建,经历了平时在课堂和考试中不会出现的难题和考验。 而这些问题,又都是课本上很少提到的、更深一层的实践与知识相结合的问题, 这并不是我们平时只靠课本,就可以轻易解决的。刚开始我们的程序缺乏实际 应用意义,在屠老师的指导下,我们更深刻的知道了一个库存管理系统应该具 备的内容,比如出入库,库存信息,供销商信息等等。所以,这次课程设计锻 炼了我们面对难题,学会根据客户需求解决具体问题的能力,进一步培养了独 立思考问题和解决问题的能力。特别是对于链表的运用。当然,屠老师的指导 和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复 杂程序的方法。 总而言之,这次 C+程序设计实践让我收获很大。 1 7 参考文献 1 数据结构(C 语言版)清华大学出版社 2 C 语言课程设计(第 2 版)电子工业出版社 3 百度-C+课程设计吧 附录 源程序 头文件:Inventory.h #pragma once #include “Stock.h“ class Inventory public: Stock *pHead; /定义一个头结点 int count;/定义数量 Inventory();/构造函数 Inventory();/析构函数 int Save(char fileName);/保存所有项目信息到文件 int Load(char fileName);/从文件中读取项目信息 void Menu();/处理项目信息模块菜单 private: friend class OutStocks;/声明友元类 void Display(); void AddStock(Stock*);/添加一个项目 void AddStocks();/添加多个项目 int MenuSelect();/显示和处理项目信息模块菜单 ; 头文件:Stock.h: #pragma once class Stock protected: int price;/单价 int amount;/数量 char num20;/编号 char name20;/品名 public: Stock(void);/构造函数 Stock *next;/定义 next 指针 void SetNum(char);/声明初始化编号函数 char* GetNum();/获得编号函数 void SetName(char);/初始化名称函数 char *GetName();/获得名称函数 void SetPrice(int);/声明初始化价格函数 int GetPrice();/获得价格函数 void SetAmount(int);/初始化数量函数 int GetAmount();/获得数量函数 1 9 void Input(char* a);/声明输入函数 void Add(int);/声明添加函数 void Out(int);/声明出库函数 void Update();/声明更新函数 void Display();/声明打印函数 ; Inventory.cpp: #include “Search.h“ #include #include #include using namespace std; extern Search Search;/寻找 Search 的定义 Inventory:Inventory() count=0; pHead = new Stock();/给头结点分配储存空间 pHead-next = NULL;/头结点的下一个节点置空 Inventory:Inventory()/析构函数 /要将所有节点释放掉 Stock *pCurrent;/定义一个当前指针 pCurrent=pHead;/把头结点赋给当前指针 while(pCurrent-next != NULL)/当当前指针指向的下一个节点不为空 pHead = pHead-next;/头结点后移一个单位 free(pCurrent);/释放当前节点 pCurrent = pHead;/头结点赋给当前指针 free(pCurrent);/释放当前节点 void Inventory:AddStock(Stock *pCurrent) char n5; while(pCurrent-next != NULL)/ 当 pCurrent 下一个节点不为空 pCurrent = pCurrent-next; /pCurrent 结点后移一个单位 coutn; pCurrent-Input(n);/调用输入函数 pCurrent-next = new Stock();/给 pCurrent 下一个结点分配储存空间 pCurrent = pCurrent-next; /pCurrent 结点后移一个单位 pCurrent-next = NULL; / pCurrent 下一个节点为空 count+; void Inventory:AddStocks() int n; coutn; getchar();/消除回车符 if(nnext!=NULL;i+) 2 1 coutDisplay();/调用打印函数 coutnext; /pCurrent 结点后移一个单位 coutnext; /pCurrent 结点后移一个单位 oFile.close();/别忘了关闭文件流 return 1; int Inventory:Load(char fileName) ifstream iFile(fileName,ios:in|ios:binary); if(!iFile) coutnext = new Stock();/给 pCurrent 下一个结点分配储存空间 iFile.read(char *) pCurrent=pCurrent-next; /pCurrent 结点后移一个单位 pCurrent-next = NULL; iFile.close();/别忘了关闭文件流 return 1; int Inventory:MenuSelect() char s5; int cn; system(“cls“); cout7) cout #include using namespace std; Stock:Stock(void) amount=0; next = NULL; void Stock:SetNum(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论