施工组织设计-软件工程课程设计文档商店仓库管理系统

上传人:沈*** 文档编号:55812735 上传时间:2022-02-18 格式:DOCX 页数:60 大小:1.01MB
收藏 版权申诉 举报 下载
施工组织设计-软件工程课程设计文档商店仓库管理系统_第1页
第1页 / 共60页
施工组织设计-软件工程课程设计文档商店仓库管理系统_第2页
第2页 / 共60页
施工组织设计-软件工程课程设计文档商店仓库管理系统_第3页
第3页 / 共60页
资源描述:

《施工组织设计-软件工程课程设计文档商店仓库管理系统》由会员分享,可在线阅读,更多相关《施工组织设计-软件工程课程设计文档商店仓库管理系统(60页珍藏版)》请在装配图网上搜索。

1、 信 息 工 程 学院 软件工程课程设计报告本 题 目:仓库管理系统 专业班级:计算机092班 学 生:易小艳 05号 熊晶 10号指导老师: 曾婕 2012年 7 月 6 日目 录一、问题的定义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.

2、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一、问题的定义仓库管理系统是现代仓储企业进行货物管理和处理的业务操作系统。它可以实现本地一个或几个仓库的精细化管理

3、,也可实现制造企业、物流企业、连锁业在全国范围内、异地多点仓库的管理;它可以对货物存储和出货等进行动态安排,可以对仓储作业流程的全过程进行电子化操作;可以与客服中心建立数据接口使客户通过互联网实现远程货物管理,可以与企业的ERP系统实现无缝连接。在现代企业中,仓库管理是一项繁琐复杂的工作,每天要处理大量的单据数据。为及时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花费大量人力物力和时间来作数据记录统计工作。众所周知,仓库管理是一种既麻烦又单调的工作,每天都是重复记录一些货物的存入与取出,而且货物的种类繁多,存取有很大的随机性,这样为工作人员带来了很大的不便,在

4、操作过程中,由于人为的计算出错率很高,一旦出错改正也很困难,这样简单繁重的工作要很多人来做,为经营者增加了很多成本。所以开发一个可行的仓库管理系统是十分必要的。本系统以MySQL作为后台数据库,以java语言来开发的,不仅实现了仓库管理的自动化,同时也提高了工作效率。本系统由以下几个模块组成:基本信息管理、入库管理、在库管理、出库管理、报表管理。二、开发计划2.1、项目概述(1)项目背景开发系统名称:仓库管理系统项目任务提出者:熊晶开发者:易小艳 熊晶(2)工作内容可行性研究、需求分析、概要设计、数据库设计、详细设计、系统测试等。(3)产品仓库管理系统(4)验收标准为了方便用户操作,该系统提供

5、了部分提示窗口,使用户能够按照提示语句完成各项操作。为了实现仓库的安全有效管理,系统设置了用户登陆的首界面,管理员和员工需要正确的用户名和密码。本系统的查询功能可以按照货物编号、日期、指数等项目进行查询或全部浏览。本系统的修改功能提供了逐条察看的方式修改删除和以货物编号、日期、指数等方式进行查询的功能,而且本着直观、方便的原则进行设计窗口。本系统包含“数据添加”、“数据查询”、“数据修改”、 “用户管理”、“退出”等功能。本系统包含数据库主要用于存放仓库管理信息和管理员信息。(5)完成项目最迟期限:2010.07.062.2、实施计划(1)工作任务的分解及人员分工程序编写主要负责人:熊晶,文档

6、编写主要负责人:易小艳(2)预算20元电费以及文档打印费用。2.3、支持条件计算机支持硬件:CPU型号为Pentium3以上, 内存512M系统:Windows xp /vista/7软件:mysql,myeclipse/eclipse, Microsoft Office Visio20072.4、专题计划要点操作的简便易用:无论什么水平的操作人员,简便的操作方法是一致性要求,同时在系统操作的界面的设计中也应尽可能地把常用子模块添加至主系统窗口中,实现“一触即开”窗口。适应性:应该明确的是,实际操作人员对计算机的了解程度和实际的操作能力各不相同,因此软件应具有一定的适应能力。透明性:在系统设计

