C++ 语言 课程设计 仓库管理系统

阅读: 评论:0

2024年2月8日发(作者:)

C++ 语言 课程设计 仓库管理系统

目 录

1 课程设计的目的和意义 ............................................................................................ 2

2 需求分析 .................................................................................................................... 4

本系统是一个针对企业商品的仓库管理的软件,我们需要做到的是让企业能够更好的对旗下的仓库进行记录,汇总查询,以及掌握商品的供销商的信息记录。 ............................................................................................................................ 4

3 系统设计 .................................................................................................................... 5

4 系统测试 .................................................................................................................. 12

参考文献 ...................................................................................................................... 17

附录 源程序 ................................................................................................................ 18

1 课程设计的目的和意义

课程设计的目的:

企业的库存管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,出入库、管理、供销商的渠道各有差异,各个企业之间的管理体制不尽相同,因此仓库的库存管理必须编制一套库存管理系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。

根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别,相应分成几个模块来进行商品的出入库,库存盘点,以及对供销商的详细记录。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划进行进货,使得各商品不会缺货,使物资设备的储备最佳。

因此有必要开发一套库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我们开发了下面的仓库库存管理系统。

课程设计的意义:

库存管理的主要目标就是通过对仓库所有入出库活动的管理及对库存数据有效的统计和分析,以保证企业生产中畅通的物流,使决策人员及早发现问题,采取相应措施,调整库存结构,缩短储备周期,加速资金周转,最大限度地降低库存占用,同时,通过周期性的仓库盘点,及时补救管理中的漏洞,使库存管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益,库存管理系统是协调企业生产经营的基础,其数据的准确性、方便的查询、有效的分析是整个计算机管理系统顺利运行的关键。

随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重

点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出库的产品及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工

2

程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。

3

2 需求分析

本系统是一个针对企业商品的仓库管理的软件,我们需要做到的是让企业能够更好的对旗下的仓库进行记录,汇总查询,以及掌握商品的供销商的信息记录。

库存管理系统

库存记录管理

物品信息管理

供销商管理

库存管理系统的总层次图

1.

物品信息管理

2.

3.

4.

5.

6.

7.

0.

本人负责的物品信息管理层次图

4

3 系统设计

3.1各模块功能分析

模块一:增加项目

物品信息管理系统选择界面

输入数字:1

输入入库项目的数量

输入项目编号

输入项目品名

输入商品单价

此模块是为库存管理系统增加仓库的新商品信息。

运行界面如下:

5

模块二:显示全部项目

物品信息管理系统选择界面

输入数字:2

显示结果界面

此模块是为仓库管理员提供仓库所有的商品的信息。

6

运行界面如下:

模块三:查找项目信息

物品信息管理系统选择界面

返回

输入数字:3

查找菜单

按任意键返回输入数字:输入数字:输入数字:输入数字:输入数字:输入数字:此模块是帮助仓库管理员查找仓库所有商品信息。

0

输入编号查询

1

输入品名查询

2

输入数量范围查询

3

输入单价范围查询

4

输入总价范围查询

5

7

运行界面如下:

模块四:修改项目信息

物品信息管理系统选择界面

返回

输入数字:4

修改菜单

按任意键返回输入数字:输入数字:输入数字:输入数字:输入数字:输入数字:此模块是帮助仓库管理员修改仓库商品信息。

0

输入编号修改

1

输入品名修改

2

输入数量范围修改

3

输入单价范围修改

4

输入总价范围修改

5

8

运行界面如下:

模块五:删除项目信息

物品信息管理系统选择界面

返回

输入数字:5

删除菜单

按任意键返回输入数字:输入数字:输入数字:输入数字:输入数字:输入数字:

0

输入编号删除

1

输入品名删除

2

输入数量范围删除

3

输入单价范围删除

4

输入总价范围删除

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;//单价

10

int amount;//数量

char num[20];//编号

char name[20];//品名

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();//声明打印函数

11

4 系统测试

输入数字:2

首先增加项目:

12

然后显示全部项目:

然后查找(例如按品名查找和按单价查找):

13

