库存管理系统论文.docx
《库存管理系统论文.docx》由会员分享,可在线阅读,更多相关《库存管理系统论文.docx(64页珍藏版)》请在冰豆网上搜索。
![库存管理系统论文.docx](https://file1.bdocx.com/fileroot1/2023-2/7/1c65a0f5-6c64-400c-bee2-215c85b34084/1c65a0f5-6c64-400c-bee2-215c85b340841.gif)
库存管理系统论文
信息系统
课程设计说明书
设计题目:
库存管理系统
设计者:
指导教师:
07信息系统工程
2010年6月6日
目录:
第一章可行性分析
1.1开发环境与开发工具
1.2可行性报告
1.2.1开发必要性
1.2.2技术可行性
1.2.3经济可行性
第二章系统分析
2.1系统需求分析
2.2功能需求分析
2.3业务流程分析
2.4数据与数据流程分析
第三章系统设计
3.1数据库设计
3.2代码设计
第四章设计总结
4.1工作总结
4.2设计过程总结
4.3设计展望
参考文献
第一章可行性分析
1.1开发环境和开发工具
操作系统:
WindowsXP
开发语言:
C++
数据库:
SQL2000
数据库访问控件:
ADO
1.2可行性分析
1.2.1开发必要性
随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大,从而可以使我们从繁杂的信息管理中解放出来,提高了我们的工作效率。
如今,信息网络技术已经无处不在,无时不在了,各种各样的信息管理系统也就应运而生。
目前,随着企业规模的不断壮大,产品的种类和数量都不断增加,产品的流通越来越多,这就使产品的存储需求不断增加,需要工作人员花费很大力气来统筹管理这项工作,为了保证工作的正确性和可靠性同时提高管理的效率,很有必要建立一个库存管理系统,使货品管理工作规范化,系统化,程序化。
1.2.2技术可行性
在技术上,如今成熟的语言有很多,像是PowerBuilder、VB、Delphi等都能开发出很好用的系统。
而本次设计我采用的是VC,也是很成熟的语言,再加上数据库如今的发展状况,开发出一个库存管理的应用程序是没有问题的。
鉴于软硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的进行图书信息管理。
硬件的配置要求不能太高,这样可以很好的适应当前的企业办公管理工作,如今电脑软硬件技术飞速发展,计算机系统开发人员也比比皆是,开发知识密集型的信息系统的技术条件也已经很成熟了。
1.2.3经济可行性
在经济上,费用的支出和带来的巨大收益相比自是不能相提并论了,至于管理上,工作人员对于这项工程的实施必然是持赞成的态度,因为这样会大大减轻他们的工作量提高工作效率。
且成本低,建成后的维护费用也与线性系统运行费用相同,而每年可以促进企业仓库存储的工作优化、库存产品的有效利用率,并可有效降低企业库存的不必要支出,提高企业产品存储资金的有效利用。
第二章系统分析
2.1业务范围分析
1.企业库存基础信息设置:
这是企业库存最重要的模块之一,它将对仓库存储中的产品、雇员、客户和仓库的基本信息进行管理操作,所有的产品、仓库等原始数据输入都是在这里实现的,有了这里的数据输入,才能开始以后的诸如产品入库、产品出库等操作。
(1)产品信息设置:
该功能允许用户添加、修改和删除产品信息,在输入过程中,程序自动生成产品编号以方便产品的管理和入库时选择产品,同时程序也检查输入的合法性。
(2)雇员信息设置:
该功能允许用户添加、修改和删除雇员信息,在信息录入过程中,程序自动生成雇员编号以方便对员工信息的管理,同时程序也检查输入的合法性。
(3)客户信息设置:
企业库存产品出库,必然要登记货物发给的客户,该功能允许用户对客户的名称、联系方式、地址等基本信息进行添加、修改和删除,在信息录入过程中,程序自动生成客户编号以方便对客户信息的管理,同时程序也检查输入的合法性。
(4)仓库信息设置:
产品的入库,出库,调拨和报损都需要仓库的基本信息。
该功能允许用户添加、修改和删除仓库信息,在信息录入过程中,程序自动生成仓库编号以方便对仓库信息的管理,同时程序也检查输入的合法性。
2.库存信息的录入与修改
(1)产品入库单信息录入与修改:
该功能允许用户输入入库单信息,在输入过程中,程序自动生成产品入库单编号以方便对入库产品的信息管理和单据的查询,同时程序也检查输入的合法性。
(2)产品出库单信息录入与修改:
该功能允许用户输入出库单信息,在输入过程中,程序自动生成产品出库单编号以方便对出库产品的信息管理和单据的查询,同时程序也检查输入的合法性。
(3)产品调拨单信息录入与修改:
因为仓库所处地区的不同,以及库存量的差异,所以企业内部仓库之间货品的调拨时必然的。
该功能允许用户输入调拨单信息,在输入过程中,程序自动生成产品调拨单编号以方便对调拨产品的信息管理和单据的查询,同时程序也检查输入的合法性。
(4)产品报损单信息录入与修改:
因为在产品的运输过程或是存储过程中,会有产品的损坏,所以系统也应该具备产品报损信息的管理功能。
该功能允许用户输入产品报损单信息,在输入过程中,程序自动生成产品报损单编号以方便对报损产品的信息管理和单据的查询,同时程序也检查输入的合法性。
3.库存信息的查询
(1)产品入库单信息的查询:
该功能不仅要对产品入库单据的信息(如:
入库仓库、生产部门、产品名称、经办人等)进行查询,而且要对该单据所包括的产品的信息(产品名称、型号、单价等)进行查询。
(2)产品出库单信息的查询:
该功能不仅要对产品出库单据的信息(仓库名称、经办人、客户等)进行查询,而且要对该单据所包括的产品的信息(产品名称、型号、单价等)进行查询。
(3)产品调拨单信息的查询:
该功能不仅要对产品调拨单据的信息(入库仓库、出库仓库、经办人等)进行查询,而且要对该单据所包括的产品的信息(产品名称、型号、单价等)进行查询。
(4)产品报损单信息的查询:
该功能不仅要对产品报损单据的信息(报损仓库、经办人等)进行查询,而且要对该单据所包括的产品的信息(产品名称、型号、单价等)进行查询。
4.库存信息的统计分析
(1)入库产品信息汇总统计:
该功能对各种入库产品的存储仓库、存储数量、存储金额进行了汇总统计。
(2)出库产品信息汇总统计:
该功能对各种出库产品的出库仓库、出库数量、出库金额进行了汇总统计。
该库存管理系统的功能图如下:
图2.1库存信息管理系统功能图
2.2业务流程分析
库存管理数据流图
图2.2系统数据流图
2.3数据字典
名字:
产品编号
别名:
描述:
此产品在产品中的惟一的标识.
定义:
1{数字}10
位置:
产品信息
产品入库单
产品出库单
产品调拨单
产品报损单
名字:
产品入库单号
别名:
描述:
此入库单在单据中的惟一的标识.
定义:
1{数字}10
位置:
产品入库单
产品入库单产品信息
入库产品汇总统计
名字:
产品出库单号
别名:
描述:
此出库单在单据中的惟一的标识.
定义:
1{数字}10
位置:
产品处库单
产品出库单产品信息
出库产品汇总统计
名字:
产品报损单号
别名:
描述:
此报损单在单据中的惟一的标识.
定义:
1{数字}10
位置:
产品报损单
产品报损单产品信息
名字:
产品调拨单号
别名:
描述:
此调拨单在单据中的惟一的标识.
定义:
1{数字}10
位置:
产品调拨单
产品调拨单产品信息
图2.3数据字典
2.4数据与数据流程分析
第三章系统设计
3.1系统总体结构设计
登陆库存管理系统
验证用户信息
系统主窗体
仓库管理
入库管理
出库管理
盘存管理
综合管理
附项分类
历史数据管理
打印、查询
系统
货品入库单
经办人员报表
货品出库单
数据备份
备份输出
库存汇总
库存管理系统结构图
错误
3.2E-R图
图3.1产品信息实体E-R图
图3.2雇员信息实体E-R图
图3.3客户信息实体E-R图
图3.4仓库信息实体E-R图
图3.5入库单信息实体E-R图
图3.6入库单产品信息实体E-R图
图3.7出库单信息实体E-R图
图3.8出库单产品信息实体E-R图
图3.9调拨单信息实体E-R图
图3.10调拨单产品信息实体E-R图
图3.11报损单信息实体E-R图
图3.12报损单产品信息实体E-R图
产品
报损单产品
出库单
入库单
出库单产品
入库单产品
调拨单
报损单
选择
报损出库
工作人员
办理
调拨单产品
选择
调拨出库
办理
选择
生产入库
办理
销售出库
办理
N
M
N
N
M
1
N
N
N
选择
N
N
M
M
N
M
1
M
M
M
1
N
N
M
1
M
图3.13整个系统的ER图
3.3数据库设计
数据库有以下十三个表组成:
表3.1产品基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductID
Char
10
产品编号
是
ProductName
Char
20
产品名称
否
Standard
Char
10
规格
否
model
Char
10
型号
否
Price
Float
8
单价
否
qualityGuarantee
Int
4
保存期限
否
maintance
Int
4
维护期
否
Unit
Char
10
计量单位
否
colorType
Char
10
颜色类别
否
qualityLevel
Char
10
质量等级
否
finishRate
Float
4
成品率
否
storeHouse
Char
20
存放仓库
否
taxRate
Float
8
税率
否
Remark
Char
100
备注
否
numMin
Int
4
存储下限
否
NumMax
Int
4
存储上限
否
表3.2雇员基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
staffID
Char
20
员工编号
是
staffName
Char
30
员工姓名
否
Duty
Char
20
员工职务
否
Department
Char
20
所在部门
否
Sex
Char
2
性别
否
Address
Char
30
员工住址
否
Birthday
Datetime
8
出生日期
否
Postcode
Char
10
邮政编码
否
marriageCondition
Char
10
婚姻状况
否
Telephone
Char
20
员工电话
否
Nationality
Char
20
国籍
否
eMail
Char
20
电子邮件
否
educationLevel
Char
20
学历
否
QQ
Char
10
QQ号码
否
guaduateSchool
Char
20
毕业院校
否
Major
Char
20
专业
否
IdentityNO
Char
20
身份证号码
否
Mobile
Char
20
手机号码
否
workType
Char
20
员工工种
否
Remark
Char
100
备注
否
表3.3客户基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
CilentID
Char
20
客户编号
是
bookinDate
Datetime
8
登记日期
否
clientLevel
Char
20
客户级别
否
clientType
Char
20
客户类型
否
Company
Char
20
客户公司
否
contactPerson
Char
20
联系人
否
AreaID
Char
20
地区
否
Address
Char
20
地址
否
Postcode
Char
20
邮政编码
否
Telephone
Char
20
联系电话
否
Fax
Char
20
传真
否
eMail
Char
20
电子邮件
否
Remark
Char
100
备注
否
manageRange
Char
20
经营范围
否
manageProduct
Char
20
经营产品
否
Accountbank
Char
20
开户银行
否
Account
Char
20
银行账号
否
TaxNO
Char
20
税号
否
RegisterDate
Datetime
8
注册日期
否
registerFund
Float
8
注册资金
否
Scale
Char
20
规模
否
Industrycharacter
Char
20
行业性质
否
Allfunds
Float
8
总资产
否
Clientcharacter
Char
20
客户性质
否
表3.4仓库表字段说明
字段名称
数据类型
数据长度
说明
主键
StorehouseID
Char
20
仓库编号
是
storehouseName
Char
30
仓库名称
否
storehousePostion
Char
30
仓库地址
否
priceMethod
Char
20
仓库计价法
否
表3.5产品入库单基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductInputFormID
Char
10
产品入库单号
是
ProduceDate
Datetime
8
生产日期
否
storeHouse
Char
20
仓库名称
否
produceDepartment
Char
20
生产部门
否
Dealer
Char
20
经办人
否
houseInType
Char
20
入库类别
否
Remark
Char
100
备注
否
Formdate
Datetime
8
制单日期
否
表3.6入库产品信息表字段说明
字段名称
数据类型
数据长度
说明
主键
productInputFormID
Char
10
入库单号
是
productID
Char
10
产品编号
是
Num
Int
4
数量
否
Price
Float
8
单价
否
表3.7产品出库单基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductOutputFormID
Char
10
产品出库单号
是
ConsignmentFormID
Char
10
发货单号
否
storeHouse
Char
20
仓库名称
否
sellDepartment
Char
20
销售部门
否
Seller
Char
20
销售人员
否
clientName
Char
20
客户名称
否
HouseOutType
Char
20
出库类别
否
Remark
Char
20
备注
否
Formdate
Datetime
8
制单日期
否
Dealer
Char
20
经办人
否
表3.8出库产品信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductOutputFormID
Char
10
出库单号
是
ProductID
Char
10
产品编号
是
Num
Int
4
数量
否
Price
Float
8
单价
否
表3.9产品调拨单基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
productMoveFormID
Char
10
产品调拨单号
是
storeHouseIn
Char
20
入库仓库
否
storeHouseOut
Char
20
出库仓库
否
Dealer
Char
20
经办人
否
houseOutType
Char
20
出库类别
否
Remark
Char
100
备注
否
Formdate
Datetime
8
制单日期
否
表3.10调拨产品信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductMoveFormID
Char
10
产品调拨单号
是
ProductID
Char
10
产品编号
是
Num
Int
4
数量
否
Price
Float
8
单价
否
表3.11产品报损单基本信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductLoseFormID
Char
10
产品报损单号
是
storeHouse
char
20
报损仓库
否
Dealer
Char
20
经办人
否
houseOutType
Char
20
出库类别
否
Remark
Char
100
备注
否
Formdate
Datetime
8
制单日期
否
表3.12报损产品信息表字段说明
字段名称
数据类型
数据长度
说明
主键
ProductLoseFormID
Char
10
报损单号
是
ProductID
Char
10
产品编号
是
Num
Int
4
数量
否
Price
Float
8
单价
否
3.2代码设计
我在应用程序类StoreApp的InitInstance方法中进行初始化。
各模块在连接数据库的时候都需要声明所需的指针,声明如下:
_RecordsetPtrm_pIDRecordset;//记录集指针的个数可根据实际的需要来确定声明几个
_ConnectionPtrm_pConn;
在StoreApp的构造函数中定义数据库的连接字符串:
TreeConnString=_T("DataSource=SaleData;UID=Sa;PWD=;")
数据库的初始化,连接代码如下:
HRESULThRes;
try
{hRes=m_pConn.CreateInstance(_T("ADODB.Connection"));//创建connection对象
m_pConn->ConnectionTimeout=8;//超时八秒
hRes=m_pConn->Open(_bstr_t((LPCTSTR)TreeConnString),_T(""),_T(""),adModeUnknown);//TreeConnString为连接字符串
}
catch(_com_errore)//捕捉异常
{
CStringerrormessage;
errormessage.Format(_T("连接SaleData数据库失败!
\r\n错误信息:
%s"),e.ErrorMessage());
AfxMessageBox(errormessage);//显示错误信息
returnFALSE;
}
hRes=m_pIDRecordset.CreateInstance(_T("ADODB.Recordset"));//创建Recordset对象
if(SUCCEEDED(hRes))
{
hRes=m_pIDRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
m_pConn.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
if(SUCCEEDED(hRes))
{
TRACE(_T("连接成功!
\n"));
}
在要用记录集指针的时候可以用CreateInstance方法创建ADO连接对象。
在程序中使用完数据库时,还需关闭连接,代码如下:
m_pIDRecordset->Close();
3.2.1基本信息模块的实现
图3.2.1单击条目后产品信息对话框
1.建立产品基本信息的CProductInfo对话框类
使用VisualC++6.0的“Insert\Type”为“MFCClass”,“Name”为“CProductInfo”,“Baseclass”为“CDialog”,“DialogID”为“IDD_PRODUCTINFO_FORM”。
然后单击“OK”按钮即可完成CProductInfo类的创建。
2.为模块“基本信息设置”创建菜单项,如表3.2.1所示
表3.2.1基本信息设置菜单说明
资源ID
标题
ID_set_productInfo
产品信息设置
ID_input_staffInfor
雇员信息设置
ID_input_clientInfor
客户信息设置
ID_set_storehouse
仓库信息设置
3.主要代码
(1)重载对话框的OnInitDialog函数
在OnInitDialog函数中主要完成列表框控件的样式设定、列标题添加、数据库中已经存在的数据显示和编辑框及按钮控件可用性设置、为存放仓库组合框控件添加可选项。
步骤如下:
调用列表框控件的InsertColumm()方法插入列,并设定列标题;分别查询storeHouse、product表,并构造相应的查询结果记录集;打开storeHouse的查询结果记录集,将记录集中的数据插入到相应的组合框中;打开product的查询结果记录集,调用列表框控件的InsertItem()和SetItemText()方法将记录集中的数据插入到列表框控件中;调用控件的GetDlgItem()方法,为控件可用性控制变量赋值;调用控件的EnableWindow()方法,设定控件的可用性。
部分代码如下:
style=m_list.GetExStyle();
style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES);//设定列表框风格网格\行选择取消复选框
m_list.SetExtendedStyle(style);
//为列表框控件添加列,并设定列标题
m_list.InsertColumn(0,"商品编号",LVCFMT_LEFT,100);//左对齐宽度100
m_list.InsertColumn(1,"商品名称",LVCFMT_LEFT,100);//左对齐宽度100
//此处省略部分代码
_RecordsetPtrm_pListRecordset;//用于创建一个查询记录集
CS