7、中,应充分利用计算机在处理数据方面的能力,从而尽可能减轻操作人员的工作,实现一定意义上的透明操作,即用户无须知道模块功能实现的具体过程,只需要设置一定的操作选项,计算机即可按照用户的要求得到所需要的处理结果,具体的操作细节对用户是“透明”的。点面结合:再数据处理方面,一方面应强调数据的成批处理能力,以尽可能简化操作人员的处理工作,另一方面也应十分重视对单独数据的处理能力。三、可行性报告3.1、项目定义仓库在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力.传统的简单、静态的仓库管理已经无法保证企业各种

8、资源的高效利用。现在的仓库作业和库存控制作业十分复杂化、多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大损失. 为了克服以上问题,必须使仓储管理和计算机系统相互结合起来,以使仓库服务得到有效的执行和监督.仓库管理系统可以对仓储各环节实施全过程控制管理,并可对货物进行入库和出库操作管理,从而实现仓储作业流程全过程的电子化操作.另外还可以根据客户的需求制作多种合理的统计报表.3.2、技术可行性本系统产品用java编程与数据库相结合的方法进行开发,而仓库管理系统实现的理论及技术已经日趋成熟,因此仓库管理系统应用软件的开发手段是完全可行的。3.3、市场可行性当下,市场经济迅速

9、发展,网上购物已成潮流,在这种情况下,物流仓储等行业的发展也在以一种惊人的速度发展,要想保证仓库出入货物与账目的一致性,必须出现一种专门的、特定意义、特殊功用的管理系统出现,即仓库管理系统,在网上调查的过程中,我们发现,很多业主和个体经营户也急需一种只适合其专门行业的管理系统。然而,市场中也是存在了很多的十分专业的仓库管理系统,但是介于其收费特征和内容的广泛应用性,而导致在用户使用的简便性和易用性受到了打击,所以在这种社会现状的驱使下,我们小组讨论决定开发一种简单通用的仅仅限于仓库管理的管理系统,而不涉及进货和销售方面的问题,于是仓库管理系统便应运而生。3.4、产品策略在该项目开发过程中,全部

10、使用实验室及图书馆现成的设备和资料。因此该系统的开发在经济方面也是可行的。3.5、成本效益分析(假设)一般来说,我们的客户开发这个软件系统是一项投资,所以当然期望获得很大的经济效益。经济效益通常表现为减少运行费用或(和)增加收入。所以我们进行成本/效益分析来从经济角度分析开发我们的设备管理系统是否划算,从而帮助客户组织的负责人做出是否投资这项开发工程的决定。下面我们从以下几个方面进行分析。(1)成本分析软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。因成本估计不是精确的科学。因此我采用了两种不同的估计技术以便互相校检。 代码行技术代码行技术是比较简单的定量估算方法,把开发每个软件

11、功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。而在我们组的设计下,初步得出设备管理系统的源代码行数。得出源代码行数以后,用每行代码的平均成本乘以行数就可以确定软件的成本,所以我们得出的此软件的成本为成本=2000*10=20000 任务分解技术任务分解技术是首先把我们的设备管理系统分解为若干个相对独立的任务。在分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务需要用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。下面是我们按开发阶段划分任务做出的

