仓库管理系统的C 编程.docx

上传人:b****7 文档编号:9827138 上传时间:2023-02-06 格式:DOCX 页数:25 大小:184.07KB
下载 相关 举报
仓库管理系统的C 编程.docx_第1页
第1页 / 共25页
仓库管理系统的C 编程.docx_第2页
第2页 / 共25页
仓库管理系统的C 编程.docx_第3页
第3页 / 共25页
仓库管理系统的C 编程.docx_第4页
第4页 / 共25页
仓库管理系统的C 编程.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

仓库管理系统的C 编程.docx

《仓库管理系统的C 编程.docx》由会员分享,可在线阅读,更多相关《仓库管理系统的C 编程.docx(25页珍藏版)》请在冰豆网上搜索。

仓库管理系统的C 编程.docx

仓库管理系统的C编程

程序设计实验报告

课题名称:

仓库货物管理系统

学生姓名:

指导教师:

完成日期:

 

1.2仓库管理有关理论1

1

第2章功能分析

2.1系统的功能分析2

2.2.系统性能要求:

2

第3章程序设计思路

3.1模块流程图3

3.2各模块功能简介3

3.3类、函数的说明8

4.1不足分析9

4.2总结9

附录一参考文献10

附录二

第1章程序设计背景

1.1货物管理系统的意义

仓库管理系统是企业信息管理的主要部分,当库存管理实现计算机辅助核算后,大量的库存信息资源可以得到及时记录,汇总和分析并可通过网络系统迅速传递,提高库存信息的及时性,系统性,全面性和共享程度,有利于形成整个企业的管理信息系统网络,促进整个企业管理向现代化迈进。

一直以来人们使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:

效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

作为计算机应用的一部分,使用计算机对产品仓库信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品仓库的管理效率,也是企业仓库管理科学化、正规化,与世界接轨的重要条件。

因此,开发一个仓库管理系统是很有必要的,具有其特有的技术意义和管理意义。

1.2仓库管理有关理论

仓库是物流>物流系统中企业储存原料、半成品、产成品的场所。

仓库经常将大批量的货物在仓库中存放较长时间,而现代物流仓库更强调货物的动态进出,尽量少的货物在仓库中存放尽可能少的时间。

仓库在物流系统中的作用主要有运输整合、产品组合、直接转运、服务、偶发事件的防范和缓冲。

仓库管理的核心探讨——库存。

虽然“库存”不会记入月度损益,但它是资产负债表不可缺少的组成元素。

有很多关于“时间”的财务绩效参数和非财务性绩效参数,例如,及时客户订单交付、现金周转、库存持有天数等等。

对于企业来说,这些周转时间能反映出企业当前的经营状况。

它们的改进必然有助于提高供应链的整体竞争力。

1.3程序准备实现目标

1、设计内容:

制作仓库货物管理系统,实现数据录入、数据输出、数据查询等功。

2、设计要求:

1)可以对货物的存入、取出等操作记录

2)货物信息的查询

3)简单的计算统计功能

第2章功能分析

2.1系统的功能分析:

1.数据录入:

商品入库和商品出库

2.数据查询:

货物的查询

3.维护系统:

货物数据的修改级删除

2.2.系统性能要求:

1.系统安全、可靠;

2.功能齐全;

3.操作方便、界面友好;

4.易于维护和扩充。

第3章程序设计思路

3.1模块框架图

仓库货物管理系统有:

商品入库、商品出库、货物查询、维护系统

3.2各模块功能简介

1货物入库

 

2查询全部货物

3货物查询

返回

4货物数据的修改

返回

 

5数据的删除

返回

 

3.3类、函数及说明

classInventory

{

public:

Stock*pHead;//定义一个头结点

intcount;//定义数量

Inventory();//构造函数

~Inventory();//析构函数

intSave(charfileName[]);//保存所有项目信息到文件

intLoad(charfileName[]);//从文件中读取项目信息

voidMenu();//处理项目信息模块菜单

private:

friendclassOutStocks;//声明友元类

voidDisplay();

voidAddStock(Stock*);//添加一个项目

voidAddStocks();//添加多个项目

intMenuSelect();//显示和处理项目信息模块菜单

};

classStock

