1、软件工程期末大作业报告实验名称:仓库管理系统姓 名:Xxxx学 院:Xxx系:计算机专 业:Xxxx学 号:Xxxx指导教师:Xxxx实验地址:九章楼 N6 实验日期:2010 2011学年第2学期仓库管理系统一、引言1、目的和背景仓库管理系统是一个企业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学
2、不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对产品库存信息进行管理,拥有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品库存的管理效率,也是企业仓库管理科学化、正规化,与世界接轨的重要条件.因此,开发一个仓库管理系统是很有必要的,具有其特有的技术意义和管理意义。2、设计思想系统开发的总体任务是实现物品的入库操作、出库操作和提货单的管理,对供应商、提货单位的管理功能,以及对库存中物品数目的管理功能等.它能能够为企业提
3、供先进的业务信息管理解决方案,改进传统的工作方试,提高企业所经营物品的供、销、存的运转效率,缩短管理周期,减少因为重复操作而带来的人为差错,减轻管理人员的工作强度、降低管理成本。二、需求分析1、功能需求:产品的信息的显示、删除、录入、修改、出库、结束和清屏。显示:显示产品库存的所有信息.删除:删除产品库存的所有信息.录入:输入并保存产品的所有信息。修改:可随机修改产品库存属性的信息出库:依据产品的出库数量,计算现在的库存量,更新出库数量。2、环境需求:Visual studio 2005,128MB以上的内存空间,windows2000操作系统以及其升级版本完整的MSDN以及测试具备VC+开发
4、集成环境奔腾IV处理器及其升级版本3、扩展需求:仓库管理系统可以支持各种功能的扩展,以及适应以后新的功能需求。4、文档需求:(1)、用户手册 用户运行软件后依照提示先选择要使用的语言种类,然后进入主菜单选取所需执行的功能(显示、删除、录入、修改、出库、结束。(2)、参考文献。(3)、测试技术支持网点。(4)、系统说明书.本系统有中文以及英文两种类型,均能实现显示、删除、录入、修改、出库、结束等功能。三、设计阶段1. 体系设计显示数据2. 结构设计(1)表示层:用于用户交互和数据输入输出的模块.(2)业务层:用于描述数据、控制数据流向、逻辑控制的模块。(3)业务层和逻辑层的分离1。将业务逻辑的表
5、达进行封装,并提交访问接口2。为表示层的调用提供访问接口3。提高业务逻辑重用,降低代码的以来的依赖度。表示层表示层与业务层的关系如图示:业务逻辑层3. 概要设计 系统流程图虽然很好地描绘了具体的系统,但是在系统流程图中把“做什么”和“怎样做”这两类不同范畴的知识混合在一起。我们的目标不是一成不变地复制现有的人工系统,而是开发一个既能够完成现有的所有功能,又能使操作更加规范或者功能更加完备的新系统,因此,应该着重描绘系统的逻辑功能。数据流图描述数据在软件系统内从输入流动到输出的过程中所经受的变换,通常用数据流图建立软件的功能模型.数据流图是系统逻辑功能的图形表示,图中没有任何的具体物理部件,仅仅
6、描绘数据在软件中流动和被处理的逻辑过程,不懂计算机技术的人也容易理解它,因此是分析员与用户之间极好的通信工具。4. 模块设计控制菜单(录入,显示,修改,删除,清屏,退出菜单)Commdity类storage类 shop类 basecoll类 Base类Menu5. 类间关系 Show(menu)Show(void):voiddeleteInfo(kucun:comm0dity *):voidmodity(kucun:comm0dity *):voidoutHou(kucun:comm0dity *):voidrecorde(kucun:comm0dity *):voidShow(void):v
7、oiddeleteInfo(kucun:comm0dity *):voidmodity(kucun:comm0dity *):voidoutHou(kucun:comm0dity *):voidrecorde(kucun:comm0dity *):voidMenuChinese类MenuEnglish类设置产品名称属性 bool setName(char * name):bool获取产品名称 char * getName(void):char *设置产品批次属性 bool setPici(char * pici):bool获取产品批次 char * getPici(void):char *设置
8、产品编号属性 bool setPno(char * no): bool获取产品号 char * getPno(void):char *设置货架号属性 bool setSno(char * sno):bool获取货架号 char * getSno(void):char *设置生产日期 bool setPtime(char * ptime):bool获取生产日期 char * getPtime(void):char *设置保质期 bool setPstore(char * store):bool获取保质期 char * getPstore(void):char *设置库存量 bool setPin
9、num(long innum):bool获取库存量 long getPinnum(void):long设置进货数量 bool setPinfill(long infill):bool获取进货数量 long getPinfill(void):long设置销售量 bool setQulity(long qulity):bool获取销售量 long getQulity(void):long设置入库日期bool setIntime(char * intime):bool 获取入库日期 char * getIntime(void):char *设置出库日期 bool setOuttime(char *
10、outtime):bool获取出库日期 char * getOuttime(void):char *获取信息 char * getInfo(void):char * Commdity类商品名称 Pname31: char产品批次 Ppici7: char 产品编号 Pno10: char 货架号 Sno5:char 生产日期 Ptime11: char保质期 Pstore11: char库存量 Pinnum: long进货数量 Pinfill: long销售数量 Pqulity: long出库日期 Pouttime11: char入库日期 Pintime11: char storage类库存名
11、称 storagename30: char库存编号 storageno4: int库存地址 storageaddress30: char 库存容量 storagecap:long int 按序号查找 commodity * getByIndex(int index): commodity *按名称查找 commodity * getByName(char * Coname):commodity *按照产品批次查找commodity * getByBatch(char * Copici):commodity *按照产品编号查找commodity * getByPno(char * Copno):
12、commodity *按货架号查找 commodity * getBySno(char * Cosno):commodity *按入库日期查找commodity * getByIntime(char * Cointime):commodity *按出库日期查找commodity * getByOuttime(char * Coouttime):commodity *按指定名称修改void reworkByName(char * Coname,int la):void按批次修改 void reworkByBatch(char * Copici,int la):void仓库现有产品总量long a
13、llquality(void):long修改 void modify(commodity * kucun):void按编号修改 void reworkByPno(char * Copno,int la):void按货架号修改 void reworkBySno(char * Cosno,int la):void按名称删除 void removeByName(char * Coname):void按批次删除 void removeByBatch(char * Copici):void按编号删除 void removeByPno(char * Copno):void按货架号删除 void remov
14、eBySno(char * Cosno):void按库存量删除 void removeByInnum(long Coinnum):void按产品名称出库void outstorByName(char * Coname,long qulity,char * Coouttime):void按产品批次出库void outstorByBatch(char * Copici,long qulity,char * Coouttime):void按编号出库 void outstorByPno(char * Copno,long qulity,char * Coouttime):void按货架号出库 void
15、 outstorBySno(char * Cosno,long qulity,char * Coouttime):void英文修改 void modifyE(commodity * kucun):voidshop类重载basecoll的add方法bool add(storage * stor):bool重载按姓名查找方法 storage * getByName(char * xname):storage *重载按编号查找 storage * getByNo(char * xno): storage *重载按地址查询 storage * getByAddress(char * xaddress)
16、: storage *重载按容量查询 storage * getByCap(long xcap): storage *重载获取数量 int getCount(void): int重载按顺序查找 storage * getByIndex(int index: storage * Basecoll类添加 bool add(base * ba): bool按姓名查找 base * getByName(char * xname) base *按序号查找 base * getByIndex(int index): base *按编号查找 base * getByNo(char * xno): base
17、*返回数量 int getCount(void):按名称修改 bool modifyByName(char * xname,base * ba):bool按地址查找 base * getByAddress(char * xaddress): base *按地址修改bool modifyByAdress(char * xaddress, base * ba):bool按容量查找 base * getByCap(long xcap): base *按地址删除 bool removeByAddress(char * xaddress):bool按容量删除 bool removeByCap(long
18、xcap):bool Base类名称 name31:char编号 no5:char地址 address31:char容量 storagecap:long设置名称 void setName(char * xname):void获取名称 char * getName(void):char *设置编号 void setNo(char * xno):void获取编号 char * getNo(void):char *数据覆盖 void Copy(base * ba):void设置地址 void setAddress(char * xaddress):void获取地址 char * getAddress
19、(void):char *设置容量 void setStoragecap(long xcap):void获取容量 long getStoragecap(void):long仓库管理系统类图图形如下:Commodity类storage类shop类baseColl类Base类 四、Commdity类数据字典是关于数据的信息的集合,也就是对数据流图中包含的元素的定义的集合.它的作用是在软件分析和设计过程中提供关于数据的描述信息.数据字典和数据流图共同构成系统的逻辑模型.数据字典定义数据的方法就是对数据自顶向下地分解,当分解到不需要进一步定义,每个和工程有关的人员都清楚其含义的元素时,这种分解过程就结
20、束了。本仓库管理系统根据划分的模块定义了如下数据字典:数据字典如下图示:字段名含义类型长度pname产品名称字符串30Ppici产品批次字符型7Pno产品编号字符型10Sno货架号字符型5Ptime生产日期字符型10Pstore保质期字符型10Pinnum库存量长整型Pinfill进货数量长整型Pquality销售数量长整型Pouttime出库日期字符型10Pintime入库日期字符型10显示库存总量用例图-描述用户交互角度:产品信息的添加产品信息的修改产品信息的删除产品信息的查询清除屏幕退出选择语言显示所有信息产品出库用例图中-子功能菜单的描述按名称修改产品信息的修改按批次修改按编号修改按货
21、架号修改按产品的编号删除产品的货架号删除除产品信息的删除产品的库存量删除按产品名称删除按产品的批次删除按名称查找按批次查找按编号查找产品信息的查询按货架号查找按人库日期查找按出库日期查找按产品名称出库按产品编号出库产品信息的出库按产品批次出库按产品货架号出库状态图:描述运行逻辑状态 显示库存总量 显示所有信息按批次查找按编号查找按货架号查找按批次修改按编号修改按产品的编号删除按产品的批次删除按产品名称删除按货架号修改按出库日期查找按人库日期查找按编号出库按批次出库按货架号出库按产品的库存量删除按产品的货架号删除选择菜单0中文显示清除屏幕/ CLS退出/ return删除/ deleteInfo
22、修改/ modifyInfo查询 / seekInfo添加/ recordeInfo出库/ outstore outHou outHou选择菜单1英文显示选择语言按名称查找按名称出库按名称修改数据流程图子功能图形的描述:五、storage类对仓库的管理功能需求:显示、增加、修改(modify)、删除、进入仓库对商品的管理系统。查询:按仓库的名称、编号、地址、容量查询。增加:增加所有信息。修改:按名称和地址修改.删除:按地址和容量删除。显示:显示所有仓库信息。仓库对商品的管理.操作需求:主菜单:输入08选择功能。0结束, 1-添加、2查询、3修改、4-删除、5-仓库总数、6显示所有仓库信息,7仓
23、库对商品的管理,8清屏.数据字典:字段名含义类型长度name仓库名称字符型30no仓库编号字符型4address仓库地址字符型30storagecap仓库容量整型用例图描述用户交互角度:退出显示所有仓库信息仓库总数仓库信息的查询仓库信息的增加仓库信息的修改仓库信息的删除仓库对商品的管理清屏用例图中子功能菜单的描述按仓库名称查询按仓库编号查询仓库信息的查询按仓库地址查询按仓库容量查询增加仓库的名称增加仓库的编号仓库信息的增加增加仓库的地址增加仓库的容量按仓库的名称修改仓库信息的修改按仓库的编号修改按仓库的容量删除仓库信息的删除按仓库的地址删除状态图:描述运行逻辑状态增加退出删除修改 outHou
24、 查询按仓库名称查询按仓库容量查询增加仓库的地址按仓库地址查询按仓库编号查询增加仓库的名称增加仓库的容量增加仓库的额编号按仓库的编号修改按仓库的名称修改仓库的地址删除按仓库的容量删除仓库总数显示所有仓库信息仓库对商品的管理入口参数设置:接口名称返回值参数说明用途示列getName char*无参返回Pname变量Char c= commdity getName ()getPicichar *无参返回Ppici变量Char*c= commdity - getPici ()getPnochar无参返回Pno变量Charc= commdity getPno ()getSnoChar无参返回Sno变量
25、Char*c= commdity getSno ()getPtimeChar*无参返回Ptime变量Char*c= commdity getPtime ()getPstoreChar无参返回Pstore变量Long c= commdity getPstore ()getPinnumchar *无参返回Pinnum变量 Long c= commdity - getPinnum ()getPinfill char 无参返回Pinfill 变量Long c= commdity - getPinfill ()getQulitychar 无参返回Pqulity 变量Charc= commdity - g
26、etQulity ()getOuttimechar 无参返回P outtime 变量Charc= commdity getOuttime ()getIntimechar 7位数字返回Pintimer变量 Charc= commdity - getIntime ()出口参数设置:接口名称返回值参数说明用途示列setNamebool30位字符设置属性Charc= commdity - set Name ()setPici bool 7位字符 设置属性Charc= commdity - set Pici ()setPnobool 10位字符设置属性Char*c= commdity set Pno (
27、)setSnobool 5位字符 设置属性Charc= commdity set Sno ()setPtimebool 10位字符设置属性Char*c= commdity - set Ptime ()setPstorebool 10位字符设置属性Charc= commdity - set Pstore ()setPinnumbool Long型数字设置属性Long c= commdity - set Pinnum ()setPinfillboolLong型数字设置属性Long c= commdity set Pinfill ()setQualityboolLong型数字设置属性Long c=
28、commdity - set Qulity ()setOuttimebool10位字符设置属性Char*c= commdity set Outtime ()setIntimebool10位字符设置属性Char*c= commdity set Intime ()最终该系统能完成的功能有如下:仓库管理系统文件添加查找修改删除仓库总数退出添加商品添加仓库查询商品查询仓库修改仓库修改商品删除仓库删除商品六、测试计划说明1、功能测试采用手动测试,由于测试的繁琐,没有专门的工具。下面给出各个功能的测试用例.2、用户登录测试用例序号测试目的先决条件测试输入/动作预期测试结果1测试目的:1. 正确输入,用户登
29、录操作能否成功先决条件:1. 服务器端程序已启动2. 数据库中有如下用户信息用户名:admin密码:123456服务器:127.0。0。1(默认)用户名:admin密码:123456点击“登录”按钮1。 由登录界面转到库存查询界面2测试目的:1. 检测系统对空输入的检测程度先决条件:1。 服务器端和客户端程序已启动2.1不输入用户名和密码点击“登录”按钮弹出对话框报错:“用户名或密码不能为空”2.2不输入用户名(其他与测试用例1相同)2.3不输入密码(其他与测试用例1相同)3测试目的:1。 检测系统对用户名和密码项的检测程度先决条件:1. 服务器端程序已启动2. 数据存在如下用户信息:用户名:
30、admin密码:1234563。 数据不存在用户名为“bbb的用户3。1服务器:127。0.0。1用户名:admin密码:123点击“登录”按钮弹出对话框报错:1.“用户名或密码不正确”3.2服务器:127.0.0.1用户名:admin1密码:123456点击“登录”按钮3。3服务器:127.0.0.1用户名:admin1密码:123点击“登录”按钮3.4服务器:127。0.0.1用户名:bbb密码:111点击“登录”按钮3、产品入库管理用例序号测试目的先决条件测试输入/动作预期测试结果1测试目的:1. 对入库产品信息录入操作是否成功先决条件:1。 服务器端程序已启动2. 管理员admin已经
31、登录系统1。 选择入库产品类型,名称,输入产品入库数量,点击“提交数据按钮1. 返回操作成功提示窗口2. 库存数据库已经更新2测试目的:1。 检测对入库产品数量的输入类型为数字时是否正确先决条件:1. 服务器端程序已启动2. 管理员admin已经登录系统1。 选择入库产品类型,名称,输入产品入库数量为:10点击“提交数据按钮1. 返回操作成功提示窗口2. 库存数据库已经更新3测试目的:1。 检测对入库产品数量的输入类型为非数字类型时是否正确先决条件:1. 服务器端程序已启动2。 管理员admin已经登录系统1。 选择入库产品类型,名称,输入产品入库数量为:aa点击“提交数据”按钮1。 返回操作
32、成败提示小窗口,入库数量只能为数字2. 选择入库产品类型,名称,输入产品入库数量为:a10点击“提交数据”按钮1。 选择入库产品类型,名称,输入产品入库数量为:十点击“提交数据”按钮4、入库类型管理用例序号测试目的先决条件测试输入/动作预期测试结果1测试目的:1. 检测对入库产品类型的修改先决条件:1. 服务器端程序已启动2。 管理员admin已经登录系统,进入入库类型管理模块1。 点击“修改”按钮,进入修改入库类型界面,输入修改后的产品类型1。 返回提示窗口:修改成功2测试目的:1。 检测对入库产品类型的删除先决条件:1。 服务器端程序已启动2。 管理员admin已经登录系统,进入入库类型管
33、理模块1. 点击:“删除”按钮1. 返回提示窗口:删除成功3测试目的:1。 检测对入库产品类型的添加先决条件:1. 服务器端程序已启动2。 管理员admin已经登录系统,进入入库类型管理模块1。 点击:“添加入库类型按钮,进入添加入库类型界面,输入添加入库产品类型,点击:“提交数据”按钮1. 返回提示窗口:添加入库产品类型成功5、产品出库测试用例序号测试目的先决条件测试输入/动作预期测试结果1测试目的:1. 对出库产品信息操作是否成功先决条件:1。 服务器端程序已启动2。 管理员admin已经登录系统,进入出库管理模块3。 假设产品库存量充足1。 选择出库产品类型,名称,输入产品出库数量,点击
34、“提交数据按钮1. 提示产品出库是否成功2. 若库存量少于等于库存警戒量,提示出库成功.2测试目的:1. 检测对出库产品数量的输入类型为数字时是否正确先决条件:1. 服务器端程序已启动2. 管理员admin已经登录系统进入出库管理模块3。 假设产品库存量充足1。 选择出库产品类型,名称,输入产品出库数量为:10,点击“提交数据”按钮1. 返回操作成功提示窗口2。 库存数据库已经更新3. 若出库数量少于等于库存量,提示出库成功。3测试目的:1. 检测对出库产品数量的输入类型为非数字类型时是否正确先决条件:1。 服务器端程序已启动2. 管理员admin已经登录系统,进入出库管理模块1. 选择出库产
35、品类型,名称,输入产品出库数量为:aa点击“提交数据”按钮1. 返回操作成败提示小窗口,出库数量只能为数字2。 选择出库产品类型,名称,输入产品出库数量为:a10点击“提交数据按钮3。 选择出库产品类型,名称,输入产品出库数量为:十点击“提交数据”按钮4测试目的:1. 检测对出库产品库存数量是否充足先决条件:1。 服务器端程序已启动2。 管理员admin已经登录系统,进入出库管理模块3. 假设A产品类型为:A1,名称为:食品,库存量为:1001。 选择出库产品类型为:A1,名称:食品,数量:50,点击“提交数据”按钮1。 提示产品出库成功2. 库存数据已更新2。 选择出库产品类型为:A1,名称
36、:食品,数量:150,点击“提交数据”按钮2. 提示产品库存不足,操作不成功。提示进货6、产品入库查询序号测试目的&先决条件测试输入/动作预期测试结果1测试目的:1. 检测对入库产品按:类型与时间、类型与名称、类型与客户查询先决条件:1。 服务器端程序已启动2。 管理员admin已经登录系统,进入产品查询管理模块1. 选择入库产品类型,输入正确时间(格式:#),点击:“查询”按钮2. 选择入库产品类型,产品名称,点击:“查询”按钮3. 选择入库产品类型,输入客户名称,点击:“查询”按钮1。 返回查询列表页面2测试目的:1. 检测对入库产品按:类型与时间查询时时间输入格式是否正确先决条件:1.
37、服务器端程序已启动2. 管理员admin已经登录系统,进入产品查询管理模块3. 正确时间(格式:#)1。 选择入库产品类型,输入时间20101205,点击:“查询”按钮1. 返回查询列表页面2. 选择入库产品类型,输入时间201012,点击:“查询”按钮3. 选择入库产品类型,输入时间1205,点击:“查询”按钮4。 1。 选择入库产品类型,输入时间2010125,点击:“查询”按钮1. 返回:你所输入的时间格式不对,正确格式:#,如:201012053测试目的:1。 检测对入库产品按:类型与产品名称查询时是否存在该产品先决条件:1。 服务器端程序已启动2。 管理员admin已经登录系统,进入
38、产品查询管理模块3. 产品名称:食品存在 产品名称:篮球不存在1. 选择入库产品类型,输入产品名称:食品,点击:“查询”按钮1。 返回查询列表页面2. 选择入库产品类型,输入产品名称:篮球,点击:“查询按钮2. 返回提示窗口:你所输入的产品名不存在4测试目的:1. 检测对入库产品按:类型与客户名称查询时是否存在该客户先决条件:1. 服务器端程序已启动2. 管理员admin已经登录系统,进入产品查询管理模块3。 客户:张三存在 客户:李四不存在1. 选择入库产品类型,输入客户名称:张三,点击:“查询”按钮1。 返回查询列表页面2。 选择入库产品类型,输入客户名称:李四,点击:“查询”按钮2。 返
39、回提示窗口:你所输入的客户名不存在7、产品出库查询序号测试目的先决条件测试输入/动作预期测试结果1测试目的:1. 检测对出库产品按:类型与时间、类型与名称、类型与客户查询先决条件:1. 服务器端程序已启动2. 管理员admin已经登录系统,进入产品查询管理模块1. 选择出库产品类型,输入正确时间(格式:#),点击:“查询”按钮2。 选择出库产品类型,产品名称,点击:“查询按钮3。 选择出库产品类型,输入客户名称,点击:“查询”按钮1. 返回查询列表页面2测试目的:1. 检测对出库产品按:类型与时间查询时时间输入格式是否正确先决条件:1。 服务器端程序已启动2. 管理员admin已经登录系统,进
40、入产品查询管理模块3. 正确时间(格式:#)1. 选择出库产品类型,输入时间20101205,点击:“查询按钮1. 返回查询列表页面2. 选择出库产品类型,输入时间201012,点击:“查询”按钮3。 选择入库产品类型,输入时间1205,点击:“查询”按钮4。 1。 选择出库产品类型,输入时间2010125,点击:“查询”按钮1. 返回:你所输入的时间格式不对,正确格式:#,如:201012053测试目的:1. 检测对出库产品按:类型与产品名称查询时是否存在该产品先决条件:1。 服务器端程序已启动2. 管理员admin已经登录系统,进入产品查询管理模块3。 产品名称:食品存在 产品名称:篮球不存在1. 选择出库产品类型,输入产品名称:食品,点击:“查询按钮1。 返回查询列表页面2. 选择出库产品类型,输入产品名称:篮球,点击:“查询”按钮2。 返回提示窗口:你所输入的产品名不存在4测试目的:1. 检测对出库产品按:类型与客户名称查询时是否存在该客户先决条件:1。 服务器端程序已启动2。 管理员admin
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100