12、人力成本。表3-1 各个开发阶段需要使用的人力百分比及工资表得出其总成本(1200*5+1000*10+800*25+500*20+10*600*(20/100)*1.5=21000(元)(2)运行费用分析运行费用取决于设备管理系统的日常操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。(3)效益分析我们设备管理系统的经济效益在于因使用此系统而增加的收入加上使用此系统可以节省的运行费用。(4)成本/效益分析应该比较新系统的开发成本和经济效益以便从经济角度判断这个系统是否值得投资,但是,投资是现在进行的,效益是将来获得的,不能简单的比较成本和效益,应该考虑货币的时间价值。货币的时间价值

13、通常用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为F=P(1+i)n在我们的软件分析中假定年利率为12%,预计可帮助我们的客户每年节省25000元,则利用货币限制计算公式就可以算出每年预计节省的钱的现在价值表3-2 将来的收入折算成现在值表投资回收期通常用投资回收期衡量一向开发工程的价值。所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短就能越快获得利润,因此这项工程也就越值得投资。在本软件中,一年以后可以节省22321.4元,和最初的投资(20000元)比较。因此,投资回收期是0.98年纯收入纯收入是指在整个生命周期值

14、内系统的累计经济效益(折合成现在值)与投资之差。这相当于比较投资开发一个软件系统和把钱存在银行这两种方案的优劣。如果纯收入为零,则工程的预期效益和在银行存款一样,如果纯收入小于零,那么这项工程显然不值得投资。这本系统开发中工程的纯收入预计是90119.420000=70119.4(元)投资回收率把资金存入银行货代给其他企业能够获得利息,通常用年利率衡量利息多少。类似的也可以计算投资回收率,用它衡量投资效益的大小,并且可以把他和年利率相比较,在衡量工程的经济效益时,它是最重要的才靠数据。以至现在的投资额,并且已经估计出将来每年可以获得的经济效益,那么,给定软件的使用寿命之后,我们可以计算其投资回

15、收率为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)开发本系统的目的在于代替手工管理、统计报表 等工作,具体要求包括:数据录入:录入用户信息、商品信息、供货商信息、入库信息、出库信息、退货信息、客户信息等信息;数据修改:修改商品信息、供货商信息、用户信息、客户信息等信息;数据统计:统计统计每次仓库的进货和出货时的商

16、品的数量、种类、总价值;数据查询:系统提供三种查询条件:活物编号、日期、指数,选择不同的查询条件,会的得到不同的查询结果;数据备份:定期对数据库做备份,以免数据库在遇到意外破坏的时候能够恢复数据库,从而减少破坏造成的损失。(2)术语定义静态数据系统固化在内的描述系统实现功能的一部分数据。动态数据在软件运行过程中用户输入后系统输出给用户的一部分数据,也就是系统要处理的数据。数据字典数据字典的名字都是一些属性与内容的抽象与概括,它们的特点是数据表的“严密性”和“精确性”。4.2、功能分析4.2.1 功能需求 (1)仓库管理系统,实现功能:入库登记 : 商品入库记录;出库登记 : 库存商品出库;在库

17、商品查询 : 库存物品查询;出库入库信息查询 : 按时间,操作管理员查询操作信息;管理员信息管理 : 管理员的登记,查询,删除;(2).附加实现功能:登录界面 : 实现管理员员和客户的不同角色登录;界面的转换 : 分别创建不同的窗口,并及时删除浏览过的窗口;分角色设定使用权限: 管理员和客户的使用权限不同;(3).异常处理:操作错误 : 信息输入错误等;常规错误 : 仓库物品数量不足等;4.2.2 用户需求根据用户需求,该系统应该实现以下功能:(1) 进、出库管理。对进、出库信息进行记录。(2) 查询功能。仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责

18、人的确认。(3) 资料管理与库存报表生成。资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。报表主要分类为:日报表,月报表,销售报表,入库报表等等。(4) 由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。(5) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。4.3、系统流程图为了便于问题的论述与展开,在此加入了系统流程图的内容。通过对仓库管理过程的了解,可以知道仓库管理系统管理仓库信息的大致过程。首先,用户登陆仓库管

19、理系统,通过一系列对系统的操作后,由系统返回给用户相应的结果。图1描绘了这个大致的流程。用户仓库管理系统用户输入数据反馈结果图4-1 仓库管理系统大致处理过程接下来对图1的黑匣子(仓库管理系统)的内容进行分解。通过仔细分析与了解,确定用户对系统的整个操作过程:用户登陆仓库管理系统,验证用户身份与权限,审核后操作仓库管理系统,用户可以查询仓库里的产品信息,管理员权限可修改和删除相关仓库的信息,用户还可以打印相关报表,还可以查看帮助文档。系统会根据用户的操作,给予相应的显示与处理结果。图2是分析后得出的系统流程图。图4-2 仓库管理系统流程图4.4、数据描述4.4.1、建立数据流图系统流程图虽然很

