![软件工程课程设计文档商店仓库管理系统样本_第1页](http://file4.renrendoc.com/view11/M02/17/18/wKhkGWX4poqAXAT_AAC3pcdMcAA249.jpg)
![软件工程课程设计文档商店仓库管理系统样本_第2页](http://file4.renrendoc.com/view11/M02/17/18/wKhkGWX4poqAXAT_AAC3pcdMcAA2492.jpg)
![软件工程课程设计文档商店仓库管理系统样本_第3页](http://file4.renrendoc.com/view11/M02/17/18/wKhkGWX4poqAXAT_AAC3pcdMcAA2493.jpg)
![软件工程课程设计文档商店仓库管理系统样本_第4页](http://file4.renrendoc.com/view11/M02/17/18/wKhkGWX4poqAXAT_AAC3pcdMcAA2494.jpg)
![软件工程课程设计文档商店仓库管理系统样本_第5页](http://file4.renrendoc.com/view11/M02/17/18/wKhkGWX4poqAXAT_AAC3pcdMcAA2495.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息工程学院软件工程课程设计报告本题目:仓库管理系统专业班级:计算机092班学生:易小艳05号熊晶10号指引教师:曾婕7月目录一、问题定义 2二、开发筹划 32.1、项目概述 32.2、实行筹划 32.3、支持条件 32.4、专项筹划要点 3三、可行性报告 43.1、项目定义 43.2、技术可行性 43.3、市场可行性 43.4、产品方略 43.5、成本—效益分析(假设) 4四、需求分析 64.1、编写目 64.2、功能分析 74.2.1功能需求 74.2.2顾客需求 74.3、系统流程图 84.4、数据描述 94.4.1、建立数据流图 94.4.2、建立数据字典 104.4.3、建立E-R图 124.4.4、建立状态图 14五、概要设计 165.1、系统层次模块图设计 165.2、接口设计 165.3、出错解决设计 165.4、安全设计 165.5、维护设计 16六.数据库设计 176.1.数据库逻辑设计 176.2.数据库物理构造设计 19七、详细设计 207.1、系统模块设计 207.2、程序设计 23八、测试报告 368.1、测试环境 368.2、系统测试 36九、开发总结 41十、顾客手册 42十一、附录 4411.1开发技术简介 4411.2系统实现核心代码 4511.3参照文献 57一、问题定义仓库管理系统是当代仓储公司进行货品管理和解决业务操作系统。它可以实现本地一种或几种仓库精细化管理,也可实现制造公司、物流公司、连锁业在全国范畴内、异地多点仓库管理;它可以对货品存储和出货等进行动态安排,可以对仓储作业流程全过程进行电子化操作;可以与客服中心建立数据接口使客户通过互联网实现远程货品管理,可以与公司ERP系统实现无缝连接。在当代公司中,仓库管理是一项繁琐复杂工作,每天要解决大量单据数据。为及时结清每笔业务,盘点库存和货品流动状况,保证公司生产用料以及货品安全,库管人员要耗费大量人力物力和时间来作数据记录记录工作。众所周知,仓库管理是一种既麻烦又单调工作,每天都是重复记录某些货品存入与取出,并且货品种类繁多,存取有很大随机性,这样为工作人员带来了很大不便,在操作过程中,由于人为计算出错率很高,一旦出错改正也很困难,这样简朴繁重工作要诸多人来做,为经营者增长了诸多成本。因此开发一种可行仓库管理系统是十分必要。本系统以MySQL作为后台数据库,以java语言来开发,不但实现了仓库管理自动化,同步也提高了工作效率。本系统由如下几种模块构成:基本信息管理、入库管理、在库管理、出库管理、报表管理。二、开发筹划2.1、项目概述(1)项目背景开发系统名称:仓库管理系统项目任务提出者:熊晶开发者:易小艳熊晶(2)工作内容可行性研究、需求分析、概要设计、数据库设计、详细设计、系统测试等。(3)产品仓库管理系统(4)验收原则①为了以便顾客操作,该系统提供了某些提示窗口,使顾客可以按照提示语句完毕各项操作。②为了实现仓库安全有效管理,系统设立了顾客登陆首界面,管理员和员工需要对的顾客名和密码。③本系统查询功能可以按照货品编号、日期、指数等项目进行查询或所有浏览。④本系统修改功能提供了逐条察看方式修改删除和以货品编号、日期、指数等方式进行查询功能,并且本着直观、以便原则进行设计窗口。⑤本系统包括“数据添加”、“数据查询”、“数据修改”、“顾客管理”、“退出”等功能。本系统包括数据库重要用于存储仓库管理信息和管理员信息。(5)完毕项目最迟期限:.07.062.2、实行筹划(1)工作任务分解及人员分工程序编写重要负责人:熊晶,文档编写重要负责人:易小艳(2)预算20元——电费以及文档打印费用。2.3、支持条件计算机支持硬件:CPU型号为Pentium3以上,内存512M系统:Windowsxp/vista/7软件:mysql,myeclipse/eclipse,MicrosoftOfficeVisio2.4、专项筹划要点操作简便易用:无论什么水平操作人员,简便操作办法是一致性规定,同步在系统操作界面设计中也应尽量地把惯用子模块添加至主系统窗口中,实现“一触即开”窗口。适应性:应当明确是,实际操作人员对计算机理解限度和实际操作能力各不相似,因而软件应具备一定适应能力。透明性:在系统设计中,应充分运用计算机在解决数据方面能力,从而尽量减轻操作人员工作,实现一定意义上透明操作,即顾客不必懂得模块功能实现详细过程,只需要设立一定操作选项,计算机即可按照顾客规定得到所需要解决成果,详细操作细节对顾客是“透明”。点面结合:再数据解决方面,一方面应强调数据成批解决能力,以尽量简化操作人员解决工作,另一方面也应十分注重对单独数据解决能力。三、可行性报告3.1、项目定义仓库在公司整个供应链中起着至关重要作用,如果不能保证对的进货和库存控制及发货将会导致管理费用增长,服务质量难以得到保证,从而影响公司竞争力.老式简朴、静态仓库管理已经无法保证公司各种资源高效运用。当前仓库作业和库存控制作业十分复杂化、多样化,仅靠人工记忆和手工录入,不但费时费力,并且容易出错,给公司带来巨大损失.为了克服以上问题,必要使仓储管理和计算机系统互相结合起来,以使仓库服务得到有效执行和监督.仓库管理系统可以对仓储各环节实行全过程控制管理,并可对货品进行入库和出库操作管理,从而实现仓储作业流程全过程电子化操作.此外还可以依照客户需求制作各种合理记录报表.3.2、技术可行性本系统产品用java编程与数据库相结合办法进行开发,而仓库管理系统实现理论及技术已经日趋成熟,因而仓库管理系统应用软件开发手段是完全可行。3.3、市场可行性当下,市场经济迅速发展,网上购物已成潮流,在这种状况下,物流仓储等行业发展也在以一种惊人速度发展,要想保证仓库出入货品与账目一致性,必要浮现一种专门、特定意义、特殊功用管理系统浮现,即仓库管理系统,在网上调查过程中,咱们发现,诸多业主和个体经营户也急需一种只适合其专门行业管理系统。然而,市场中也是存在了诸多十分专业仓库管理系统,但是介于其收费特性和内容广泛应用性,而导致在顾客使用简便性和易用性受到了打击,因此在这种社会现状驱使下,咱们小组讨论决定开发一种简朴通用仅仅限于仓库管理管理系统,而不涉及进货和销售方面问题,于是仓库管理系统便应运而生。3.4、产品方略在该项目开发过程中,所有使用实验室及图书馆现成设备和资料。因而该系统开发在经济方面也是可行。3.5、成本—效益分析(假设)普通来说,咱们客户开发这个软件系统是一项投资,因此固然盼望获得很大经济效益。经济效益普通体现为减少运营费用或(和)增长收入。因此咱们进行成本/效益分析来从经济角度分析开发咱们设备管理系统与否划算,从而协助客户组织负责人做出与否投资这项开发工程决定。下面咱们从如下几种方面进行分析。(1)成本分析软件开发成本重要体现为人力消耗(乘以平均工资则得到开发费用)。因成本预计不是精准科学。因而我采用了两种不同预计技术以便互相校检。代码行技术代码行技术是比较简朴定量估算办法,把开发每个软件功能成本和实现这个功能需要用源代码行数联系起来。普通依照经验和历史数据预计实现一种功能需要源程序行数。而在咱们组设计下,初步得出设备管理系统源代码行数。得出源代码行数后来,用每行代码平均成本乘以行数就可以拟定软件成本,因此咱们得出此软件成本为成本=*10=0任务分解技术任务分解技术是一方面把咱们设备管理系统分解为若干个相对独立任务。在分别预计每个单独开发任务成本,最后累加起来得出软件开发工程总成本。预计每个任务成本时,普通先预计完毕该项任务需要用人力(以人月为单位),再乘以每人每月平均工资而得出每个任务成本。下面是咱们按开发阶段划分任务做出人力成本。表3-1各个开发阶段需要使用人力比例及工资表得出其总成本(1200*5+1000*10+800*25+500*20+10*600*(20/100)*1.5=21000(元)(2)运营费用分析运营费用取决于设备管理系统寻常操作费用(操作员人数,工作时间,消耗物资等等)和维护费用。(3)效益分析咱们设备管理系统经济效益在于因使用此系统而增长收入加上使用此系统可以节约运营费用。(4)成本/效益分析应当比较新系统开发成本和经济效益以便从经济角度判断这个系统与否值得投资,但是,投资是当前进行,效益是将来获得,不能简朴比较成本和效益,应当考虑货币时间价值。①货币时间价值通惯用利率形式表达货币时间价值。假设年利率为i,如果当前存入P元,则n年后可以得到钱数为F=P(1+i)^n在咱们软件分析中假定年利率为12%,预测可协助咱们客户每年节约25000元,则运用货币限制计算公式就可以算出每年预测节约钱当前价值表3-2将来收入折算成当前值表②投资回收期通惯用投资回收期衡量从来开发工程价值。所谓投资回收期就是使合计经济效益等于最初投资所需要时间。显然,投资回收期越短就能越快获得利润,因而这项工程也就越值得投资。在本软件中,一年后来可以节约22321.4元,和最初投资(0元)比较。因而,投资回收期是0.98年③纯收入纯收入是指在整个生命周期值内系统合计经济效益(折合成当前值)与投资之差。这相称于比较投资开发一种软件系统和把钱存在银行这两种方案优劣。如果纯收入为零,则工程预期效益和在银行存款同样,如果纯收入不大于零,那么这项工程显然不值得投资。这本系统开发中工程纯收入预测是90119.4—0=70119.4(元)④投资回收率把资金存入银行货代给其她公司可以获得利息,通惯用年利率衡量利息多少。类似也可以计算投资回收率,用它衡量投资效益大小,并且可以把她和年利率相比较,在衡量工程经济效益时,它是最重要才靠数据。以至当前投资额,并且已经预计出将来每年可以获得经济效益,那么,给定软件使用寿命之后,咱们可以计算其投资回收率为P=F1/(1+j)+F2/(1+j)^2+……+Fn/(1+j)^n其中:P是当前投资额;Fi是第i年终效益(i=1,2,3,……,n),n是系统使用寿命;j是投资回收率。(假设系统寿命n=5)高阶代数方程解出投资回收率因此,通过以上成本效益分析,得出在经济上,咱们设备管理系统是可行、值得投资。四、需求分析4.1、编写目(1)开发本系统目在于代替手工管理、记录报表等工作,详细规定涉及:数据录入:录入顾客信息、商品信息、供货商信息、入库信息、出库信息、退货信息、客户信息等信息;数据修改:修改商品信息、供货商信息、顾客信息、客户信息等信息;数据记录:记录记录每次仓库进货和出货时商品数量、种类、总价值;数据查询:系统提供三种查询条件:活物编号、日期、指数,选取不同查询条件,会得到不同查询成果;数据备份:定期对数据库做备份,以免数据库在遇到意外破坏时候可以恢复数据库,从而减少破坏导致损失。(2)术语定义静态数据——系统固化在内描述系统实现功能一某些数据。动态数据——在软件运营过程中顾客输入后系统输出给顾客一某些数据,也就是系统要解决数据。数据字典——数据字典名字都是某些属性与内容抽象与概括,它们特点是数据表“严密性”和“精准性”。4.2、功能分析4.2.1功能需求(1).仓库管理系统,实现功能:入库登记:商品入库记录;出库登记:库存商品出库;在库商品查询:库存物品查询;出库入库信息查询:准时间,操作管理员查询操作信息;管理员信息管理:管理员登记,查询,删除;(2).附加实现功能: 登录界面:实现管理员员和客户不同角色登录; 界面转换:分别创立不同窗口,并及时删除浏览过窗口; 分角色设定使用权限:管理员和客户使用权限不同;(3).异常解决: 操作错误:信息输入错误等; 常规错误:仓库物品数量局限性等;4.2.2顾客需求依照顾客需求,该系统应当实现如下功能:(1)进、出库管理。对进、出库信息进行记录。(2)查询功能。仓库管理对查询规定高,通过主菜单记录当前操作顾客顾客编号,保证了对进、出库信息录入负责人确认。(3)资料管理与库存报表生成。资料管理涉及了人员信息管理,财政支出信息管理,以及各项业务单据资料管理。报表重要分类为:日报表,月报表,销售报表,入库报表等等。(4)由于计算机能存贮大量数据,并且数据只要一次存入,便可多次重复使用,因此管理数据达到完整,统一,原始记录能保证及时,精确。(5)许多重复性工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事某些信息分析,判断,决策等创造性工作。4.3、系统流程图为了便于问题阐述与展开,在此加入了系统流程图内容。通过对仓库管理过程理解,可以懂得仓库管理系统管理仓库信息大体过程。一方面,顾客登陆仓库管理系统,通过一系列对系统操作后,由系统返回给顾客相应成果。图1描绘了这个大体流程。 顾客顾客仓库管理系统顾客输入数据反馈成果图4-1仓库管理系统大体解决过程接下来对图1黑匣子(仓库管理系统)内容进行分解。通过仔细分析与理解,拟定顾客对系统整个操作过程:顾客登陆仓库管理系统,验证顾客身份与权限,审核后操作仓库管理系统,顾客可以查询仓库里产品信息,管理员权限可修改和删除有关仓库信息,顾客还可以打印有关报表,还可以查看协助文档。系统会依照顾客操作,予以相应显示与解决成果。图2是分析后得出系统流程图。 图4-2仓库管理系统流程图 4.4、数据描述4.4.1、建立数据流图系统流程图虽然较好地描绘了详细系统,但是在系统流程图中把“做什么”和“如何做”这两类不同范畴知识混合在一起。咱们目的不是一成不变地复制既有人工系统,而是开发一种既可以完毕既有所有功能,又能使操作更加规范或者功能更加完备新系统,因而,应当着重描绘系统逻辑功能。数据流图描述数据在软件系统内从输入流动到输出过程中所经受变换,通惯用数据流图建立软件功能模型。数据流图是系统逻辑功能图形表达,图中没有任何详细物理部件,仅仅描绘数据在软件中流动和被解决逻辑过程,不懂计算机技术人也容易理解它,因而是分析员与顾客之间极好通信工具。依照前面划分系统模块可以得到如下数据流图:1.仓库管理系统整体数据流图顾客顾客顾客选取操作1系统管理D1仓库数据2输入解决3维护模块4协助模块顾客相应成果图4-3仓库管理系统数据流图2.细化“系统管理”数据流图 1.11.1客户管理1.2顾客管理1.3退出系统D2客户资料D3顾客资料顾客用户数据图4-4对“系统管理”细化3.细化“输入解决”数据流图 2.12.1产品入库D1仓库数据2.2产品出库2.3产品查询顾客用户数据图4-5对“输入解决”细化4.4.2、建立数据字典数据字典是关于数据信息集合,也就是对数据流图中包括元素定义集合。它作用是在软件分析和设计过程中提供关于数据描述信息。数据字典和数据流图共同构成系统逻辑模型。数据字典定义数据办法就是对数据自顶向下地分解,当分解到不需要进一步定义,每个和工程关于人员都清晰其含义元素时,这种分解过程就结束了。本仓库管理系统依照划分模块定义了如下数据字典:①顾客信息表表名:host内容:记载顾客登陆基本信息构成:列名数据类型长度精度小数备注useridint11100核心字(主键)usernamechar1000不为空userpwdchar1000不为空组织:按录入顺序。②管理员信息表表名:manager内容:记载客户有关基本信息构成:列名数据类型长度精度小数备注Midint11100核心字(主键)Mnamevarchar1000不为空Mageint800不为空MCodechar20100不为空Msexchar800不为空MPositionchar1000不为空MtimeSmallint600不为空MsalaryDouble802不为空组织:按录入顺序。③产品信息表表名:goods内容:记载产品基本信息构成:列名数据类型长度精度小数备注Gidint11100核心字(主键)Gcodechar1000不为空Gnamechar1000不为空Gtypechar1000不为空Gnumint1000不为空Gpricedouble802不为空Gsizechar1000不为空Gweightdouble802不为空Gcolorchar1000不为空Gplacevarchar255000不为空Gincodechar2000不为空GVdouble802不为空组织:按录入顺序。④入库信息表表名:putin内容:记载产品入库基本信息构成:列名数据类型长度精度小数备注Pidint11100核心字(主键)Pcodechar2000不为空PMcodechar2000不为空PtimeDate00不为空组织:按录入顺序。⑤出库信息表表名:sendout内容:记载产品出库基本信息构成:列名数据类型长度精度小数备注Sidint11100核心字(主键)Scodechar2000不为空SMcodechar2000不为空StimeDate00不为空组织:按录入顺序。4.4.3、建立E-R图 为了把顾客数据规定清晰、精确地描述出来,系统分析员普通建立一种概念性数据模型,概念性数据模型是一种面向问题数据模型,它描述从顾客角度看到数据。普通使用实体-联系图来建立数据模型,可以把实体-联系图简称为E-R图,相应地可以把E-R图描绘数据模型称为E-R模型。E-R图中包括了实体(即数据对象)、关系和属性等三种基本成分。普通,用矩形框代表实体,用连接有关实体菱形框表达关系,用椭圆或圆角矩形表达实体或关系属性,并用直线把实体(或关系)与其属性连接起来。 顾客顾客顾客号顾客名顾客口令顾客权限图4-6顾客E-R图 客户客户客户号客户名联系地址邮编电话号图4-7客户E-R图 产品产品号产品产品号产品名生产日期价格类型图4-8产品E-R图 仓库入库仓库入库客户顾客产品类型属于出库仓库1NMPNPMNQR图4-9仓库管理系统总E-R图4.4.4、建立状态图状态图(也叫状态转换图)通过描绘系统状态及引起系统转换事件来表达系统行为。此外,状态图还指明了作为特定事件成果系统将做哪些动作。因而,可以用状态图建立软件系统行为模型。状态是可以被观测到系统行为模式,一种状态代表系统一种行为模式,状态规定了系统对事件响应方式。在状态图中第一状态重要有:初态、终态和中间状态,在一张状态图中只能有一种初态,而终态则可以有0个至各种。在状态图中,初态用实心圆表达,终态用一对同心圆(内圆为实心圆)表达。中间状态用圆角矩形表达,可以使用两条水平横线把它提成上、中、下3个某些,分别防止状态名、状态变量和活动表。事件是在某个特定期刻发生事情,它是对引起系统动作或(或)从一种状态转换到另一种状态外界事件抽象。状态图中两个状态之间带箭头连线表达状态转换,箭头指明了转换方向。状态转换普通是由事件触发,在这种状况下应当在表达状态转换箭头上标出触发事件表达式。如下是仓库管理系统状态图:登陆界面验证帐户登陆界面验证帐户输入密码不合法帐户验证权限合法帐户查询、修改自身信息;修改其她顾客权限;添加新顾客;查询、修改、注销、添加客户信息;查询、修改、添加、删除产品信息;查询、修改、添加、删除出、入库信息查询、修改自身信息;查询客户信息;查询出、入库信息;查询产品信息管理权限普通权限图4-10仓库管理系统状态图五、概要设计5.1、系统层次模块图设计依照系统需求,可初步设计该系统层次模块图如右图:重要涉及八个模块:登录模块,进入系统后选取系统操作模块,再分别对仓库进行管理各模块。图5-1系统重要层次模块图5.2、接口设计 (1)外部接口(a)顾客界面采用图形顾客界面(GUI),包括菜单、按钮、对话框等元素。(b)软件接口软件运营于WINDOWS操作系统WINDOWS及以上操作平台,不支持mac及UNIX。(c)硬件接口最低配备:CPU P3 1.6GHz 内存256M 硬盘30G5.3、出错解决设计(1)系统应具备相称健壮性,避免或减少由系统错误所导致数据库损坏。(2)对核心性操作,如删除等提供警告和确认机制。5.4、安全设计系统提供严格身份验证机制和密码管理以及权限设立。5.5、维护设计系统严格按照设计规范进行设计,并保持各阶段文档完整性,为后来对软件维护打好基本。六.数据库设计6.1.数据库逻辑设计由于本管理系统没有海量数据需要存储,因此没有必要使用ORACLE,且ORACLE链接和服务器配备也是有一定问题,而MySQL在安全性和可靠性方面足以胜任,因此在测试阶段咱们选用了MySQL作为数据库系统应用。数据库通信接口采用了ODBC(opendatabaseconnectivity,开放式数据库互联),目是将所有底层操作所有隐藏在ODBC后台驱动程序内核中。对于程序员来说,这意味着,只要构建了一种数据库连接,便可以用统一API(应用程序编程接口)实现对数据库读写操作。当前,ODBC提供了大量数据库支持,这也为咱们后期改进创造了条件。依照对程序功能模块划分做出全面分析后,可以列出如下数据项和数据构造:①顾客信息表(a)(b)图6-1系统顾客信息表②管理员信息表(a)(b)图6-2商品信息表③入库登记表(a)(b)图6-3入库信息表④出库登记表(a)(b)表6-4出库信息表⑤商品信息表(a)(b)图6-5商品信息表6.2.数据库物理构造设计数据库物理构造设计是指为给顶一种逻辑数据模型选取最适合应用环境物理构造。关系数据库物理构造重要是指数据存取办法和存储构造。数据库物理构造设计分为两个某些,一方面是拟定数据库物理构造,另一方面是对所设计物理构造进行评估。⒈拟定数据库物理构造为拟定数据库物理构造,设计人员必要理解下面几种问题。①详细理解给定DBMS功能和特点,特别是该DBMS所提供物理环境和功能;②熟悉应用环境,理解所设计应用系统中各某些重要限度、解决频率、对响应时间规定,并把它们作为物理构造设计过程中平衡时间和空间效率时根据;③理解外存设备特性,如分块原则、块因子大小规定、设备I/O特性等。在对上述问题进行了全面理解之后,就可以进行物理构造设计了。普通地,物理构造设计内容涉及如下几种方面。①拟定数据存储构造。在此过程中需考虑存取时间、空间效率和维护代价间平衡,如在引入冗余数据以加快存取速度时应兼顾系统空间效率。②选取适当存取途径,例如拟定应当为哪些关系模式建立索引,索引核心字是什么等。③拟定数据存储位置,例如拟定数据存储在一种磁盘上还是各种磁盘上,什么数据该存储在高速存储器上,什么应当存储在低速存储器上等。④拟定存取分布,许多DBMS都提供了某些存储分派参数供设计者使用,例如缓冲区大小和个数、块长度、块因子大小等,设计者必要规定其中某些参数位置。⒉评估物理构造由于在物理设计过程中需要考虑因素诸多,涉及时间和空间效率、维护代价和顾客规定等,对这些因素进行权衡后,也许会产生各种物理设计方案。这一阶段需对各种也许设计方案进行评价,评价重点是系统时间和空间效率,并从各种方案中选出较优物理构造。七、详细设计7.1、系统模块设计根据系统概要设计层次模块图,可设计系统模块如下:⒈验证顾客身份功能模块⑴功能描述验证顾客身份功能模块用于对登陆系统顾客进行身份验证,拟定顾客与否拥有使用该系统资格以及该顾客权限。因而,任何顾客登陆系统都调用此模块。⑵重要算法if顾客名and口令对的以该顾客身份进入系统总控制界面并获得响应系统权限else提示“顾客名或口令错误”合计错误三次,自动关闭本系统endif(3)涉及类:类Enter,类DBManager,⒉系统总控制模块⑴功能描述系统总控制模块是系统运营时主控制程序,通过系统主菜单集中各子功能模块,顾客在该模块中通过选取菜单进入到相应子模块。⑵菜单设计系统菜单设计如下表所示。表7-1系统菜单一级菜单系统输入维护协助二、三级菜单客户管理商品查询修改商品信息系统信息顾客管理商品入库退出系统商品出库⑶重要算法每个菜单项调用相应模块,实现各自功能。以退出系统为例:if退出系统 提示“确认退出系统?”if确认退出退出仓库管理系统else返回到仓库管理系统 endifendif其她功能菜单类似。⒊顾客信息管理模块⑴功能描述顾客信息管理模块是对整个系统顾客进行权限分派模块,通过调用该模块,具备查询顾客基本信息和修改密码及权限功能。系统第一次运营时只有超级顾客具备顾客权限分派权限。⑵调用方式顾客在主控制界面中选取调用该模块。⑶重要算法①添加按钮触发解决:用于添加新顾客,产生添加顾客界面。(仅限管理员权限)②删除按钮触发解决:用于删除选中系统顾客。(仅限管理员权限)③修改密码按钮触发解决:用于修改当前顾客密码,产生新密码修改界面。修改密码解决流程:输入原始密码重复输入原始密码if两次密码相似匹配数据库顾客密码 if与数据库密码相似 继续输入新密码,修改成功else 显示“您密码不对的!”else 显示“两次输入不相似!”④上一页按钮触发解决:显示上一页记录。⑤下一页按钮触发解决:显示下一页记录。⑥首页按钮触发解决:显示第一页记录。⑦末页按钮触发解决:显示最后一页记录。⑧退出按钮触发解决:关闭顾客信息管理窗口并返回主控制界面。(4)涉及类Select:4.产品入库功能模块⑴功能描述产品入库功能模块是用于新产品添加到仓库解决模块。通过调用该模块,顾客将产品入库信息添加到仓库信息中。⑵调用方式顾客在主控制界面中选取相应选项打开产品入库界面,在界面中填写相应入库信息。⑶重要算法①产品类型下拉列表:选取入库产品类型。②产品名输入框:用于输入添加产品名称。③产品价格输入框:用于输入添加产品价格。④入库量输入框:用于输入添加产品数量。(按产品类型拟定单位)⑤生产日期输入框:用于填写入库产品生产日期。⑥入库按钮触发解决:将顾客填写入库产品信息添加到库存产品信息中。⑦重置按钮触发解决:将顾客填写产品入库信息清空重新填写。⑧退出按钮触发解决:关闭产品入库窗口并返回主控制界面。(4)涉及类 InStoreHouse: 5.产品出库功能模块⑴功能描述产品出库功能模块是用于产品从仓库售出解决模块。通过调用该模块,顾客将产品出库信息添加到仓库信息中。⑵调用方式顾客在主控制界面中选取相应选项打开产品出库界面,在界面中填写相应出库信息。⑶重要算法①产品名下拉列表:选取出库产品名称。②出库量输入框:用于输入售出产品数量。(按产品类型拟定单位)③出库按钮触发解决:将顾客填写产品出库信息添加到库存产品信息中。④重置按钮触发解决:将顾客填写产品入库信息清空重新填写。⑤退出按钮触发解决:关闭产品出库窗口并返回主控制界面。(4)涉及类OutStoreHouse:6.库存信息管理模块⑴功能描述产品信息管理模块是供系统使用人员对产品信息进行检索与查询并且进行修改模块。通过调用该模块,可以按照不同条件组合进行产品信息查询,并可以对查询到产品信息进行修改。⑵调用方式顾客在主控制界面中选取相应选项打开产品信息界面,在界面中选取相应功能。⑶重要算法①查询条件下拉列表:选取查询方式,然后于查询框中填写核心字进行搜索。②查询按钮触发解决:用于依照查询条件和顾客输入条件进行查询产品有关信息并显示。③修改按钮触发解决:用于修改选中产品信息,产生产品信息修改界面。(仅限管理员权限)④上一页按钮触发解决:显示上一页记录。⑤下一页按钮触发解决:显示下一页记录。⑥首页按钮触发解决:显示第一页记录。⑦末页按钮触发解决:显示最后一页记录。⑧退出按钮触发解决:关闭产品信息管理窗口并返回主控制界面。(4)涉及类SearchGoods: OutIn: 7.打印功能模块⑴功能描述打印功能重要用于打印产品信息,以便仓库管理信息整顿和保存。⑵调用方式顾客在主控制界面中选取相应选项打开打印报表界面,在界面中选取打印功能。8.数据维护模块⑴功能描述本模块重要用于维护仓库系统数据,经常备份仓库各种信息数据,保证整个系统可靠性,以便在浮现意外状况时可以及时恢复仓库所有数据。⑵调用方式顾客在主控制界面中选取相应选项打开数据恢复界面,在界面中选取相应功能。⑶重要算法①数据备份(手动)按钮触发解决:及时开始备份当前仓库管理系统各种数据。②数据备份(自动)按钮触发解决:顾客设定数据自动备份时间,系统依照顾客设定期间自动将仓库管理系统中此刻各种数据进行备份。③退出按钮触发解决:关闭产品信息管理窗口并返回主控制界面。7.2、程序设计依照系统规定,一共设计9个类,如下图,其中:数据库操作类: DBManger:实现连接,查询修改等分步操作; GetDBInfo:实现查询成果集返回;操作界面类: Enter: 登录界面 Select: 功能选取界面 InStoreHouse: 物品入库操作界面 OutStoreHouse: 物品出库操作界面 SearchGoods: 物品查询界面 OutIn: 出入库查询界面 ManagerInfo: 管理员信息管理界面分步实现阐明:DBManger类实现对数据库查询操作函数f(Strings):publicResultSetf(Strings){ Connectioncon=null; Statementsql=null; ResultSetrs=null; try{ con=DriverManager.getConnection("jdbc:mysql://localhost:3306/software","root","1234"); sql=con.createStatement(); rs=sql.executeQuery(s); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } returnrs; }实现对数据库插入删除和更新操作函数modifyRecord():publicvoidmodifyRecord(){ Connectioncon=null; Statementsql=null; booleana=false; try{ con=DriverManager.getConnection("jdbc:mysql://localhost:3306/software","root","1234"); sql=con.createStatement(); sql.execute(SQL); sql.close(); con.close(); }catch(SQLExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }GetDBInfo类privateVector<Vector<String>>rows;记录查询返回元组privateVectorcolumnHeads;记录查询返回成果标题//获取表头VolumnHeads publicVectorgetColumnHeads();//获取表中内容 publicVectorgetRows();//更新数据库 publicGetDBInfo(StringselStr){ try{ ResultSetrs; mon=newModifyTable(); rs=mon.f(selStr); if(!(rs.next()))//判断数据库中与否有内容 { JOptionPane.showMessageDialog(null,"成果集中无记录","无记录",JOptionPane.INFORMATION_MESSAGE); } ResultSetMetaDatarsmd=rs.getMetaData();//获得成果集列属性值 rows=newVector(); columnHeads=newVector(); for(inti=1;i<=rsmd.getColumnCount();i++){ columnHeads.addElement(rsmd.getColumnName(i));//添加列名 } do{ rows.addElement(getNextRow(rs,rsmd));//添加表行值 }while(rs.next()); rs.close(); }catch(Exceptione){ e.printStackTrace(); } }Enter类privateJFrameframe;privateJButtonenterButton;privateJButtonresetButton;用于标记登陆角色单选按钮privateJRadioButtonradioButton1;privateJRadioButtonradioButton2; privateJTextFieldnameText; privateJPasswordFieldpasswordText;表达登录身份: publicstaticbooleanisManager=false;实现效果:图7-1顾客登陆界面图基本实现:(1)图片载入:JLabellabel4=newJLabel();ImageIconicon=newImageIcon(""E:\\学习\\软件工程\\StoreHouse\\_2.jpg"); label4.setIcon(icon);(2)单选按钮: ButtonGroupgroup=newButtonGroup(); radioButton1=newJRadioButton("管理员",false); radioButton2=newJRadioButton("客户",true); group.add(radioButton1); group.add(radioButton2);(3)监控器设定:publicvoidactionPerformed(ActionEvente){ booleantmp=false; Objectsource=e.getSource(); if(source==enterButton){ try{ ResultSetrs; mon=newModifyTable(); rs=mon.f("select*fromhost"); while(rs.next()){ if(nameText.getText().equals(rs.getString(2))&&passwordText.getText().equals(rs.getString(3))){ tmp=true; Selectselect=newSelect(); this.dispose(); break; } } rs.close(); }catch(Exceptionex){ ex.printStackTrace(); } if(tmp==false){ JOptionPane.showMessageDialog(null,"输入密码或顾客名错误","登录信息",JOptionPane.INFORMATION_MESSAGE); nameText.setText(""); passwordText.setText(""); } }elseif(source==resetButton){ nameText.setText(""); passwordText.setText(""); }elseif(source==radioButton1){ isManager=true; }elseif(source==radioButton2){ isManager=false; } }InStoreHouse类基本成员变量:privateJFrameframe;输入信息11个文本框: privateJTextFieldtext1-11;privateJTextFieldinfoText;privateJButtonokButton;privateJButtonbackButton;设立日期格式:privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/ddHH:mm:ss";基本函数://SQL语句生成 publicStringgetSQL()//自动生成插入时间publicStringinsertTime()//自动生成入库IDpublicStringinHouseID()//清除文本框publicvoidclear()实现效果:图7-2商品入库界面图基本功能实现:监听器设定:publicvoidactionPerformed(ActionEvente){Objectsource=e.getSource();if(source==okButton){ try{ mon=newModifyTable(); StringSQL=getSQL(); System.out.println(SQL); mon.setSQL(SQL); mon.modifyRecord(); SQL=insertSQL(); mon.setSQL(SQL); mon.modifyRecord(); infoText.setText("存储成功"); clear(); }catch(Exceptionex){ ex.printStackTrace(); }}elseif(source==backButton){ frame.dispose(); newSelect();} } }OutStoreHouse类基本成员变量: privateJFrameframe; privateJButtonokButton; privateJButtonbackButton; privateJTextFieldtext1; privateJTextFieldtext2; privateJTextFieldtext3; privateJTextFieldtext4; privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/ddHH:mm:ss"; privateIntegernum;//修改数据里中数量暂时变量基本函数:同InStoreHouse雷同实现效果:图7-3商品出库界面图基本功能实现:解决物品编号不存在,以及数量局限性问题:publicvoidactionPerformed(ActionEvente){ Objectsource=e.getSource(); if(source==okButton){ try{ StringSQL=getGoodsSQL(); ResultSetrs; mon=newModifyTable(); System.out.println(SQL); rs=mon.f(SQL); if(!(rs.next()))//判断数据库中与否有内容 { JOptionPane.showMessageDialog(null,"输入货品编号不存在","提示信息",JOptionPane.INFORMATION_MESSAGE); text3.setText("操作失败"); clear(); }else{ if((num=Integer.valueOf(rs.getString(1)).intValue()-Integer.valueOf(text2.getText()).intValue())<0){ JOptionPane.showMessageDialog(null,"仓库货品局限性","提示信息",JOptionPane.INFORMATION_MESSAGE); clear(); text3.setText("操作失败"); }else{ SQL=getSendOutSQL(); mon.setSQL(SQL); mon.modifyRecord(); SQL=updateGoodsSQL(num); mon.modifyRecord(); text3.setText("操作成功"); } } rs.close(); }catch(Exceptionex){ ex.printStackTrace(); } }elseif(source==backButton){ frame.dispose(); newSelect(); } }解析:这里应用到数据类型转变,String到intdouble转化;还可以应用其她办法: 如:rs.getInt(3);直接读取数据库中int类型; rs.getDouble(4):直接读取double类型SearchGoods类基本成员函数:privateJFrameframe;privateJScrollPanejsp;privateJComboBoxnameList;privateJComboBoxtypeList;privateJComboBoxproductList;privateJTextFieldcountText;privateJTextFieldvalueText; privateJButtonokButton;privateJTabletable;privateDefaultTableModelmodel;privateJButtonbackButton; privateVectorrows;//表行值privateVectorcolumnHeads;//表列名//查询使用:Stringstr1,str2,str3;基本函数实现相似;实现效果:图7-4库存信息查询界面7.OutIn类基本函数变量: privateJFrameframe; privateJRadioButtoninButton; privateJRadioButtonoutButton; privateJButtonokButton; privateJButtonbackButton; privateJComboBoxcombox1; privateJComboBoxcombox2; privateJTabletable; privateVectorrows;//表行值 privateVectorcolumnHeads;//表列名 privateDefaultTableModelmodel; privateJScrollPanejsp; private Stringstr1=null,str2=null;//查询使用 privatebooleanflag=false; privateinttmp=0; privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/dd";实现效果:图7-5出入库信息查询界面基本实现:时间字符创分割解决;Select类基本成员变量privateJButtonbutton1; privateJButtonbutton2; privateJButtonbutton3; privateJButtonbutton4; privateJButtonbutton5; privateJButtonbutton6; privateJTextFieldText; privateJFrameframe;实现效果:图7-6仓库系统管理主界面基本实现:界面效果实现:infoLabel.setHorizontalAlignment(SwingConstants.CENTER); infoLabel.setBackground(Color.gray);Text.setBackground(Color.gray);Text.setForeground(Color.cyan);Text.setFont(newFont("宋体",Font.HANGING_BASELINE,20)); ManagerInfo类基本函数: privateJFrameframe; privateJTabbedPanetabbedPane; privateJLabellabel1; privateJLabellabel2; privateJLabellabel3; privateJPanelpanel1; privateJPanelpanel2; privateJPanelpanel3; privateJComboBoxageBox; privateJComboBoxworkAgeBox; privateJComboBoxpostionBox; privateJTextFieldtext21; privateJTextFieldtext22; privateJTextFieldtext23; privateJTextFieldtext24; privateJTextFieldtext25; privateJTextFieldtext26; privateJTextFieldtext27; privateJTextFieldtext28; privateJTextFieldtext31; privateJTextFieldtext32; privateJButtonbutton11; privateJButtonbutton12; privateJButtonbutton21; privateJButtonbutton31; privateJButtonbackButton; privateJTabletable; privateVectorrows;//表行值 privateVectorcolumnHeads;//表列名 privateDefaultTableModelmodel; privateJScrollPanejsp; private Stringstr1=null,str2=null,str3=null;//查询使用基本功能函数:这里函数解决和上面相似,只是在布局上采用了JtablePanle面板,将三个功能加在同一种窗口里;实现效果:图7-7管理员管理顾客界面解决问题:publicvoidactionPerformed(ActionEvente){ //解决按钮事件 Objectsource=e.getSource(); if(source==button11){ mon=newModifyTable(); GetDBInfoDB=newGetDBInfo("select*fromManager"); rows=DB.getRows(); columnHeads=DB.getColumnHeads(); model=newDefaultTableModel(rows,columnHeads);//用来修改表格值 table=newJTable(model); jsp.setViewportView(table); }elseif(source==button12){ try{ if(str1==null)str1="isnotnull"; if(str2==null)str2="isnotnull"; if(str3==null)str3="isnotnull"; mon=newModifyTable(); GetDBInfoDB=newGetDBInfo(getSQL1()); rows=DB.getRows(); columnHeads=DB.getColumnHeads(); model=newDefaultTableModel(rows,columnHeads);//用来修改表格值 table=newJTable(model); jsp.setViewportView(table); }catch(Exceptionex){ ex.printStackTrace(); } System.out.println(getSQL1()); }elseif(source==button21){ try{ mon=newModifyTable(); StringSQL=getSQL2(); mon.setSQL(SQL); mon.modifyRecord(); text28.setText("存储成功"); clear2(); }catch(Exceptionex){ ex.printStackTrace(); } }elseif(source==button31){ booleandeleteState=false; try{ mon=newModifyTable(); ResultSetrs; StringSQL="select*fromManagerwhere编号="+"'"+text31.getText()+"'"; rs=mon.f(SQL); if(rs!=null){ SQL="deletefromManagerwhere编号="+"'"+text31.getText()+"'"; mon.setSQL(SQL); mon.modifyRecord(); text31.setText(""); text32.setText("删除成功"); deleteState=true; } rs.close(); }catch(Exceptionex){ ex.printStackTrace(); } if(deleteState==false){ text32.setText("输入编号不存在"); text31.setText(""); } }elseif(source==backButton){ frame.dispose(); newSelect(); } }解析:在删除之前,对数据库进行检查,判断管理员编号与否存在;八、测试报告8.1、测试环境系统名称仓库管理系统版本号1.0.13编制人易小艳,熊晶编制时间-07测试系统环境WindowsXP/7测试硬件环境Lenovo/dell测试负责人易小艳熊晶8.2、系统测试(1)、测试设计①登录模块“顾客登录”黑盒测试testcase设计测试编号TS_FUN_001_001优先级高测试项描述验证顾客修改密码界面,两个输入框分别输入顾客名、密码,两个标签拟定和退出,顾客名和密码不能为空,输入错误顾客名或密码要提示错误信息,修改成功时要弹出登录成功确认对话框预置条件应用被打开,且处在登录界面上用例序号输入执行环节预期成果TS0001错误顾客名,错误密码按拟定进入界面提示顾客名不存在TS0002对的顾客名,错误密码提示密码错误TS0003错误顾客名,对的密码提示顾客不存在TS0004对的顾客名,对的密码输入对的,正常进入系统②入库模块“入库操作中货品编号”黑盒测试testcase设计测试项编号TS_FUN_001_003优先级高测试项描述验证入库操作中货品编号、仓库编号和显示窗口,各输入框分别输入货品编号、仓库编号和显示窗口,两个标签拟定和退出,货品编号、仓库编号和显示窗口不能为空,输入非法内容,提示错误信息预置条件应用被打开,且当前处在入库操作界面上用例序号输入执行环节预期成果TS1对的货品编号,涉及是合法字符和合法长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行入库操作,添加成功TS2错误货品编号,涉及货品编号具有非法字符、长度不符合原则直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现入库操作,弹出对话框提示“货品编号错误,请重新输入”TS3货品编号为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现入库操作,弹出对话框提示“货品编号不能为空,请重新输入”TS4任意货品编号用鼠标单击取消标签(1)支持鼠标或按Tab键(3)清空货品编号TS5对的仓库编号,涉及是合法字符和合法长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行入库操作,添加成功TS6错误仓库编号,涉及货品编号具有非法字符、长度不符合原则直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现入库操作,弹出对话框提示“仓库编号错误,请重新输入”TS7仓库编号为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现入库操作,弹出对话框提示“仓库编号不能为空,请重新输入”TS8任意仓库编号用鼠标单击取消标签(1)支持鼠标或按Tab键(3)清空仓库编号TS9对的货品名称,涉及是合法字符和合法长度,也涉及0直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行入库操作,添加成功TS0错误货品名称,涉及货品编号具有非法字符、长度不符合原则直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现入库操作,弹出对话框提示“货品名称错误,请重新输入”TS1对的单价,涉及数值类型和最大长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行入库操作,添加成功TS2错误单价,涉及输入单价为负数和输入单价为字符型用鼠标单击取消标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现入库操作,弹出对话框提示“单价输入错误,请重新输入”TS3单价输入为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现入库操作,弹出对话框提示“单价输入不能为空,请重新输入”TS4对的数量,涉及数值类型和最大长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行入库操作,添加成功TS5错误数量,涉及输入数量为负数和输入单价为字符型用鼠标单击取消标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现入库操作,弹出对话框提示“数量输入错误,请重新输入”TS6数量输入为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现入库操作,弹出对话框提示“数量输入不能为空,请重新输入”TS7单位输入为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现入库操作,弹出对话框提示“单位输入不能为空,请重新输入”TS8生产厂家输入可觉得空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行入库操作,添加成功TS9检查和谐性检查入库操作界面设计与否合理,符合正常规范原则界面符合习惯、美观,标签对齐,输入框对齐,无错别字,字体大小协调,文字描述精确③出库模块“出库操作中货品编号”黑盒测试testcase设计测试项编号TS_FUN_001_004优先级高测试项描述验证出库操作中货品编号、仓库编号和显示窗口,各输入框分别输入货品编号、仓库编号和显示窗口,两个标签拟定和退出,货品编号、仓库编号和显示窗口不能为空,输入非法内容,提示错误信息预置条件应用被打开,且当前处在入库操作界面上用例序号输入执行环节预期成果TS30001对的货品编号,涉及是合法字符和合法长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行出库操作出库成功TS30002错误货品编号,涉及货品编号具有非法字符、长度不符合原则直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现出库操作,弹出对话框提示“货品编号错误,请重新输入”TS30003货品编号为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现出库操作,弹出对话框提示“货品编号不能为空,请重新输入”TS30004任意货品编号用鼠标单击取消标签(1)支持鼠标或按Tab键(3)清空货品编号TS30005仓库中无此种货品直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现出库操作,弹出对话框提示“仓库中无此种货品,请重新输入”TS30006对的仓库编号,涉及是合法字符和合法长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行出库操作,出库成功TS30007错误仓库编号,涉及货品编号具有非法字符、长度不符合原则直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现出库操作,弹出对话框提示“仓库编号错误,请重新输入”TS30008仓库编号为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(3)不能实现出库操作,弹出对话框提示“仓库编号不能为空,请重新输入”TS30009任意仓库编号用鼠标单击取消标签(1)支持鼠标或按Tab键(3)清空仓库编号TS30010对的货品名称,涉及是合法字符和合法长度,也涉及0直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行出库操作,出库成功TS30011错误货品名称,涉及货品编号具有非法字符、长度不符合原则直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“货品名称错误,请重新输入”TS30012对的单价,涉及数值类型和最大长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行出库操作,出库成功TS30013错误单价,涉及输入单价为负数和输入单价为字符型用鼠标单击取消标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“单价输入错误,请重新输入”TS30014单价输入为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“单价输入不能为空,请重新输入”TS30015对的数量,涉及数值类型和最大长度直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行出库操作,出库成功TS30016错误数量,涉及输入数量为负数和输入单价为字符型用鼠标单击取消标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“数量输入错误,请重新输入”TS30017数量输入为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“数量输入不能为空,请重新输入”TS30018数量输入少于库存量直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“库存量局限性,请重新输入”TS30019单位输入为空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)不能实现出库操作,弹出对话框提示“单位输入不能为空,请重新输入”TS30020生产厂家输入可觉得空直接敲击enter键或用鼠标单击拟定标签(1)支持鼠标或按Tab键移动当前焦点(2)正常进行出库操作,出库成功TS30021检查和谐性检查出库操作界面设计与否合理,符合正常规范原则界面符合习惯、美观,标签对齐,输入框对齐,无错别字,字体大小协调,文字描述精确九、开发总结仓库作为一种信息资源集散地,顾客和货品资料繁多,包括诸多信息数据管理。依照调查得知,此前对信息管理重要方式是基于文本、表格等纸介质手工解决,对于仓库信息记录和核算等往往采用人工检查进行。数据信息解决工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总来说,缺少系统,规范信息管理手段。为了适应日趋激烈市场竞争,公司需要对自身经营状况有所理解。高效率、科学化地管理仓库成为提高生产经营效率有效途径。采用计算机管理信息系统能有效地避免仓库管理随意性,提高信息解决速度和精确性,可以及时、精确、有效地查询和修改仓库信息状况,并给公司管理带来了明显经济效益和社会效益,成为当今仓库管理科学化和当代化重要标志。本系统针对公司实际需要,分析了公司仓库管理系统功能,以入库管理和出库管理为重点,描述各个模块构造设计及实行过程中技术要点,实现仓库基本管理(出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球及中国中置电机自行车行业头部企业市场占有率及排名调研报告
- 2025年全球及中国PTZ电子体积校正器行业头部企业市场占有率及排名调研报告
- 2025年全球及中国军用飞行器模拟器行业头部企业市场占有率及排名调研报告
- 2025年全球及中国工业木锯机行业头部企业市场占有率及排名调研报告
- 期末测试卷01【考试范围:6-10单元】(原卷版)
- 2025国际商业代理合同详细版样本
- 担保合同范文集锦年
- 健身房私教合同范文
- 电力设备采购合同模板
- 2025XL数字地震仪器租赁合同
- 绿色能源项目融资计划书范文
- 《人工智能发展史》课件
- 小学一年级数学20以内的口算题(可直接打印A4)
- 一个28岁的漂亮小媳妇在某公司打工-被老板看上之后
- 马工程教育哲学课件第十章 教育哲学与教师发展
- GB/T 11376-2020金属及其他无机覆盖层金属的磷化膜
- 成功源于自律 主题班会课件(共34张ppt)
- 新青岛版(五年制)五年级下册小学数学全册导学案(学前预习单)
- (完整word版)重点监管的危险化学品名录(完整版)
- 高级工程师电子版职称证书在网上打印步骤
- 品牌形象的12个原型
评论
0/150
提交评论