仓库管理系统详细设计报告书.docx
《仓库管理系统详细设计报告书.docx》由会员分享,可在线阅读,更多相关《仓库管理系统详细设计报告书.docx(36页珍藏版)》请在冰豆网上搜索。
仓库管理系统详细设计报告书
《软件工程》期末大作业报告
实验名称:
姓名:
学院:
系:
专业:
学号:
指导教师:
实验地址:
仓库管理系统
Xxxx
Xxx
计算机
Xxxx
Xxxx
Xxxx
九章楼N6
实验日期:
2010-2011学年第2学期
仓库管理系统
一、引言
1、目的和背景
仓库管理系统是一个企业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对产品库存信息进行管理,拥有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品库存的管理效率,也是企业仓库管理科学化、正规化,与世界接轨的重要条件。
因此,开发一个仓库管理系统是很有必要的,具有其特有的技术意义和管理意义。
2、设计思想系统开发的总体任务是实现物品的入库操作、出库操作和提货单的管理,对供应商、提货单位的管理功能,以及对库存中物品数目的管理功能等。
它能能够为企业提供先进的业务信息管理解决方案,改进传统的工作方试,提高企业所经营物品的供、销、存的运转效率,缩短管理周期,减少因为重复操作而带来的人为差错,减轻管理人员的工作强度、降低管理成本。
、需求分析
1、功能需求:
产品的信息的显示、删除、录入、修改、出库、结束和清屏。
显示:
显示产品库存的所有信息。
删除:
删除产品库存的所有信息。
录入:
输入并保存产品的所有信息。
修改:
可随机修改产品库存属性的信息出库:
依据产品的出库数量,计算现在的库存量,更新出库数量。
2、环境需求:
Visualstudio2005,128MB以上的内存空间,windows2000操作系统以及其升级版本
完整的MSDN以及测试
具备VC++开发集成环境
奔腾IV处理器及其升级版本
3、扩展需求:
仓库管理系统可以支持各种功能的扩展,以及适应以后新的功能需求。
4、文档需求:
(1)、用户手册用户运行软件后依照提示先选择要使用的语言种类,然后进入主菜单选取所需执行的功能(显示、删除、录入、修改、出库、结束。
(2)、参考文献。
(3)、测试技术支持网点。
(4)、系统说明书。
本系统有中文以及英文两种类型,均能实现显示、删除、录入、修改、出库、结束等功能。
三、设计阶段
1.体系设计
显示
数据
2.结构设计
(1)表示层:
用于用户交互和数据输入输出的模块。
(2)业务层:
用于描述数据、控制数据流向、逻辑控制的模块。
(3)业务层和逻辑层的分离
1.将业务逻辑的表达进行封装,并提交访问接口2•为表示层的调用提供访问接口3•提高业务逻辑重用,降低代码的以来的依赖度。
表示层与业务层的关系如图示:
表示层
业务逻辑层
3.
概要设计
身份验证
惜通操作员:
身份验证
填写注册信息
仓库、
仓库数据库
~■
仓库号日期范围
销售数据库
供应商设置
系统流程图虽然很好地描绘了具体的系统,但是在系统流程图中把“做什么”和“怎样做”这两类不同范畴的知识混合在一起。
我们的目标不是一成不变地复制现有的人工系统,而是开发一个既能够完成现有的所有功能,又能使操作更加规范或者功能更加完备的新系统,因此,应该着重描绘系统的逻辑功能。
数据流图描述数据在软件系统内从输入流动到输出的过程中所经受的变换,通常用数据流图建立软件的功能模型。
数据流图是系统逻辑功能的图形表示,图中没有任何的具体物理部件,仅仅描绘数据在软件中流动和被处理的逻辑过程,不懂计算机技术的人也容易理解
它,因此是分析员与用户之间极好的通信工具
4.模块设计
控制菜单(录入,显示,修改,删除,清屏,退出菜单)
Commdity类
storage类
shop类
basecoll类
Base类
5.类间关系
MenuChinese类
MenuEnglish类
Show(void):
void
Show(void):
void
deleteInfo(kucun:
comm
deleteInfo(kucun:
comm0
Odity*):
void
dity*):
void
modity(kucun:
comm0di
modity(kucun:
comm0dity
ty*):
void
*):
void
outHou(kucun:
commOd
outHou(kucun:
comm0dit
ity*):
void
y*):
void
recorde(kucun:
comm0d
recorde(kucun:
comm0dit
ity*):
void
y*):
void
Commdity类
商品名称
Pname[31]:
char
产品批次
Ppici[7]:
char
产口口编号
Pno[10]:
char
货架号
Sno[5]:
char
生产日期
Ptime[11]:
char
保质期
Pstore[11]:
char
库存量
Pinnum:
long
进货数量
Pinfill:
long
销售数量
Pqulity:
long
出库日期
Pouttime[11]:
char
入库日期
Pintime[11]:
char
设置产品名称属性
boolsetName(char*name):
bool
获取产品名称
char*getName(void):
char*
设置产品批次属性
boolsetPici(char*pici):
bool
获取产品批次
char*getPici(void):
char*
设置产品编号属性
boolsetPno(char*no):
bool
获取产品号
char*getPno(void):
char*
设置货架号属性
boolsetSno(char*sno):
bool
获取货架号
char*getSno(void):
char*
设置生产日期
boolsetPtime(char*ptime):
bool
获取生产日期
char*getPtime(void):
char*
设置保质期
boolsetPstore(char*store):
bool
获取保质期
char*getPstore(void):
char*
设置库存量
boolsetPinnum(longinnum):
bool
获取库存量
longgetPinnum(void):
long
设置进货数量
boolsetPinfill(longinfill):
bool
获取进货数量
longgetPinfill(void):
long
设置销售量
boolsetQulity(longqulity):
bool
获取销售量
longgetQulity(void):
long
设置入库日期boolsetIntime(char*intime):
bool
获取入库日期
char*getlntime(void):
char*
设置出库日期boolsetOuttime(char*outtime):
bool
获取出库日期
char*getOuttime(void):
char*
获取信息
char*getlnfo(void):
char*
storage类
库存名称
storagename
[30]:
char
库存编号
storageno
[4]:
int
库存地址
storageaddress[30]:
char
库存容量
storagecap
:
longint
按序号查找commodity*getByIndex(intindex):
commodity*
按名称查找commodity*getByName(char*Coname)commodity*
按照产品批次查找commodity*getByBatch(char*Copici):
commodity*
按照产品编号查找commodity*getByPno(char*Copno):
commodity
按货架号查找commodity*getBySno(char*Cosno):
commodity
按入库日期查找commodity*getBylntime(char*Cointime):
commodity*
按出库日期查找commodity*getByOuttime(char*Coouttime):
commodity
按指定名称修改voidreworkByName(char*Coname,intla):
void按批次修改voidreworkByBatch(char*Copici,intla):
void
按名称删除
void
按批次删除
void
按编号删除
void
按货架号删除
void
按库存量删除
void
voidmodify(commodity*kucun):
voidvoidreworkByPno(char*Copno,intvoidreworkBySno(char*Cosno,int
la):
void
la):
void
修改
按编号修改按货架号修改
仓库现有产品总量longallquality(void):
longremoveByName^har*Coname):
voidremoveByBatch(char*Copici):
voidremoveByPno(char*Copno):
voidremoveBySno(char*Cosno):
voidremoveBylnnum(longCoinnum):
void
按产品名称出库voidoutstorByName(char*Coname,longqulity,char*Coouttime):
void
按产品批次出库voidoutstorByBatch(char*Copici,longqulity,char*Coouttime):
void
按编号出库voidoutstorByPno(char*Copno,longqulity,char*Coouttime):
void
按货架号出库voidoutstorBySno(char*Cosno,longqulity,char*Coouttime):
void
英文修改voidmodifyE(commodity*kucun):
void
shop类
重载basecoll的add方法booladd(storage*stor):
bool重载按姓名查找方法storage*getByName(char
storage*getByNo(storage*getByAddress(
storage*getByCap(longxcap):
storageintgetCount(void):
int
storage*getByIndex(intindex:
storage*
Basecoll类
添加booladd(base*ba):
bool
按姓名查找base*getByName(char*xname)base*按序号查找base*getBylndex(intindex):
base*按编号查找base*getByNo(char*xno):
base*返回数量intgetCount(void):
按名称修改boolmodifyByName(char*xname,base*ba):
bool按地址查找base*getByAddress(char*xaddress):
base*按地址修改boolmodifyByAdress(char*xaddress,base*ba):
bool
按容量查找base*getByCap(longxcap):
base*
按地址删除boolremoveByAddress(char*xaddress):
bool按容量删除boolremoveByCap(longxcap):
bool
Base类
名称name[31]:
char
编号no[5]:
char
地址address[31]:
char
容量storagecap:
long
设置名称获取名称设置编号获取编号数据覆盖设置地址获取地址设置容量获取容量
voidsetName(char*xname):
voidchar*getName(void):
char*voidsetNo(char*xno):
voidchar*getNo(void):
char*voidCopy(base*ba):
void
voidsetAddress(char*xaddress):
voidchar*getAddress(void):
char*voidsetStoragecap(longxcap):
voidlonggetStoragecap(void):
long
仓库管理系统类图图形如下:
Commodity类
storage类
shop类
baseColl类
Base类
四、Commdity类
数据字典是关于数据的信息的集合,也就是对数据流图中包含的元素的定义的集合。
它的作用是在软件分析和设计过程中提供关于数据的描述信息。
数据字典和数据流图共同构成系统的逻辑模型。
数据字典定义数据的方法就是对数据自顶向下地分解,当分解到不需要进-
步定义,每个和工程有关的人员都清楚其含义的元素时,这种分解过程就结束了
本仓库管理系统根据划分的模块定义了如下数据字典:
数据字典如下图示:
字段名
含义
类型
长度
pname
产品名称
字符串
30
Ppici
产品批次
字符型
7
Pno
产口口编号
字符型
10
Sno
货架号
字符型
5
Ptime
生产日期
字符型
10
Pstore
保质期
字符型
10
Pinnum
库存量
长整型
Pinfill
进货数量
长整型
Pquality
销售数量
长整型
Pouttime
出库日期
字符型
10
Pintime
入库日期
字符型
10
用例图---描述用户交互角度:
用例图中一子功能菜单的描述
产品信息的删除
产品的库存量删除
按产品名称删除
产品的货架号删除除
按产品的编号删除
按产品的批次删除
状态图:
描述运行逻辑状态
o
数据流程图子功能图形的描述:
五、storage类
对仓库的管理
功能需求:
显示、增加、修改(modify)、删除、进入仓库对商品的管理系统。
查询:
按仓库的名称、编号、地址、容量查询。
增加:
增加所有信息。
修改:
按名称和地址修改。
删除:
按地址和容量删除。
显示:
显示所有仓库信息。
仓库对商品的管理。
操作需求:
主菜单:
输入0~8选择功能。
0—结束,1—添加、2—查询、3—修改、4—删除、5—仓库总数、6—显示所有仓库信息,7—仓库对商品的管理,8—清屏。
数据字典:
字段名
含义
类型
长度
name
仓库名称
字符型
30
no
仓库编号
字符型
4
address
仓库地址
字符型
30
storagecap
仓库容量
整型
用例图---描述用户交互角度:
退出
用例图中一子功能菜单的描述
仓库信息的删除
状态图:
描述运行逻辑状态
查询
按仓库名
称查询
按仓库容量查询
<>
按仓库地址查询
按仓库编号查询
修改
按仓库的名称修改
按仓库的编号修改
仓库总数
入口参数设置:
接口名称
返回值
参数说明
用途
示列
getName
char*
无参
返回Pname变
量
Char*c=commdity->getName()
getPici
char*
无参
返回Ppici变量
Char*c=commdity->getPici()
getPno
char
无参
返回Pno变量
Char*c=commdity->getPno()
getsno
Char*
无参
返回Sno变量
Char*c=commdity->getSno()
getPtime
Char*
无参
返回Ptime变量
Char*c=commdity->getPtime()
getPstore
Char*
无参
返回Pstore变
Longc=commdity->getPstore()
量
getPinnum
char*
无参
返回Pinnum变
量
Longc=commdity->getPinnum()
getPinfill
char*
无参
返回Pinfill变量
Longc=commdity->getPinfill()
getQulity
char*
无参
返回Pqulity变量
Char*c=commdity->getQulity()
getOuttime
char*
无参
返回Pouttime
变量
Char*c=commdity->getOuttime()
getIntime
char*
7位数字
返回Pintimer
变量
Char*c=commdity->getlntime()
出口参数设置:
接口名称
返回值
参数说明
用途
示列
setName
bool
30位字符
设置属性
Char*c=commdity->set
Name()
setPici
bool
7位字符
设置属性
Char*c=commdity->setPici
()
setPno
bool
10位字符
设置属性
Char*c=commdity->setPno()
setSno
bool
5位字符
设置属性
Char*c=commdity->setSno
()
setPtime
bool
10位字符
设置属性
Char*c=commdity->setPtime()
setPstore
bool
10位字符
设置属性
Char*c=commdity->set
Pstore()
setPinnum
bool
Long型数字
设置属性
Longc=commdity->setPinnum()
setPinfill
bool
Long型数字
设置属性
Longc=commdity->setPinfill()
setQuality
bool
Long型数字
设置属性
Longc=commdity->setQulity()
setOuttime
bool
10位字符
设置属性
Char*c=commdity->setOuttime()
setIntime
bool
10位字符
设置属性
Char*c=commdity->set
Intime()
最终该系统能完成的功能有如下:
六、测试计划说明
1、功能测试
采用手动测试,由于测试的繁琐,没有专门的工具。
下面给出各个功能的测试用例。
2、用户登录测试用例
序号
测试目的&先决条件
测试输入/动作
预期测试结果
1
测试目的:
1.正确输入,用户登录操作能否成功
先决条件:
1.服务器端程序已启
动
2.数据库中有如下用户信息
用户名:
admin密码:
123456
服务器:
127.0.0.1(默认)用户名:
admin
密码:
123456
点击“登录”按钮
1.由登录界面转到库存查询界面
密码:
111
点击“登录”按钮
3、产品入库管理用例
序号
测试目的&先决条件
测试输入/动作
预期测试结果
1
测试目的:
1.对入库产品信息录入
操作是否成功
先决条件:
1.服务器端程序已启动
2.管理员admin已经登
录系统
1.选择入库产品类型,名称,输入产品入库数量,点击“提交数据”按钮
1.返回操作成功提示窗口
2.库存数据库已经更新
2
测试目的:
1.检测对入库产品数量的输入类型为数子时是否正确
先决条件:
1.选择入库产品类型,名称,输入产品入库数量为:
10点击“提交数据”按钮
1.返回操作成功提示窗口
2.库存数据库已经更新
1.服务器端程序已启动
2.管理员admin已经登
录系统
3
测试目的:
1.检测对入库产品数量的输入类型为非数字类型时是否正确先决条件:
1.服务器端程序已启动
2.管理员admin已经登
录系统
1.选择入库产品类型,名称,输入产品入库数量为:
aa点击“提交数据”按钮
1.返回操作成败提示小窗口,入库数量只能为数字
2.选择入库产品类型,名称,输入产品入库数量为:
a10点击“提交数据”按钮
1.选择入库产品类型,名称,输入产品入库数量为:
十点击“提交数据”按钮
4、入库类型管理用例
序号
测试目的&先决条件
测试输入/动作
预期测试结果
1
测试目的:
1.检测对入库产品类型的修改
先决条件:
1.服务器端程序已启动
2.管理员admin已经登录系统,进入入库类型管理模块