20、好地描绘了具体的系统,但是在系统流程图中把“做什么”和“怎样做”这两类不同范畴的知识混合在一起。我们的目标不是一成不变地复制现有的人工系统,而是开发一个既能够完成现有的所有功能,又能使操作更加规范或者功能更加完备的新系统,因此,应该着重描绘系统的逻辑功能。数据流图描述数据在软件系统内从输入流动到输出的过程中所经受的变换,通常用数据流图建立软件的功能模型。数据流图是系统逻辑功能的图形表示,图中没有任何的具体物理部件,仅仅描绘数据在软件中流动和被处理的逻辑过程,不懂计算机技术的人也容易理解它,因此是分析员与用户之间极好的通信工具。根据前面划分的系统模块可以得到如下数据流图:1.仓库管理系统整体数据

21、流图用户用户选择操作1系统管理D1仓库数据2输入处理3维护模块4帮助模块用户相应结果图4-3 仓库管理系统数据流图2.细化“系统管理”的数据流图1.1客户管理1.2用户管理1.3退出系统D2客户资料D3用户资料用户用 户 数 据图4-4 对“系统管理”的细化3.细化“输入处理”的数据流图2.1产品入库D1仓库数据2.2产品出库2.3产品查询用户用 户 数 据图4-5 对“输入处理”的细化4.4.2、建立数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的元素的定义的集合。它的作用是在软件分析和设计过程中提供关于数据的描述信息。数据字典和数据流图共同构成系统的逻辑模型。数据字典定义数

22、据的方法就是对数据自顶向下地分解,当分解到不需要进一步定义,每个和工程有关的人员都清楚其含义的元素时,这种分解过程就结束了。本仓库管理系统根据划分的模块定义了如下数据字典:用户信息表表名:host内容:记载用户登陆的基本信息组成:列名数据类型长度精度小数备注useridint11100关键字(主键)usernamechar1000不为空userpwdchar1000不为空组织:按录入顺序。管理员信息表表名:manager内容:记载客户相关的基本信息组成:列名数据类型长度精度小数备注Midint11100关键字(主键)Mnamevarchar1000不为空Mageint800不为空MCodech

23、ar20100不为空Msexchar800不为空MPositionchar1000不为空MtimeSmallint600不为空MsalaryDouble802不为空组织:按录入顺序。产品信息表表名:goods内容:记载产品的基本信息组成:列名数据类型长度精度小数备注Gidint11100关键字(主键)Gcodechar1000不为空Gnamechar1000不为空Gtypechar1000不为空Gnumint1000不为空Gpricedouble802不为空Gsizechar1000不为空Gweightdouble802不为空Gcolorchar1000不为空Gplacevarchar2550

24、00不为空Gincodechar2000不为空GVdouble802不为空组织:按录入顺序。入库信息表表名:putin内容:记载产品入库的基本信息组成:列名数据类型长度精度小数备注Pidint11100关键字(主键)Pcodechar2000不为空PMcodechar2000不为空PtimeDate00不为空组织:按录入顺序。出库信息表表名:sendout内容:记载产品出库的基本信息组成:列名数据类型长度精度小数备注Sidint11100关键字(主键)Scodechar2000不为空SMcodechar2000不为空StimeDate00不为空组织:按录入顺序。4.4.3、建立E-R图为了把用

25、户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型,概念性数据模型是一种面向问题的数据模型,它描述从用户角度看到的数据。通常使用实体-联系图来建立数据模型,可以把实体-联系图简称为E-R图,相应地可以把E-R图描绘的数据模型称为E-R模型。E-R图中包含了实体(即数据对象)、关系和属性等三种基本成分。通常,用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆或圆角矩形表示实体或关系的属性,并用直线把实体(或关系)与其属性连接起来。用户用户号用户名用户口令用户权限图4-6 用户E-R图 客户客户号客户名联系地址邮编电话号图4-7 客户E-R图 产品产品号产品名生产日期价