{

protected:

intprice;//单价

intamount;//数量

charnum[20];//编号

charname[20];//品名

public:

Stock(void);//构造函数

Stock*next;//定义next指针

voidSetNum(char[]);//声明初始化编号函数

char*GetNum();//获得编号函数

voidSetName(char[]);//初始化名称函数

char*GetName();//获得名称函数

voidSetPrice(int);//声明初始化价格函数

intGetPrice();//获得价格函数

voidSetAmount(int);//初始化数量函数

intGetAmount();//获得数量函数

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

voidAdd(int);//声明添加函数

voidOut(int);//声明出库函数

voidUpdate();//声明更新函数

voidDisplay();//声明打印函数

};

第4章不足分析与总结

4.1不足分析

1.界面不够美观(界面编辑不是特别熟悉,暂时不制作界面)

2.程序只适应与单机,与网络无关联,建议以后增加网络功能

3.可能会有部分漏洞,需要修补改进

4.2总结

经过三周的课程设计,虽然完成了仓库管理系统的设计,但是不可否认,其中还有有很多的不足,在本次设计中,只实现了其基本功能,很多强大的功能还没有实现,仓库管理系统是企业信息管理中不可缺少的一部分,所以要实现它完整的功能还需要很多的改进,比如运用数据库。

在这次课设中运用了面向对象的编程语言C++,通过定义类和对象,以及类的属性和方法实现基本功能,如出库和入库。

这使得我们更进一步熟悉了面向对象机制。

在这次课程设计中,由于对专业知识的掌握不够,我们遇到了很多问题,得到了老师和同学的帮助,借此感谢帮助过我们的老师和同学。

总之,通过课程设计,使我们能把理论知识运用于实践,做出符合实际要求的软件.

附录一

参考资料

《C++程序设计》清华大学出版社

《标准c++库大全》电子工业出版社

《VisualC++6.0编程基础与范例》电子工业出版社

《VisualC++库大全》电子工业出版社

附录二

源代码

头文件Inventory.h:

#pragmaonce

#include"Stock.h"

classInventory

{

public:

Stock*pHead;//定义一个头结点

intcount;//定义数量

Inventory();//构造函数

~Inventory();//析构函数

intSave(charfileName[]);//保存所有项目信息到文件

intLoad(charfileName[]);//从文件中读取项目信息

voidMenu();//处理项目信息模块菜单

private:

friendclassOutStocks;//声明友元类

voidDisplay();

voidAddStock(Stock*);//添加一个项目

voidAddStocks();//添加多个项目

intMenuSelect();//显示和处理项目信息模块菜单

};

头文件:

Stock.h:

#pragmaonce

classStock

{

protected:

intprice;//单价

intamount;//数量

charnum[20];//编号

charname[20];//品名

public:

Stock(void);//构造函数

Stock*next;//定义next指针

voidSetNum(char[]);//声明初始化编号函数

char*GetNum();//获得编号函数

voidSetName(char[]);//初始化名称函数

char*GetName();//获得名称函数

voidSetPrice(int);//声明初始化价格函数

intGetPrice();//获得价格函数

voidSetAmount(int);//初始化数量函数

intGetAmount();//获得数量函数

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

voidAdd(int);//声明添加函数

voidOut(int);//声明出库函数

voidUpdate();//声明更新函数

voidDisplay();//声明打印函数

};

Inventory.cpp:

#include"Search.h"

#include

#include

#include

usingnamespacestd;

externSearchSearch;//寻找Search的定义

Inventory:

:

Inventory()

{

count=0;

pHead=newStock();//给头结点分配储存空间

pHead->next=NULL;//头结点的下一个节点置空

}

Inventory:

:

~Inventory()//析构函数

{

//要将所有节点释放掉

Stock*pCurrent;//定义一个当前指针

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

while(pCurrent->next!

=NULL)//当当前指针指向的下一个节点不为空

{

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

free(pCurrent);//释放当前节点

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

}

free(pCurrent);//释放当前节点

}

voidInventory:

:

AddStock(Stock*pCurrent)

{

charn[5];

while(pCurrent->next!

=NULL)//当pCurrent下一个节点不为空

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

cout<<"\t\t编号:

";

cin>>n;

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

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

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

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

count++;

}

voidInventory:

:

AddStocks()

{

intn;

cout<<"\n\t\t请输入入库项目数量:

";

cin>>n;

getchar();//消除回车符

if(n<1)

return;

Stock*pCurrent;

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

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

{

cout<<"\n\t\t"<

"<

AddStock(pCurrent);

}

system("pause");

}

voidInventory:

:

Display()