然后是修改(例如按编号或者总价修改:

14

然后删除操作(例如按数量和编号删除):

15

5 心得体会

通过两周的课程设计使我对C++有了更深刻的认识,不仅学习到了基本的理论知识,还了解到了C++语言程序设计的思想,这些知识都为我的课程设计和进一步的学习打下了坚实的基础。

关于库存管理系统的课程设计,一方面是为了检查这一个学期来计算机语言及链表的学习成果,另一方面也是为了让我们进一步掌握和熟练地运用它,与此同时,也能够让我们认清自己在C++学习方面的不足之处和薄弱环节,并加以弥补和巩固。通过对库存管理系统的程序设计,进一步的巩固了用C++语言编写程序的能力,并且利于更好的掌握C++语言!

在为期近两周的C++课程设计中,我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识,自己的逻辑思考能力也提高不少。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识。像库存管理系统这样的应用程序的设计和创建,经历了平时在课堂和考试中不会出现的难题和考验。而这些问题,又都是课本上很少提到的、更深一层的实践与知识相结合的问题,这并不是我们平时只靠课本,就可以轻易解决的。刚开始我们的程序缺乏实际应用意义,在屠老师的指导下,我们更深刻的知道了一个库存管理系统应该具备的内容,比如出入库,库存信息,供销商信息等等。所以,这次课程设计锻炼了我们面对难题,学会根据客户需求解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是对于链表的运用。当然,屠老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。

总而言之,这次C++程序设计实践让我收获很大。

16

参考文献

[1] 数据结构(C语言版)清华大学出版社

[2] C语言课程设计(第2版)电子工业出版社

[3] 百度-C++课程设计吧

17

附录 源程序

头文件: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 num[20];//编号

char name[20];//品名

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();//获得数量函数

18

};

void Input(char* a);//声明输入函数

void Add(int);//声明添加函数

void Out(int);//声明出库函数

void Update();//声明更新函数

void Display();//声明打印函数

:

#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 n[5];

while(pCurrent->next != NULL)// 当pCurrent下一个节点不为空

pCurrent = pCurrent->next; //pCurrent结点后移一个单位

cout<<"tt编 号:";

cin>>n;

pCurrent->Input(n);//调用输入函数

pCurrent->next = new Stock();//给pCurrent下一个结点分配储存空间

pCurrent = pCurrent->next; //pCurrent结点后移一个单位

19

pCurrent->next = NULL; // pCurrent下一个节点为空

count++;

}

void Inventory::AddStocks()

{

int n;

cout<<"ntt请输入入库项目数量:";

cin>>n;

getchar();//消除回车符

if(n<1)

return;

Stock *pCurrent;

pCurrent = pHead; //把头结点赋给当前指针

for( int i=1;i<=n;i++ )

{

cout<<"ntt"<

AddStock(pCurrent);

}

system("pause");

}

void Inventory::Display()

{

if(count==0)

{

system("cls");

cout<<"nnntt无物品记录。nntt";

system("pause");

return;

}

system("cls");

cout<<"库存物品共"<

cout<<"n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n";

cout<<"┃序号 编号 品名 单价 数量 总价

┃n";

cout<<"┠─────────────────────────────────────┨n";

cout<<"┃

┃n";

Stock *pCurrent;

pCurrent = pHead; //把头结点赋给当前指针

for(int i=1;pCurrent->next!=NULL;i++)

{

cout<<"┃"<

20

pCurrent->Display();//调用打印函数

cout<<" ┃"<

pCurrent=pCurrent->next; //pCurrent结点后移一个单位

}

cout<<"┃

┃n";

cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n";

system("pause");

}

int Inventory::Save(char fileName[])

{

ofstream oFile(fileName,ios::out|ios::binary);// 二进制方式写入文件

if(!oFile)

{

cout<<"tt文件“"<

return 0;

}

((char *)&count,sizeof(int));

Stock *pCurrent;

pCurrent=pHead; //把头结点赋给当前指针

while(pCurrent!=NULL)// pCurrent指针不为空

{

((char *)pCurrent,sizeof(*pCurrent));

pCurrent=pCurrent->next; //pCurrent结点后移一个单位

}

();//别忘了关闭文件流

return 1;

}

int Inventory::Load(char fileName[])