26、格类型 图4-8 产品E-R图仓库入库客户用户产品类型属于出库仓库1NMPNPMNQR 图4-9 仓库管理系统总E-R图4.4.4、建立状态图状态图(也叫状态转换图)通过描绘系统状态及引起系统转换的事件来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。因此,可以用状态图建立软件系统的行为模型。状态是可以被观察到的系统行为模式,一个状态代表系统的一种行为模式,状态规定了系统对事件的响应方式。在状态图中第一的状态主要有:初态、终态和中间状态,在一张状态图中只能有一个初态,而终态则可以有0个至多个。在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用

27、圆角矩形表示,可以使用两条水平横线把它分成上、中、下3个部分,分别防止状态名、状态变量和活动表。事件是在某个特定时刻发生的事情,它是对引起系统动作或(或)从一个状态转换到另一个状态的外界事件的抽象。状态图中两个状态之间带箭头的连线表示状态转换,箭头指明了转换的方向。状态转换通常是由事件触发的,在这种情况下应该在表示状态转换的箭头上标出触发事件表达式。以下是仓库管理系统的状态图:登陆界面验证帐户输入密码不合法帐户验证权限合法帐户查询、修改自身信息;修改其他用户权限;添加新用户;查询、修改、注销、添加客户信息;查询、修改、添加、删除产品信息;查询、修改、添加、删除出、入库信息查询、修改自身信息;查

28、询客户信息;查询出、入库信息;查询产品信息管理权限普通权限 图4-10 仓库管理系统状态图五、概要设计5.1、系统层次模块图设计 根据系统需求,可初步设计该系统层次模块图如右图:主要包括八个模块:登录模块,进入系统后选择系统操作模块,再分别对仓库进行管理的各模块。 图5-1系统主要层次模块图5.2、接口设计(1)外部接口(a) 用户界面采用图形用户界面(GUI),包含菜单、按钮、对话框等元素。(b) 软件接口软件运行于WINDOWS 操作系统 WINDOWS 2003及以上操作平台,不支持mac及UNIX。(c) 硬件接口最低配置:CPU P31.6GHz 内存 256M 硬盘 30G5.3、

29、出错处理设计(1)系统应具有相当健壮性,避免或降低由系统错误所造成的数据库损坏。(2)对关键性操作,如删除等提供警告和确认机制。5.4、安全设计系统提供严格的身份验证机制和密码管理以及权限设置。5.5、维护设计系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件的维护打好基础。六数据库设计6.1数据库逻辑设计由于本管理系统没有海量的数据需要存储,所以没有必要使用ORACLE,且ORACLE的链接和服务器配置也是有一定问题的,而MySQL在安全性和可靠性方面足以胜任,所以在测试阶段我们选用了MySQL作为数据库系统应用。数据库通信接口采用了ODBC(open database c

30、onnectivity,开放式数据库互联),目的是将所有底层操作全部隐藏在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数据库物理结构设计

31、数据库的物理结构设计是指为给顶的一个逻辑数据模型选择最适合应用环境的物理结构。关系数据库的物理结构主要是指数据的存取方法和存储结构。数据库的物理结构设计分为两个部分,首先是确定数据库的物理结构,其次是对所设计的物理结构进行评估。确定数据库的物理结构为确定数据库的物理结构,设计人员必须了解下面的几个问题。详细了解给定的DBMS的功能和特点,特别是该DBMS所提供的物理环境和功能;熟悉应用环境,了解所设计的应用系统中各部分的重要程度、处理频率、对响应时间的要求,并把它们作为物理结构设计过程中平衡时间和空间效率时的依据;了解外存设备的特性, 如分块原则、块因子大小的规定、设备的I/O特性等。在对上述

32、问题进行了全面的了解之后,就可以进行物理结构的设计了。一般地,物理结构设计的内容包括如下几个方面。确定数据的存储结构。在此过程中需考虑存取时间、空间效率和维护代价间的平衡,如在引入冗余数据以加快存取速度时应兼顾系统的空间效率。选择合适的存取路径,例如确定应该为哪些关系模式建立索引,索引关键字是什么等。确定数据的存放位置,例如确定数据存放在一个磁盘上还是多个磁盘上,什么数据该存放在高速存储器上,什么应该存放在低速存储器上等。确定存取分布,许多DBMS都提供了一些存储分配参数供设计者使用,例如缓冲区的大小和个数、块的长度、块因子的大小等,设计者必须规定其中的一些参数的位置。评估物理结构由于在物理设

