超市库存管理系统Word下载.doc
- 文档编号:634885
- 上传时间:2023-04-29
- 格式:DOC
- 页数:22
- 大小:463KB
超市库存管理系统Word下载.doc
《超市库存管理系统Word下载.doc》由会员分享,可在线阅读,更多相关《超市库存管理系统Word下载.doc(22页珍藏版)》请在冰点文库上搜索。
1.2开发环境和工具
由于本系统是基于Visual
C++平台的,所以采用C++技术作为主要开发工具,系统前台界面采用常用的Microsoft
Visual
C++6.0开发软件,后台数据库采用MicrosoftAccess2003。
2.需求分析
2.1业务流程分析
订货单
采购
入库单
入库
货架
货品检查
缺货通知单
递交处理
仓库
检查存货
出货单
出库
超市的库存管理业务流程如下:
当超市货架某商品缺货时,发出缺货通知,然后检查仓库是否有该商品。
如果仓库有货,领取商品,并记录库存台账,统计报表;
如果仓库没有货物,或者检查货物存量低于安全库存,发出订货单并采购货物。
商品入库,记录库存台账,并统计报表。
业务流程图如图1所示:
无
有
图1超市库存管理流程图
2.2功能分析
功能分析的任务是弄清楚客户对于目标系统的功能需求。
超市库存管理主要是为了更好更高效率的帮助超市管理好超市的库存商品,及时的补充商品能够在超市的行业竞争中有优势。
其中包括商品的查询,能够及时的了解商品的需求情况;
商品的信息,了解商品的总体数量以及商品的详细分类;
供货商的信息,能够准确无误的找到最好的商品来源;
报表信息,能够清晰的看到整个经营过程的盈亏,及时做出正确的营业决定。
根据对系统目标和业务流程的分析,本系统的功能需求可以归纳为以下具体功能:
(1)库存商品信息查询功能:
对于商品的各信息的及时了解掌握,才能更加有效率的管理好超市的运营情况。
该模块主要用于用户对于超市货架上的物品在一段时间的运营后查询货架上的物品的数量剩余,以此确定需要补充的货物;
仓库的商品储存的查询以及运营报表的查询。
可按商品的类别、商品名称、生产厂家进行查询。
如存在则输出相应的信息,如不存在则提示不存在并提示修改已有商品信息,对于不再需要存储的商品也可删除物品的记录。
(2)超市商品管理功能:
该功能主要完成商品从供货商处运达后的商品入库检验,商品分类,以及商品的入库登记;
当货架商品不足时,从库存商品调用的商品数量,商品类型等的统计以及管理。
商品分类包括:
商品名称,品牌,类型,保质期,价格,生产厂家,供货来源等详细信息。
(3)供货商信息管理功能:
由于每种商品的代理商都不止一家且相同供货商之间提供的商品质量也不是完全相同所以通过该功能记录各供货商的电话,地址,能够提供的商品类型,提供商品质量优劣等情况。
在商品不足需要订购的时候,给用户最合适的供货来源。
(4)部门管理功能:
该模块主要实现对采购部,销售部人员基本信息管理的功能。
对所以员工的信息进行登记管理,包括添加、修改、删除、查询操作。
3系统设计
3.1系统功能模块设计
从前面的业务流程与功能分析可以设计六个功能模块,分别是销售部信息管理模块、库存商品信息管理模块、入库商品信息管理模块、出库商品信息管理模块、供货商信息管理模块、采购部信息管理模块。
系统整体功能如图2所示:
超市库存管理系统
库存商品信息管理模块
供货商信息管理模块
入库商品信息管理模块
销售部信息管理模块
出库商品信息管理模块
采购部信息管理模块
图2系统整体功能图
其中各模块的功能包括:
库存商品信息管理模块:
查询商品库存总量、商品库存状况。
入库商品信息管理模块:
登记入库商品信息、修改入库商品信息、删除入库商品信息。
出库商品信息管理模块:
登记出库商品信息、修改出库商品信息、删除出库商品信息。
供货商信息管理模块:
添加供应商信息、修改供应商信息、删除供应商信息、查询供应商信息。
采购部信息管理模块:
添加采购部人员信息、修改采购部人员信息、删除采购部人员信息、查询采购部人员信息。
销售部信息管理模块:
添加销售部人员信息、修改销售部人员信息、删除销售部人员信息、查询销售部人员信息。
3.2数据库设计
3.2.1系统数据流图
缺货通知
库存统计统计
出库商品信息
采购通知
采购信息
供应商
入库商品信息
不足
数据流图是用来描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。
对超市库存管理系统及各功能模块进行数据流程分析,可得到超市库存管理系统的各个模块处理数据的过程,如图3所示:
图3系统数据流程图
3.2.2数据库逻辑设计
概念模型是数据库系统的核心和基础,在管理信息系统中,概念模型:
体现了设计者对现实世界的认识,描述了软件系统的整体概括。
人们研究把现实世界中的事物抽象为不依赖与具体机器的信息结构,又接近人们的思维,并具有丰富语义的概念模型,然后再把概念模型转换为具体的机器上DBMS支持的数据模型。
概念模型的描述工具通常是使用E-R模型图。
该模型不依赖于具体的硬件环境和DBMS。
概念模型设计的常用方法是实体关系方法(E-R方法)。
用实体关系方法对具体数据进行抽象加工,将实体集合抽象成实体类型,用实体间的关系反映现实世界事物间的内在关系。
首先可以进行局部E-R模型,然后把各局部E-R模型综合成一个全局的E-R模型,最后对全局E-R模型进行优化,最后得到的。
在需求分析和逻辑设计之间增加概念设计阶段,可以使设计人员仅从用户的角度看待数据及处理要求和约束。
表达概念设计的结果称为概念模型,对概念模型有以下要求:
(1)有丰富的语义表达能力,能表达用户的各种需求。
(2)易于交流和理解,从而可以用它和不熟悉计算机的用户交换意见。
(3)要易于更改。
当应用环境和应用要求改变时,概念模型要能很容易的修改和扩充以反映这种变化。
(4)易于向各种数据模型转换。
超市库存管理系统的E-R图如图4所示:
m
1
供货商名称
姓名
销售部门
电话
人员编号
供货商编号
仓库商品
商品名称
仓库编号
库存量
入库日期
出库日期
销售人员编号
采购人员编号
供应商编号
供应商名称
供应商电话
商品编号
供应商地址
供应商邮编
银行账号
供应
存储
采购部门
供货价格
图4系统E-R图
结合E-R图可得到数据库管理系统的关系模型如下:
(1)供应商信息表:
(供应商编号、供应商名称、地址、电话、邮编、银行账号)
(2)入库信息表:
(商品编号、名称、入库数量、单价、入库日期、供货商、采购部门编号)
(3)出库信息表:
(商品编号、名称、出库数量、销售部门编号、出库日期)
(4)采购部人员信息表:
(编号、姓名、电话)
(5)销售部人员信息表:
以上括号外的名称是表名,括号内为字段名。
3.2.3数据库物理设计
根据在数据库概念设计中给出的数据库驾校管理系统的关系模型,可以设计数据表结构。
其中包括以下表:
Supplier,GoodsIn,GoodsOut,Buy,Sell。
下面具体介绍数据库中各表的结构:
(1)表名:
Supplier,即:
供应商信息表,存蓄供应商的相关信息,其结构如表1所示。
表1供应商信息表
字段名称
字段类型
字段长度
字段属性
是否为空
sup_no
varchar
50
NOTNULL
sup_name
sup_address
sup_num
pro_name
vachar
sup_prise
NUTNULL
pro_no
sup_post
sup_bank
(2)表名:
GoodsIn,即:
商品入库信息表,存蓄入库商品的信息,其结构如表2所示。
表2商品入库信息表
GoodsNO
GoodsName
Quantity
入库数量
Price
单价
Supplier_no
Supplier_name
PurchaseUnitNo
Data
(3)表名:
GoodsOut,即:
商品出库信息表,存储商品出库的相关信息,其结构如表3所示。
表3商品出库信息表
GoodsNo
出库数量
SalesUnitNo
500
(4)表名:
Sell,即:
销售部门人员信息表,存储销售部门的相关人员信息,其结构如表4所示。
表4销售部门人员信息表
sell_no
工号
sell_name
名称
sell_num
(5)表名:
Buy,即:
采购部门人员信息表,存储采购部门的相关人员信息,其结构如表5所示。
表5采购部门人员信息表
buy_no
buy_name
buy_num
4.系统实现
(1)数据库连接,数据源名DatabaseExampleForC++,下面是连接数据库信息表的代码:
CStringCBuySet:
:
GetDefaultConnect()
{
return_T("
ODBC;
DSN=DatabaseExampleForC++"
);
}//连接数据库信息表Buy
CStringCSellSet:
}//连接数据库信息表Sell
CStringCSupplierSet:
}//连接数据库信息表Supplier
CStringCProInSet:
}//连接数据库信息表GoodsIn
CStringCProOutSet:
}//连接数据库信息表GoodsOut
(2)添加入库商品信息的代码
CProInAddDlgdlg;
//调用添加的编辑对话框
if(dlg.DoModal()==IDOK)
CProInSetm_pSet1;
m_pSet1.Open();
//打开商品入库信息表
while(!
m_pSet1.IsEOF())
if(dlg.m_GoodsNo1==m_pSet1.m_GoodsNO) //商品编号重复
MessageBox("
已存在此货品!
"
return;
}
m_pSet1.MoveNext();
m_pSet1.AddNew();
//增加一个入库商品信息的记录
m_pSet1.m_Data=dlg.m_Data1;
m_pSet1.m_GoodsName=dlg.m_GoodsName1;
m_pSet1.m_GoodsNO=dlg.m_GoodsNo1;
m_pSet1.m_Quantity=dlg.m_Quantity1;
m_pSet1.m_PurchaseUnitNo=dlg.m_PurchaseUnitNo1;
m_pSet1.m_Price=dlg.m_Price1;
m_pSet1.m_Supplier=dlg.m_Supplier1;
m_pSet1.Update();
m_pSet1.Requery();
//刷新记录集m_pSet1.Close();
m_in_list.InsertItem(nItem,dlg.m_GoodsNo1);
//添加当前记录的字段信息m_in_list.SetItemText(nItem,1,dlg.m_GoodsName1);
m_in_list.SetItemText(nItem,2,dlg.m_Quantity1);
m_in_list.SetItemText(nItem,3,dlg.m_Price1);
m_in_list.SetItemText(nItem,4,dlg.m_Supplier1);
m_in_list.SetItemText(nItem,5,dlg.m_PurchaseUnitNo1);
m_in_list.SetItemText(nItem,6,dlg.m_Data1);
添加入库商品信息的过程
(3)修改入库商品信息的代码
if(nItem==-1)//没选择要修改的商品入库信息
AfxMessageBox("
请选中需要修改的商品入库信息"
CProInAlterDlgdlg;
//调用修改的编辑对话框if(dlg.DoModal()==IDOK)
if(m_Goods_No!
=dlg.m_GoodsNo2)
不能修改编号"
//打开商品入库信息表
if(dlg.m_GoodsNo2==m_pSet1.m_GoodsNO) //商品编号重复 {
m_pSet1.Edit();
m_pSet1.m_GoodsNO=dlg.m_GoodsNo2;
m_pSet1.m_GoodsName=dlg.m_GoodsName2;
m_pSet1.m_Quantity=dlg.m_Quantity2;
m_pSet1.m_PurchaseUnitNo=dlg.m_PurchaseUnitNo2;
m_pSet1.m_Data=dlg.m_Data2;
m_pSet1.m_Price=dlg.m_Price2;
m_pSet1.m_Supplier=dlg.m_Supplier2;
break;
//刷新记录集
}
m_pSet1.Close();
//关闭记录集
修改入库商品信息的过程
(4)删除入库商品信息的代码
voidCProInDlg:
OnInDel()
intnItem=m_in_list.GetSelectionMark();
//得到列表的选择项if(nItem==-1)//没选中要删除的入库商品信息
请选择待删除的入库商品信息"
CStrings;
intchoose=MessageBox("
确定删除选择的出库商品信息"
"
提问"
MB_YESNO|MB_ICONQUESTION);
//是否删除该入库商品信息if(choose==IDYES) //选择该行的第一列数据
CStringstrItem=m_in_list.GetItemText(nItem,0);
m_in_list.DeleteItem(nItem);
CProInSetm_pSet;
m_pSet.Open();
m_pSet.IsEOF())
if(m_pSet.m_GoodsNO==strItem)
CRecordsetStatuss;
m_pSet.GetStatus(s);
m_pSet.Delete();
if(s.m_lCurrentRecord==0) //不加这里会导致出现一个空记录m_pSet.MoveNext();
else
m_pSet.MoveFirst();
m_pSet.MoveNext();
m_pSet.Close();
删除入库商品信息的过程
(5)库存商品信息管理模块查询的代码
voidCProCheckDlg:
OnProcheck()
CProInSetm_pSet,check;
CProOutSetcheck1;
intflag=0;
UpdateData();
m_procheck.TrimLeft();
if(m_procheck.IsEmpty())//输入商品的编号进行查询
{
MessageBox("
请输入要查询的商品编号"
return;
}
check.Open();
check1.Open();
while(!
check.IsEOF()) //开始查询记录
{
if(check.m_GoodsNO==m_procheck)
{
flag=1;
//找到需要查询的记录
break;
}
else
check.MoveNext();
//下移一条记录
if(flag==0)//没有找到相关记录
{
MessageBox("
要查询的编号不存在请重新输入"
return;
intnum=atoi(check.m_Quantity.GetBuffer(3));
intnum2=atoi(check1.m_Quantity.GetBuffer(3));
intsum=0;
sum=num-num2;
//计算剩余的库存商品数量
CStringS,b;
S.Format("
%d"
sum);
CStringstr;
//保存当前字段的文本值
for(inti=0;
i<
8;
i++)//添加当前记录的字段信息
if(i<
7)
check.GetFieldValue(i,str);
if(i==0)
m_check_list.InsertItem(nItem,str);
m_check_list.SetItemT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 库存 管理 系统