{

ifstream iFile(fileName,ios::in|ios::binary);

if(!iFile)

{

cout<<"tt文件“"<

return 0;

}

((char *)&count,sizeof(int));

if( ()!=EOF )//文件内容不为空

{

//第一个节点需单独读取

pHead = new Stock();

((char *)pHead,sizeof(*pHead));

}

21

else

{

pHead=NULL;//头结点为空

return 1;

}

Stock *pCurrent;

pCurrent = pHead; //把头结点赋给当前指针

while(()!=EOF)//后续节点循环读取

{

pCurrent->next = new Stock();//给pCurrent下一个结点分配储存空间

((char *)&(*(pCurrent->next)),sizeof(*(pCurrent->next)));

pCurrent=pCurrent->next; //pCurrent结点后移一个单位

}

pCurrent->next = NULL;

();//别忘了关闭文件流

return 1;

}

int Inventory::MenuSelect()

{

char s[5];

int cn;

system("cls");

cout<<"n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n";

cout<<"┠─────────────物 品 信 息 管 理───ver0.9测试版────┨n";

cout<<"┃

┃n";

cout<<"┃ 1. 增 加 项 目

┃n";

cout<<"┃ 2. 显 示 全 部 项 目

┃n";

cout<<"┃ 3. 查 找 项 目 信 息

┃n";

cout<<"┃ 4. 修 改 项 目 信 息

┃n";

cout<<"┃ 5. 删 除 项 目 信 息

┃n";

cout<<"┃

┃n";

cout<<"┃ 6. 保 存 库 存 记 录

┃n";

cout<<"┃ 7. 读 取 库 存 记 录

┃n";

22

cout<<"┃ 0. 返 回

┃n";

cout<<"┃

┃n";

cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n";

cout<<"n";

cout<<"tt请按键选择选择:";

for(;;)

{

gets_s(s);

cn=atoi(s);

if(cn>7)

cout<<"ntt输入错误,请按目录选择:";

else

break;

}

return cn;

}

void Inventory::Menu()

{

for(;;)

{

switch(MenuSelect())

{

case 1:

AddStocks();//调用增加函数

break;

case 2:

Display();//调用打印函数

break;

case 3:

::(1);//调用查找函数

break;

case 4:

::Menu(1);

break;

case 5:

::Menu(1);

break;

case 6:

if(Save(""))

cout<<"tt项目信息保存成功!n"<

23

else

cout<<"tt项目信息保存失败!n"<

system("pause");

break;

case 7:

if(Load(""))

cout<<"tt项目信息读取成功!n"<

else

cout<<"tt项目信息读取失败!n"<

system("pause");

break;

case 0:

return;

}

}

}

:

#include "Stock.h"

#include

#include

using namespace std;

Stock::Stock(void)

{

amount=0;

next = NULL;

}

void Stock::SetNum(char n[])

{

strcpy_s(num,n);

}

char* Stock::GetNum()

{

return num;

}

void Stock::SetName(char n[])

{

strcpy_s(name,n);

}

char* Stock::GetName()

{

return name;

}

24

void Stock::SetPrice(int n)

{

price = n;

}

int Stock::GetPrice()

{

return price;

}

void Stock::SetAmount(int n)

{

amount=n;

}

int Stock::GetAmount()

{

return amount;

}

void Stock::Input(char* a)

{

int n;

char ch[10];

SetNum(a);

cout<<"tt品 名:";

cin>>ch;

SetName(ch);

cout<<"tt单 价:";

cin>>n;

getchar();

SetPrice(n);

}

void Stock::Add(int n)

{

amount+=n;

}

void Stock::Out(int n)

{

amount-=n;

}

void Stock::Update()

{

int n;

char ch[10];

cout<<"tt编 号:";

e(ch,'n');

SetNum(ch);

25

cout<<"tt品 名:";

e(ch,'n');

SetName(ch);

cout<<"tt单 价:";

cin>>n;

getchar();

SetPrice(n);

cout<<"tt数 量:";

cin>>n;

getchar();

SetAmount(n);

}

void Stock::Display()

{

cout<

<<"tbb"<

<<"tbbbb"<

<

<<"t"<

}

26

C++ 语言 课程设计 仓库管理系统

本文发布于:2024-02-08 04:51:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170733907166583.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:库存   仓库   企业   输入   管理   管理系统   信息   项目
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23