33、计过程中需要考虑的因素很多,包括时间和空间效率、维护代价和用户的要求等,对这些因素进行权衡后,可能会产生多种物理设计方案。这一阶段需对各种可能的设计方案进行评价,评价的重点是系统的时间和空间效率,并从多个方案中选出较优的物理结构。七、详细设计7.1、系统模块设计依据系统概要设计的层次模块图,可设计系统模块如下:验证用户身份功能模块功能描述验证用户身份功能模块用于对登陆系统的用户进行身份验证,确定用户是否拥有使用该系统的资格以及该用户的权限。因此,任何用户登陆系统都调用此模块。主要算法if 用户名 and 口令 正确以该用户身份进入系统总控制界面并获得响应系统权限else提示“用户名或口令错误”

34、累计错误三次,自动关闭本系统end if(3)涉及类:类Enter,类DBManager,系统总控制模块功能描述系统总控制模块是系统运行时的主控制程序,通过系统的主菜单集中各子功能模块,用户在该模块中通过选择菜单进入到相应的子模块。菜单设计系统菜单设计如下表所示。表7-1 系统菜单一级菜单系统输入维护帮助二、三级菜单客户管理商品查询修改商品信息系统信息用户管理商品入库退出系统商品出库主要算法每个菜单项调用相应模块,实现各自的功能。以退出系统为例:if 退出系统提示“确认退出系统?”if 确认退出退出仓库管理系统else返回到仓库管理系统end ifend if其他功能菜单类似。用户信息管理模块

35、功能描述用户信息管理模块是对整个系统的用户进行权限分配的模块,通过调用该模块,具有查询用户基本信息和修改密码及权限的功能。系统第一次运行时只有超级用户具有用户权限分配的权限。调用方式用户在主控制界面中选择调用该模块。主要算法添加按钮触发的处理:用于添加新的用户,产生添加用户的界面。(仅限管理员权限)删除按钮触发的处理:用于删除选中的系统用户。(仅限管理员权限)修改密码按钮触发的处理:用于修改当前用户的密码,产生新的密码修改界面。修改密码处理流程:输入原始密码重复输入原始密码if 两次密码相同匹配数据库用户密码if 与数据库密码相同继续输入新密码,修改成功else显示“您的密码不正确!”else

36、显示“两次输入不相同!”上一页按钮触发的处理:显示上一页的记录。下一页按钮触发的处理:显示下一页的记录。首页按钮触发的处理:显示第一页的记录。末页按钮触发的处理:显示最后一页的记录。退出按钮触发的处理:关闭用户信息管理窗口并返回主控制界面。(4)涉及类Select : 4.产品入库功能模块功能描述产品入库功能模块是用于新的产品添加到仓库的处理模块。通过调用该模块,用户将产品的入库信息添加到仓库信息中。调用方式用户在主控制界面中选择相应选项打开产品入库界面,在界面中填写相应入库信息。主要算法产品类型下拉列表:选择入库产品的类型。产品名输入框:用于输入添加的产品的名称。产品价格输入框:用于输入添加

37、的产品的价格。入库量输入框:用于输入添加的产品的数量。(按产品类型确定单位)生产日期输入框:用于填写入库产品的生产日期。入库按钮触发的处理:将用户填写的入库产品的信息添加到库存的产品信息中。重置按钮触发的处理:将用户填写的产品入库信息清空重新填写。退出按钮触发的处理:关闭产品入库窗口并返回主控制界面。(4)涉及类InStoreHouse : 5.产品出库功能模块功能描述产品出库功能模块是用于产品从仓库售出的处理模块。通过调用该模块,用户将产品的出库信息添加到仓库信息中。调用方式用户在主控制界面中选择相应选项打开产品出库界面,在界面中填写相应出库信息。主要算法产品名下拉列表:选择出库产品的名称。