{

if(count==0)

{

system("cls");

cout<<"\n\n\n\t\t无物品记录。

\n\n\t\t";

system("pause");

return;

}

system("cls");

cout<<"库存物品共"<

";

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

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

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

cout<<"┃┃\n";

Stock*pCurrent;

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

for(inti=1;pCurrent->next!

=NULL;i++)

{

cout<<"┃"<

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

cout<<"┃"<

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

}

cout<<"┃┃\n";

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

system("pause");

}

intInventory:

:

Save(charfileName[])

{

ofstreamoFile(fileName,ios:

:

out|ios:

:

binary);//二进制方式写入文件

if(!

oFile)

{

cout<<"\t\t文件“"<

"<

return0;

}

oFile.write((char*)&count,sizeof(int));

Stock*pCurrent;

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

while(pCurrent!

=NULL)//pCurrent指针不为空

{

oFile.write((char*)pCurrent,sizeof(*pCurrent));

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

}

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

return1;

}

intInventory:

:

Load(charfileName[])

{

ifstreamiFile(fileName,ios:

:

in|ios:

:

binary);

if(!

iFile)

{

cout<<"\t\t文件“"<

"<

return0;

}

iFile.read((char*)&count,sizeof(int));

if(iFile.peek()!

=EOF)//文件内容不为空

{

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

pHead=newStock();

iFile.read((char*)pHead,sizeof(*pHead));

}

else

{

pHead=NULL;//头结点为空

return1;

}

Stock*pCurrent;

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

while(iFile.peek()!

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

{

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

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

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

}

pCurrent->next=NULL;

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

return1;

}

intInventory:

:

MenuSelect()

{

chars[5];

intcn;

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";

cout<<"┃0.返回┃\n";

cout<<"┃┃\n";

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

cout<<"\n";

cout<<"\t\t请按键选择选择:

";

for(;;)

{

gets_s(s);

cn=atoi(s);

if(cn>7)

cout<<"\n\t\t输入错误,请按目录选择:

";

else

break;

}

returncn;

}

voidInventory:

:

Menu()

{

for(;;)

{

switch(MenuSelect())

{

case1:

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

break;

case2:

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

break;

case3:

:

:

Search.Menu

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

break;

case4:

:

:

Search.UpdateMenu

(1);

break;

case5:

:

:

Search.DeleteMenu

(1);

break;

case6:

if(Save("Stock.data"))

cout<<"\t\t项目信息保存成功!

\n"<

else

cout<<"\t\t项目信息保存失败!

\n"<

system("pause");

break;

case7:

if(Load("Stock.data"))

cout<<"\t\t项目信息读取成功!

\n"<

else

cout<<"\t\t项目信息读取失败!

\n"<

system("pause");

break;

case0:

return;

}

}

}

Stock.cpp:

#include"Stock.h"

#include

#include

usingnamespacestd;

Stock:

:

Stock(void)

{

amount=0;

next=NULL;

}

voidStock:

:

SetNum(charn[])

{

strcpy_s(num,n);

}

char*Stock:

:

GetNum()

{

returnnum;

}

voidStock:

:

SetName(charn[])

{

strcpy_s(name,n);

}

char*Stock:

:

GetName()

{

returnname;

}

voidStock:

:

SetPrice(intn)

{

price=n;

}

intStock:

:

GetPrice()

{

returnprice;

}

voidStock:

:

SetAmount(intn)

{

amount=n;

}

intStock:

:

GetAmount()

{

returnamount;

}

voidStock:

:

Input(char*a)

{

intn;

charch[10];

SetNum(a);

cout<<"\t\t品名:

";

cin>>ch;

SetName(ch);

cout<<"\t\t单价:

";

cin>>n;

getchar();

SetPrice(n);

}

voidStock:

:

Add(intn)

{

amount+=n;

}

voidStock:

:

Out(intn)

{

amount-=n;

}

voidStock:

:

Update()

{

intn;

charch[10];

cout<<"\t\t编号:

";

cin.getline(ch,'\n');

SetNum(ch);

cout<<"\t\t品名:

";

cin.getline(ch,'\n');

SetName(ch);

cout<<"\t\t单价:

";

cin>>n;

getchar();

SetPrice(n);

cout<<"\t\t数量:

";

cin>>n;

getchar();

SetAmount(n);

}

voidStock:

:

Display()

{

cout<

<<"\t\b\b"<

<<"\t\b\b\b\b"<

<

<<"\t"<

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1