38、出库量输入框:用于输入售出的产品的数量。(按产品类型确定单位)出库按钮触发的处理:将用户填写的产品出库信息添加到库存的产品信息中。重置按钮触发的处理:将用户填写的产品入库信息清空重新填写。退出按钮触发的处理:关闭产品出库窗口并返回主控制界面。(4)涉及类OutStoreHouse :6.库存信息管理模块功能描述产品信息管理模块是供系统使用人员对产品信息进行检索与查询并且进行修改的模块。通过调用该模块,能够按照不同的条件组合进行产品信息的查询,并可以对查询到的产品信息进行修改。调用方式用户在主控制界面中选择相应选项打开产品信息界面,在界面中选择相应功能。主要算法查询条件下拉列表:选择查询的方式,

39、然后于查询框中填写关键字进行搜索。查询按钮触发的处理:用于根据查询条件和用户输入的条件进行查询产品的相关信息并显示。修改按钮触发的处理:用于修改选中的产品的信息,产生产品信息修改界面。(仅限管理员权限)上一页按钮触发的处理:显示上一页的记录。下一页按钮触发的处理:显示下一页的记录。首页按钮触发的处理:显示第一页的记录。末页按钮触发的处理:显示最后一页的记录。退出按钮触发的处理:关闭产品信息管理窗口并返回主控制界面。(4)涉及类SearchGoods : OutIn :7.打印功能模块功能描述打印功能主要用于打印产品的信息,方便仓库管理信息的整理和保存。调用方式用户在主控制界面中选择相应选项打开

40、打印报表界面,在界面中选择打印功能。8.数据维护模块功能描述本模块主要用于维护仓库系统的数据,经常备份仓库的各种信息数据,确保整个系统的可靠性,以便在出现意外情况时可以及时恢复仓库的全部数据。调用方式用户在主控制界面中选择相应选项打开数据恢复界面,在界面中选择相应功能。主要算法数据备份(手动)按钮触发的处理:立即开始备份当前仓库管理系统的各种数据。数据备份(自动)按钮触发的处理:用户设定数据自动备份的时间,系统根据用户设定的时间自动将仓库管理系统中此刻的各种数据进行备份。退出按钮触发的处理:关闭产品信息管理窗口并返回主控制界面。7.2、程序设计根据系统要求,一共设计9个类,如下图,其中:数据库

41、操作类:DBManger:实现连接,查询修改等分步操作 ;GetDBInfo :实现查询结果集的返回 ;操作界面类:Enter :登录界面Select : 功能选择界面InStoreHouse : 物品入库操作界面OutStoreHouse : 物品出库操作界面SearchGoods : 物品查询界面OutIn :出入库查询界面ManagerInfo : 管理员信息管理界面分步实现说明:1. DBManger类实现对数据库的查询操作函数f(String s):public ResultSet f(String s)Connection con = null;Statement sql = nu

42、ll;ResultSet rs = null;trycon = DriverManager.getConnection(jdbc:mysql:/localhost:3306/software,root,1234);sql = con.createStatement();rs = sql.executeQuery(s);catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();return rs;实现对数据库的插入删除和更新操作函数modifyRecord():public void modifyR

43、ecord()Connection con = null;Statement sql = null;boolean a = false;trycon = DriverManager.getConnection(jdbc:mysql:/localhost:3306/software,root,1234);sql = con.createStatement(); sql.execute(SQL);sql.close();con.close();catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();

44、2. GetDBInfo类private VectorVector rows ; 记录查询返回元组private Vector columnHeads ; 记录查询返回结果的标题 /获取表头VolumnHeadspublic Vector getColumnHeads() ;/获取表中内容public Vector getRows() ;/ 更新数据库 public GetDBInfo(String selStr)try ResultSet rs; mon = new ModifyTable();rs = mon.f(selStr);if(!(rs.next()/判断数据库中是否有内容JOpt

45、ionPane.showMessageDialog(null, 结果集中无记录, 无记录,JOptionPane.INFORMATION_MESSAGE);ResultSetMetaData rsmd=rs.getMetaData();/获得结果集列属性值rows = new Vector();columnHeads = new Vector();for(int i=1;i=rsmd.getColumnCount();i+)columnHeads.addElement(rsmd.getColumnName(i);/添加列名dorows.addElement(getNextRow(rs,rsmd

46、);/添加表行值while(rs.next();rs.close(); catch(Exception e)e.printStackTrace() ;3. Enter类private JFrame frame ;private JButton enterButton ;private JButton resetButton;用于标识登陆角色的单选按钮private JRadioButton radioButton1 ;private JRadioButton radioButton2 ;private JTextField nameText ;private JPasswordField pa

47、sswordText ;表示登录身份:public static boolean isManager = false ;实现效果:图7-1用户登陆界面图基本实现:(1)图片载入:JLabel label4 = new JLabel(); ImageIcon icon = new ImageIcon(E:学习软件工程 StoreHouse2008312121559386_2.jpg);label4.setIcon(icon);(2)单选按钮:ButtonGroup group = new ButtonGroup();radioButton1 = new JRadioButton(管理员,fals

48、e);radioButton2 = new JRadioButton(客户,true);group.add(radioButton1) ;group.add(radioButton2) ;(3)监控器的设定:public void actionPerformed(ActionEvent e)boolean tmp = false ;Object source = e.getSource();if(source = enterButton)try ResultSet rs; mon = new ModifyTable();rs = mon.f(select * from host); while

49、(rs.next() if(nameText.getText().equals(rs.getString(2) & passwordText.getText().equals(rs.getString(3) tmp = true ; Select select = new Select(); this.dispose() ; break ; rs.close() ; catch (Exception ex) ex.printStackTrace() ; if(tmp = false ) JOptionPane.showMessageDialog(null, 输入密码或用户名错误, 登录信息,J

50、OptionPane.INFORMATION_MESSAGE); nameText.setText(); passwordText.setText() ; else if(source = resetButton)nameText.setText();passwordText.setText() ;else if(source = radioButton1)isManager = true ;else if(source = radioButton2)isManager = false ;4. InStoreHouse类基本成员变量:private JFrame frame ;输入信息的11个

51、文本框:private JTextField text1 - 11; private JTextField infoText ;private JButton okButton ;private JButton backButton ;设置日期格式:private static final String YYYMMDDHHMMSS = yyyy/MM/dd HH:mm:ss;基本函数:/SQL语句生成public String getSQL()/自动生成插入时间 public String insertTime()/自动生成入库IDpublic String inHouseID()/清除文本框

52、public void clear()实现效果:图7-2 商品入库界面图基本功能实现:监听器的设定:public void actionPerformed(ActionEvent e) Object source = e.getSource() ; if(source = okButton) try mon = new ModifyTable();String SQL = getSQL(); System.out.println(SQL);mon.setSQL(SQL);mon.modifyRecord();SQL = insertSQL();mon.setSQL(SQL); mon.modi

53、fyRecord(); infoText.setText(存储成功); clear() ; catch (Exception ex) ex.printStackTrace() ; else if(source = backButton) frame.dispose() ; new Select() ; 5. OutStoreHouse类基本成员变量:private JFrame frame ;private JButton okButton ;private JButton backButton ;private JTextField text1;private JTextField text

54、2;private JTextField text3;private JTextField text4;private static final String YYYMMDDHHMMSS = yyyy/MM/dd HH:mm:ss;private Integer num ; /修改数据里中数量的临时变量基本函数:同InStoreHouse雷同实现效果: 图7-3 商品出库界面图基本功能实现:处理物品编号不存在,以及数量不足的问题:public void actionPerformed(ActionEvent e)Object source = e.getSource() ;if(source

55、= okButton)tryString SQL=getGoodsSQL();ResultSet rs; mon = new ModifyTable();System.out.println(SQL);rs = mon.f(SQL); if(!(rs.next()/判断数据库中是否有内容JOptionPane.showMessageDialog(null, 输入货物编号不存在, 提示信息,JOptionPane.INFORMATION_MESSAGE);text3.setText(操作失败);clear() ;elseif(num = Integer.valueOf(rs.getString(1).i

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!