版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南工业大学本科生毕业设计(论文)PAGE摘要随着现代工业的发展,计算机信息管理系统越来越受到企业重视。库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。本文主要分析了库存管理系统的一些基本功能和组成情况,包括系统的需求分析、系统结构,功能模块划分以及数据库模式分析等,同时也论述了库存管理系统开发时的主要设计思想及系统实现的详细过程及使用方法。结构严谨、性能稳定、使用方便。本系统对于库存管理方面所遇到的各种问题,如工作量大,数据更新不及时,可靠性低等都做出详细的解决方案,本系统是以适应当前计算机信息管理的需要,紧密结合了库存管理在计算机信息管理方面的应用,实现了管理人员对库存的现代化管理,从而进一步提高了库存管理的工作效率。系统基于B/S模式,采用JSP和Mysql数据库系统来实现库存信息管理,库存警示,信息查询等功能。强大的查询和报表功能,能够全面、及时地反映当前库存状况。关键词:库存管理,数据库,Java,MysqlAbstractWiththedevelopmentofmodernindustry,theinformationmanagementsystemofthecomputerisbeingpaidmoreattentiontobyenterprises.Warehousemanagementsystemisatypicalmanagementinformationsystem(MIS),whichmainlyincludesdatabasecreationandmaintenance,andfront-endapplicationdevelopmentaspects.Thispaperhasanalyzedsomebasicfunctionsoftheadministrativesystemofthestockandmakesupthesituationmainly,includingthesystematicdemandisanalyzed,systematicstructure,thefunctionmoduledividesandthedatabasemodelisanalyzedetc.,atthesametime,itfocusesonthedevelopmentofthewarehousemanagementsystematthemaindesignconceptsandsystemstoachievethedetailedprocessanduse.Well-structuredsystem,stableperformance,anditiseasytouse.Thesystemforwarehousemanagementencounteredbyvariousproblems,suchasheavyworkload,updatedataisnottimely,reliableandsolowadetailedsolution,thesystemisadapttothecurrentcomputerinformationmanagementneeds,incloseconnectionwiththewarehousemanagementincomputerinformationmanagementapplication,andthemanagementofinventoriesofmodernmanagement,soastofurtherenhancetheefficiencyofinventorymanagement.ThissystembasesonB/SmodelandusesJSPandMysqldatabasesystemtoachieveinventoryinformationmanagement,stockwarning,statisticandinquiryandotherfunctions.Withpowerfulqueryandreporting,thesystemcancomprehensivelyandtimelymannertoreflectthecurrentinventorysituation.Keywords:WarehouseManagement;Database;InformationManagement;B/SModel;JSP;Mysql目录1概述 ….11.1管理信息系统的概述 11.2库存管理系统简介 11.2.1课题开发背景 21.2.2课题开发意义 21.3课题开发目标 22系统运行环境及系统开发技术 32.1系统运行环境 32.1.1硬件环境 32.1.2软件开发环境 32.2系统开发技术 32.2.1JSP简介 32.2.2Servlet简介 42.2.3DAO模式简介 42.2.4Mysql数据库简介 53系统分析与设计 63.1系统可行性分析 63.1.1经济可行性 63.1.2操作可行性 63.1.3技术可行性 63.2系统需求分析 63.3总体功能设计 73.3.1系统功能模块图 73.3.2总体功能流程图 94数据库设计 124.1数据库设计思想 124.2数据库E-R图设计 124.3数据库表设计 135系统详细设计与实现 165.1系统登录界面设计 165.2系统主界面的设计 165.3系统主要功能实现 175.3.1原材料管理 175.3.2产品管理 225.3.3仓库管理 225.3.4入库查看 235.3.5出库查看 235.4数据库连接 246系统测试及结果分析 276.1测试综述 276.1.1软件测试综述 276.1.2数据库测试 27结论 28参考文献 29致谢 30
1概述随着中国电子商务、互联网业务的迅猛发展。国内许多企业已跨入电脑网络管理时代,并因此提高了管理效率和市场竞争力。但目前仍有部分企业还停留在原始管理阶段。随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,在社会的各个领域发挥着越来越重要的作用。在如此激烈的社会形势和激烈的市场竞争下,愈来愈多的企业管理者意识到效率管理和科学管理的重要性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的管理理念是每一个企业管理者的渴望,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。库存管理系统是商业信息管理的重要部分,面对大量的商品信息,采用人力处理将浪费大量的时间、人力和物理,且对数据操作的准确性不高。作为计算机应用的一部分,使用计算机对物资信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、保密性好等。本文提出了一种易于操作的库存管理系统对整个过程中涉及到的表单进行半自动化处理。用户通过使用本系统能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,提升企业市场竞争力,与世界接轨的重要条件。1.1信息管理系统概述管理信息系统(简称MIS)是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。现在的管理信息系统的基本功能包括:数据处理功能,计划功能,控制功能,预测功能,辅助决策功能。它是信息系统的一个子系统,它以计算机技术、通讯技术和软件技术为技术基础,同时将现代管理理论、现代管理方法及各级管理人员融为一体,最终为某个组织整体的管理与决策服务,是由人和计算机组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。完善的管理信息系统MIS具有以下四个标准:确定的信息需求、信息的可采集与可加工、可以通过程序为管理人员提供信息、可以对信息进行管理。信息是管理上的一项极为重要的资源,管理工作的成败取决于能否做出有效的决策,而决策的正确程度则在很大程度上取决于信息得质量。所以能否有效的管理信息成为企业的首要问题,管理信息系统在强调管理、强调信息的现代社会中越来越得到普及。1.2库存管理系统简介当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息处理系统的环境。计算机最大的好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。库存管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以库存管理系统应该能够为用户提供充足的信息和快捷的查询手段。尤其对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。1.2.1仓库作为一总货品资源的集散地,货品的种类繁多,包含很多的信息数据的管理。据调查得知,以前仓库进行信息管理主要使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点。对于货品的出入库情况的统计和核实等往往采用对账本的人工检查,对管理者的管理权限等不受约束,任何人都可查看,这样容易引起资料外泄。另外,时间一长,将产生大量的文件和数据,容易出错,由于数据繁多,对于查找、更新和维护都带来了不少的困难。总的来说,就是缺乏系统、规范的信息管理手段。作为计算机应用的一部分,使用计算机对物资信息进行管理,具有手工管理所无法比拟的优点。例如:存储量大、检索迅速、查找方便、保密性好、可靠性高、寿命长、成本低等。因此,很有必要建立一个库存管理系统,使货品管理工作规范化,系统化,程序化。提高信息处理的速度和准确性。1.2.2随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。因此,平衡公司库存投资与其它资金需求至关重要。库存管理又涉及入库、出库的产品、操作人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于提高企业的生产效率,都具有十分重要的现实意义。1.3课题开发目标设计和实现商品库存管理系统,使库存管理的工作系统化、规范化和自动化,从而达到提高管理效率的目的。(1)利用计算机系统实现原材料和成品的库存管理;(2)流程符合原材料和成品的库存要求;(3)查询方便,无论是按编号、名称、类别、时间其中任一项都可以进行有效查询;(4)系统扩充容易,方便以后系统的扩展和性能维护;(5)友好的用户界面,既面向系统开发者,又面向用户。2系统运行环境及系统开发技术2.1系统运行环境 系统运行环境包括硬件环境和软件环境两部分。2.1.1硬件环境 本系统运行的硬件环境如下:Cpu:没有特殊要求,建议主频在1.56GHz以上;内存:512MB以上的内存。2.1.2软件开发环境 本系统的软件开发环境如下:操作系统:Windowsxp/Windows7;数据库:Mysql数据库;数据库连接驱动:mysql-connector-java-5.1Java虚拟机:JDK1.6;服务器:Tomcat6.0;IDE:MyEclipse10.0。2.2系统开发技术本系统主要应用了JSP+Servlet+DAO的开发模式,应用Mysql数据库进行数据的管理,实现强大的信息查询管理。本系统的开发主要是使用在MyEclipse平台下的Java语言,java语言是面向对象的编程语言,因此本系统有很好的扩展性。2.2.1JSPJSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP全名为javaserverpage,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%,%>形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。2.2.2ServletServlet是在服务器上运行的小程序。这个词是在Javaapplet的环境中创造的,Javaapplet是一种当作单独文件跟网页一起发送的小程序,它通常用于在服务器端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI(CommonGatewayInterface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,JavaServlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。Servlet的工作模式:客户端发送请求至服务器;服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端。2.2.3DAO模式简介DAO(DataAccessObject)是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:1.一个DAO工厂类;2.一个DAO接口;3.一个实现DAO接口的具体类;4.数据传递对象(有些时候叫做值对象).具体的DAO类包含了从特定的数据源访问数据的逻辑。DAO模式是DataAccessor模式和ADO(ActiveDomainObject)模式两个模式的组合。DataAccessor模式的实质就是封装了对数据库访问的实现机制,仅对应用程序公开逻辑操作。实现DataAccessor的功能复杂程度由开发的封装细节的程度来决定。通过引入DAO模式,业务逻辑更加清晰,且富于形象性和描述性,更利于系统日后的维护和升级。2.2.4Mysql数据库简介Mysql是一个关系型数据库管理系统,由瑞典MysqlAB公司开发,目前属于Oracle公司。Mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql的SQL语言是用于访问数据库的最常用标准化语言。与其他的大型数据库例如Oracle、DB2、SQLServer等相比,Mysql自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。Mysql软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择Mysql作为网站数据库。MySQL服务器原本就是开发比已存在的数据库更快的用于处理大的数据库的解决方案,并且已经成功用于高苛刻生产环境多年。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。它的连接性、速度和安全性使MySQL非常适合访问在Internet上的数据库。MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。它也可以是一个嵌入的多线程库,你可以把它连接到你的应用中而得到一个小、快且易于管理的产品。
3系统分析与设计3.1系统可行性分析可行性分析研究的目的就是用最小的代价在尽可能短的时间里确定问题是否能解决,通过复杂系统的规模与目标,研究与此类似的系统后,我们具体从下面三方面考虑。3.1.1经济可行性商品库存管理系统是一个小型的管理系统,在开发时需要软件开发人员花费一定的时间和精力,因此需要一定的资金。本系统开发的目的,是通过系统开发,实现库存管理工作计算机化,提高业务的处理速度和规范化程度,进一步通过计算机网络系统实现整个企业管理信息化。该系统可以提高管理工作的质量和效率,使库存管理工作变繁为简,使其更加合理化、规范化。工作效率的提高就意为着整体水平的提高,是非常值得投资的。3.1.2操作可行性本系统是一款B/S模式的库存管理系统,在库存信息处理方面做得很精准规范。因为库存管理人员已经有丰富的信息管理经验,只要有一定的计算机应用经验,加之本系统操作简单,易于学习,所以很容易就可以熟练使用。3.1.3技术可行性系统采用Java语言作为开发语言。Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的动态的语言。它具有理论严密、使用方便、易学易用等特点,利用它设计的系统具有界面友好、工具丰富速度较快的特点。再结合Mysql数据库技术,编写SQL语言访问数据库,可以轻松实现强大的查询、修改、入库、出库操作。3.2系统需求分析库存管理主要实现对成品库和原料库日常业务的管理,系统使用对象是成品库和原料库的库管员,主要功能包括:登陆认证:作为库存管理系统,用户的权限必须是明确的,这样才能保证库存信息的安全。 本系统主要分为原料库管理员和成品库管理员。不同管理员的所操作的库是不一 样的。原材料基本信息管理:实现对原材料基本信息的增、删、改、查。主要信息包括原料编号、原料名称、原料类别等信息。产品基本信息管理:实现对产品基本信息的增、删、改、查。主要信息包括产品编号、产品名称、产品类别等信息。仓库信息管理:企业设多个仓库,可对仓库信息进行增、删、改。区位管理:某些仓库被划分为多个库区,每个库区又被划分为多个库位,可以对区位信息进行信息管理。入库流程管理:产品或原料入库,生成入库单,增加库存。入库单应包括入库时间、入库人、入库货物信息,入库库区、入库库位等信息。出库流程管理:产品或原料出库,生成出库单,减少库存。出库单应包括出库时间、出库人、出库货物信息,出库库区、出库库位等信息。库存盘点:库管员要定期对库存货物进行盘点,进行报盈(增加库存)和报亏(减少库存)操作,以保证库存信息的正确性。查询统计:支持入库查询、出库查询、当前库存查询、超期报警查询、库存不足查询等。3.3总体功能设计本部分主要是根据系统需求分析,划分本系统最终要实现的功能,搭好系统的结构框架。画出各个功能模块图,指导本系统的最终开发。使得在开发中目标明确,结构清晰,在头脑中形成一个总体轮廓。3.3.1系统功能模块图本系统在设计时采用结构化程序的设计方法,系统的总体结构采用导航来调用相应的jsp页面。利用jsp页面对信息进行管理、数据录入、信息查询、系统管理等工作。具体设计的功能模块如下:原材料管理模块该模块包括进货原材料信息管理模块和增加原材料管理模块。原材料信息管理模块可修改存在仓库的原材料信息和删除存在仓库的原材料信息,并可以进行入库。增加原材料管理模块可添加仓库中的原材料信息。产品管理模块该模块包括进货产品信息管理模块和增加产品管理模块。产品信息管理模块可修改存在仓库的产品信息和删除存在仓库的产品信息,并可以进行入库。增加产品管理模块可添加仓库中的产品信息。仓库管理模块该模块可以管理仓库信息,可以增加、删除、修改仓库信息,并能修改仓库的库区和库位信息。入库模块该模块主要是显示原材料和产品入库的入库信息,生成一个简单的入库单。出库模块该模块主要是显示原材料和产品出库的出库信息,生成一个简单的出库单。根据以上系统功能的分析与设计,五个系统功能模块的划分,具体的功能模块图如下图3.1所示:图图3.1具体功能模块图图3.1系统功能模块图3.3.2总体功能流程图整个系统的流程由用户登录开始,系统检验用户名和密码合法后,用户成功登录,进入系统后可以对库存物品进行基本操作,如增加库存物品种类,修改库存物品信息,出、入库物品等,还可以管理仓库信息,查看仓库的库区、库位等。用户完成工作后即可退出系统。整个系统的流程可以用下面的图3.2所示:图图3.2系统总体功能流程图入库单和出库单的操作是库存管理系统中最重要的两个操作,在整体功能设计时,先判断仓库是否有新增的原材料或产品,有则输入新增原材料或产品的基本信息,然后判定原材料或产品是否要进库,确认进库的话选择相应的仓库,再选择相应的库区和库位,输入入库的数量和单位就处理完毕,在原材料或产品的基本信息模块中就可以查看库存。出库的具体流程图如下图3.3所示:输入要入库的数量和单位保存入库单输入要入库的数量和单位保存入库单选择要入库的库区和库位是否有新增原材料或产品选择要入库的仓库N登记原材料或产品的信息Y开始结束图3.3入库功能流程图
出库单的处理流程像入库单的处理一样,当有原材料或产品要出库时,先判断仓库中是否有库存,包括出库原材料或产品的相关信息,如果确认此原材料或产品要出库,然后选择相应的要出库的仓库,再选择相应的库区和库位,然后输入合适的出库数量和单位,如果合适就允许出库,出库单据处理完毕;如果不合适,需要修改出库数量,直至数量合适允许出库。出库的具体流程图如下图3.4所示:开始查看要出库的原材料或产品信息开始查看要出库的原材料或产品信息根据信息选择要出库的仓库根据信息选择要出库的库区根据信息选择要出库的库位输入要出库的数量和单位保存出库单结束图3.4出库功能流程图
4数据库设计4.1数据库设计思想本库存管理系统的数据库设计采用了MySQL数据库,数据库名为lmydata,采用JDBC(Java数据库连接)连接数据库。根据系统需求,在登录系统时提供所要的身份验证信息,所以设计了管理员信息表。经过身份验证后,进入系统。在功能操作模块中涉及到原材料管理,产品管理,要设计原材料信息表,产品信息表。操作员要进行基本的管理操作,增加原材料、产品;修改原材料信息,修改产品信息;并对入库的原材料和产品进行列表显示。在入库管理模块中操作员要进行基本的入库管理操作,增加入库原材料和产品,需要设计入库表。在出库管理模块中操作员要进行基本的出库管理操作,增加出库原材料和产品,需要设计出库表。功能操作中还涉及到仓库管理,所以要设计仓库信息表,由于仓库还涉及到库区和库位,所以将库区和库位作为仓库信息表中的两个属性。在设计表时要注意数据类型的选取要合适,约束的定义要准确,为了方便理解,最好还要添加描述,使设计出来的表一目了然。通过与数据库连接,用数据库表保存系统所需要的功能数据信息,实现系统的各个功能。根据以上的分析,本系统采用关系型数据库并设计了6个数据库表,分别是原材料信息表、产品信息表、管理员信息表、出库信息表、入库信息表、仓库信息表。4.2数据库E-R图设计E-R方法是“实体-联系方法”(Entity-RelationshipApproach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。在ER图中有如下四个成分:矩形框:表示实体,在框中记入实体名。菱形框:表示联系,在框中记入联系名。椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1;对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)。本系统是库存管理系统,根据上面的结构设计和初步的数据库设计思想,规划的实体主要有操作员,原材料实体、产品实体、仓库实体等。这些实体包含各种具体实际信息,通过相互之间的作用形成数据的流动。它们的E-R图如下图4.1所示:nnnn1存放仓库产品管理操作员名字操作员操作员密码入、出库原材料原材料编号原材料名字原材料类型产品编号产品名字产品类型仓库编号仓库名字库区数库位数1nnm图4.1库存系统E-R设计图4.3数据库表设计本系统是一个商品库存管理系统,在系统详细设计之前应该对系统中所涉及到的对象实体进行信息建模,并最终得到完整的数据库表结构。(1)原材料信息表(material)实体“原材料”位于整个系统实体的核心位置,其包括的属性有:原材料编号、原材料名称、原材料类别。因此“商品”实体所对应的数据表结构如表4.1所示:表4.1material表结构字段名称数据类型是否可为空约束描述IdVARCHAR(255)NO主键原材料编号nameVARCHAR(255)YES原材料名称typeVARCHAR(255)YES原材料类型(2)产品信息表(product)实体“产品”位于整个系统实体的核心位置,其包括的属性有:产品编号、产品名称、产品类别。因此“商品”实体所对应的数据表结构如表4.2所示:表4.2product表结构字段名称数据类型是否可为空约束描述IdVARCHAR(255)NO主键产品编号nameVARCHAR(255)YES产品名称typeVARCHAR(255)YES产品类型(3)管理员信息表(administrator)管理员负责所有物品入库、出库的操作,此表用来保存合法的管理员信息,包括的属性有管理员姓名和管理员密码,具体结构设计如表4.3所示:表4.3administrator表结构字段名称数据类型是否为空值约束描述usernameVARCHAR(255)NO主键管理员姓名PasswordVARCHAR(255)YES管理员密码(4)仓库信息表(warehouse)仓库信息表是用来保存所有仓库相关信息的表,具体的结构设计如表4.4所示:表4.4cangkuxinxi表结构字段名称数据类型是否为空值约束描述idVARCHAR(255)NO主键仓库编号nameVARCHAR(255)YES仓库名字zoneNumINT(11)YES库区数weiNumINT(11)YES库位数(5)出库信息表(outvoucher)出库信息表用来保存对已进库的物品进行出库的信息保存,具体的结构设计如表4.5所示:表4.5outvoucher表结构字段名称数据类型是否为空值约束描述_timeVARCHAR(255)YES出库日期managerIDVARCHAR(255)YES管理员编号ProOrMateIDVARCHAR(255)YES出库物品编号numINT(11)YES出库数量metricVARCHAR(255)YES单位WareHouseIDVARCHAR(255)YES仓库编号ZoneIDVARCHAR(255)YES库区编号WeiIDVARCHAR(255)YES库位编号(6)入库信息表(invoucher)入库信息表用来保存对已进库的物品进行入库的信息保存,具体的结构设计如表4.6所示:表4.6intvoucher表结构字段名称数据类型是否为空值约束描述_timeVARCHAR(255)YES入库日期managerIDVARCHAR(255)YES管理员编号ProOrMateIDVARCHAR(255)YES入库物品编号numINT(11)YES入库数量metricVARCHAR(255)YES单位WareHouseIDVARCHAR(255)YES仓库编号ZoneIDVARCHAR(255)YES库区编号WeiIDVARCHAR(255)YES库位编号
5系统详细设计与实现5.1系统登录界面设计系统登录模块主要用于验证工作人员登录系统时输入的用户名、密码是否正确,如果正确,工作人员进入系统,否则将不能进入此系统。实现此功能的文件是Login.java和CheckLogin.java,系统登陆窗口的运行界面如下图5.1所示:图5.1系统登录界面5.2系统主界面的设计经过用户身份验证后,进入系统主界面,系统主界面主要是让用户对该系统的各个功能模块一目了然,使用方便快捷,在主界面上部设计了一个导航栏,包括当前登录的人员角色、首页、功能操作、个人信息和安全退出;在主界面的下部可以看到本系统操作的一些注意事项,分别是仓库管理、原材料管理、产品管理、入库和出库。系统主界面运行结果如下图5.2所示:5.3系统主要功能实现系统功能操作模块主要包括原材料管理模块、产品管理模块、仓库管理模块、出库模块、入库模块,每个模块具体实现如下。5.3.1原材料管理原材料管理模块主要有两部分,一是管理原材料信息,一是增加新的原材料信息。截图如下:(1)如果有要入库的新原材料,点击增加原材料进入到该页面,填入相关信息后提交即可,如下图:(2)对于已存在的原材料信息可以进行修改、删除、和入库操作。点击原材料信息进入到该页面。如下图:原材料在存储过程中可能涉及到基本信息的修改,本系统实现了这一功能,方便实时更新原材料的基本信息。本系统可以修改的原材料信息有材料名称和材料类型信息,注意材料编号是不能修改的。改原材料信息的页面如下图:可以对已有的原材料进行入库操作,此时仓库信息会已列表的形式展示所有仓库的仓库信息,可以在指定的位置进入入库操作。对于不同的原材料是可以放在同一个仓库的库区的相同库位的。如下图:入库界面如下:将原材料入库后会生成相应的入库单,包括入库的物品ID,入库的仓库ID,存放的库区ID和库位ID,入库的日期,入库人,入库物品的单位,以及入库的数量等信息。对于已入库的原材料可以进行出库操作,且该原材料的信息是不能删除的(删除按钮消失,而会显示“出库”)。如下图:对于已入库的原材料可以进行出库操作,,此时仓库信息会已列表的形式展示该材料在所有仓库的存储和库存量等信息,可以在指定的位置进行出库操作。如下图:出库界面如下图:将原材料出库后会生成相应的出库单,包括出库的物品ID,出库的仓库ID,存放的库区ID和库位ID,出库的日期,出库人,出库物品的单位,以及出库的数量等信息。5.3.2产品管理由于产品管理和原材料操作大同小异,流程也都很相似,所以此部分功能的操作参考5.3.1原材料管理模块。5.3.3库存管理库存管理模块主要是管理仓库的信息。包括库名,库区数和库位数。可以增加和删除仓库,修改仓库的区位和库位数。仓库信息页面如下图:可以修改的仓库信息有仓库名称、仓库的库区数和库位数。修改仓库信息的页面如图:增加仓库时需要填写仓库名称,仓库的库区数和库位数。增加仓库的页面如图:5.3.4入库查看本功能模块主要功能是生成出库单,并以列表的形式显示出来。效果如下图:看以看到的入库信息有入库时间、入库人、入库物品、入库数目、单位、仓库、库区和库位等信息。5.3.5出库查看本功能模块主要功能是生成入库单,并以列表的形式显示出来。效果如下图:5.4数据库连接用JDBC连接Mysql数据库,步骤是:(1)向工程中添加数据库驱动包,即将JAR包导入到项目中;(2)载入JDBC驱动程序。如果要载入驱动程序,只需要在Class.forName方法中指定数据库驱动程序的类名:Class.forName(DriverName)。这样做就自动创建了驱动程序的实例,并注册到JDBC驱动程序管理器。这个参数接收一个表示完全限定类名(即包括包名的类名)的字符串,载入对应的类。这个调用可能会抛出ClassNotFoundException异常,因而必须放在try/catch块中。(3)建立连接。载入JDBC驱动程序后,必须连接URL指定数据库服务器的主机名、端口和数据库名。数据库连接成功,在登录系统时会提示操作员或管理员成功登陆,若数据库连接失败,则登录时系统会抛出异常,并提示数据库连接失败的错误,操作员或管理员进入不了系统。对于本系统,为了降低系统的耦合度和实现代码的复用,提高编程效率,因此在数据库连接时,首先创建了一个DatabaseAdmin.java的类,用于生成以连接数据库的各个参数为属性的对象。这样即使换了不同的数据库也可以复用这个对象。这个类的主要代码如下:publicclassDatabaseAdmin{ privateStringurl; privateStringdriver; privateStringusername; privateStringpassword; publicDatabaseAdmin(){ this(null,null,null,null); } publicDatabaseAdmin(Stringurl,Stringdriver,Stringusername,Stringpassword){ this.url=url; this.driver=driver; this.username=username; this.password=password; }…..}然后再创建ConfigMessage.java类,把DatabaseAdmin的一个对象作为它的对象的一个属性。通过读取config.xml中的配置信息来给DatabaseAdmin对象赋值,最后返回一个DatabaseAdmin的对象。ConfigMessage.java的代码如下:publicclassConfigMessage{ privatestaticDatabaseAdmindatabaseAdmin=null; privatestaticDocumentgetDocument(){ DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance(); StringclassPath=ConfigMessage.class.getResource("ConfigMessage.class").toString(); intloc=classPath.indexOf("classes"); StringfileName=classPath.subSequence(0,loc)+"config.xml";//绝对路径 try{ URIuri=newURI(fileName); returndbf.newDocumentBuilder().parse(newFile(uri)); }catch(SAXExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }catch(ParserConfigurationExceptione){ e.printStackTrace(); }catch(URISyntaxExceptione){ e.printStackTrace(); } returnnull; } publicstaticDatabaseAdmingetDatabaseAdmin(){ if(databaseAdmin==null){ Documentdoc=getDocument(); if(doc!=null){ Elementdatabase=(Element)(doc.getElementsByTagName("database").item(0)); Elementusername=(Element)(database.getElementsByTagName("username").item(0)); Elementpassword=(Element)(database.getElementsByTagName("password").item(0)); Elementurl=(Element)(database.getElementsByTagName("url").item(0)); Elementdriver=(Element)(database.getElementsByTagName("driver").item(0)); databaseAdmin=newDatabaseAdmin(url.getFirstChild().getNodeValue(), driver.getFirstChild().getNodeValue(), username.getFirstChild().getNodeValue(), ""); } } returndatabaseAdmin; }}再得到DatabaseAdmin.java的一个对象后,通过工厂方法来生成一个连接数据库的连接。这个连接通过类Databases.java类来生成。Databases类没有任何属性,它只有一个静态方法getConnection(),它返回一个Connection类型的对象。本系统就通过这个Connection类型的对象来连接数据库的。该方法的主要代码如下:publicstaticConnectiongetConnection(){ Connectionconn=null; DatabaseAdminda=ConfigMessage.getDatabaseAdmin(); Stringurl=da.getUrl(); Stringdriver=da.getDriver(); Stringuser=da.getUsername(); Stringpassword=da.getPassword(); try{ Class.forName(driver); conn=DriverManager.getConnection(url,user,password); }catch(ClassNotFoundExceptione){ e.printStackTrace(); System.out.println(user); System.out.println(password); }catch(SQLExceptione){ e.printStackTrace(); System.out.println(user); System.out.println(password); } returnconn; }这样在对数据库进行操作的时候只要通过调用Databases类的静态方getConnection()就能方便的连接数据库了。
6软件测试与结果分析6.1测试综述为了确保本系统的质量和可靠性,要对系统进行全面的测试和调试,主要是软件测试和数据库测试,下面分别对它们进行了介绍。6.1.1软件测试综述软件测试阶段的主要任务是发现并排除在分析、设计、编程阶段中产生的各种类型的错误,以得到可使用的软件系统。从用户和软件开发人员不同的角度看,进行软件测试的目的是完全不同的。用户往往是通过测试暴露出软件所存在的错误和缺陷,以考虑是否能接受该产品;而软件开发人员则希望通过测试来证实软件产品不存在任何错误和缺陷,验证该软件已满足了用户的需求,从而提高用户使用该软件产品的信心。因此,软件开发人员往往会选择那些导致程序失败概率小的测试数据去测试软件。显然,这样的测试对完善和提高软件质量毫无价值。因此,测试的目的应该是从软件包含有错误这一前提出发,通过测试查出并改正尽可能多的错误,不断提高软件的质量和可靠型软件测试分为动态测试和静态测试。按产生测试数据的不同方式,动态测试可分为功能测试和结构测试,即黑盒测试和白盒测试。本系统采用的是黑盒测试。所谓黑盒测试是把测试对象视为一个黑盒子,测试人员只着眼于软件的外部特性,而不考虑软件的内部的逻辑结构,是在软件接口上进行的测试。6.1.2数据库测试测试系统与数据库是否连接上主要是看数据库连接的参数是否正确,在ConfigMessage.java类中写一个main方法进行测试,如果能够成功从config.xml中读取出连接数据库的各个参数并能成功显示在命令行下则证明数据库能连接正确。测试代码如下:publicclassConfigMessage{ privatestaticDatabaseAdmindatabaseAdmin=null; privatestaticDocumentgetDocument(){ DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance(); StringclassPath=ConfigMessage.class.getResource("ConfigMessage.class").toString(); intloc=classPath.indexOf("classes"); StringfileName=classPath.subSequence(0,loc)+"config.xml";//绝对路径 try{ URIuri=newURI(fileName); returndbf.newDocumentBuilder().parse(newFile(uri)); }catch(SAXExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }catch(ParserConfigurationExceptione){ e.printStackTrace(); }catch(URISyntaxExceptione){ e.printStackTrace(); } returnnull; } publicstaticDatabaseAdmingetDatabaseAdmin(){ if(databaseAdmin==null){ Documentdoc=getDocument(); if(doc!=null){ Elementdatabase=(Element)(doc.getElementsByTagName("database").item(0)); Elementusername=(Element)(database.getElementsByTagName("username").item(0)); Elementpassword=(Element)(database.getElementsByTagName("password").item(0)); Elementurl=(Element)(database.getElementsByTagName("url").item(0)); Elementdriver=(Element)(database.getElementsByTagName("driver").item(0)); databaseAdmin=newDatabaseAdmin(url.getFirstChild().getNodeValue(), driver.getFirstChild().getNodeValue(), username.getFirstChild().getNodeValue(), ""); } } returndatabaseAdmin; } publicstaticvoidmain(String[]args){ ConfigMessagecm=newConfigMessage(); DatabaseAdminda=cm.getDatabaseAdmin(); System.out.println(da.getUrl()); System.out.println(da.getDriver()); System.out.println(da.getUsername()); System.out.println(da.getPassword()); }}根据以上编写的数据库连接测试代码,以用户名“root”,密码为空进行连接,各个参数能够正确读取并显示,如下图:进一步打开系统登录页面,输入用户名密码能够正常登录,说明数据库连接成功。如果提示“数据库连接错误”则说明数据库连接未成功。
结论1已经实现的功能本系统已经实现了库存系统的一下基本功能:1、用户登录功能2、库存原材料的基本信息的浏览、查询、修改、删除、添加的功能3、库存产品的基本信息的浏览、查询、修改、删除、添加的功能4、库存出入库的浏览、修改、删除、记录添加的功能5、仓库的相关管理操作。2待完善的功能本系统待完善的其他功能:1、可以设定查询条件本系统自动将数据库中相关信息以列表的形式显示出来,而不可以根据特定条件逐级显示信息,不能有效的查找到相关物品的出入库信息,2、用户权限功能用户权限可以将管理分级更加明确分工同时更加确保系统的安全性。3、分页显示本系统的输出页面太过简洁,没能实现分页显示,不方便查看,且界面不太美观。4、自动进行库存盘点 本系统虽然可以将出入库的物品进行统计,但主要的分析的工作仍需要人工。这与最初开发的目标还有一定的距离。
参考文献[1]李兴华,王月清.JavaWeb开发实战经典基础篇[M].北京:清华大学出版社,2010.8.[2]明日科技.JavaWeb从入门到精通[M].北京:清华大学出版社,2012.9[3]林信良.JSP&Servlet学习笔记[M].北京:清华大学出版社,2012.5[4]许令波.深入分析JavaWeb技术内幕[M].北京:电子工业出版社,2012.9[5]BudiKurniawan著,崔毅、俞哲皆、俞黎敏译,Servlet和JSP学习指南[M].北京:机械工业出版社,2013.4[6]卢汉鹏等.JSP开发技术详解[M].北京:化学工业出版社,2010.7[7]孙更新等.Java程序开发大全:基于MyEclipse平台+Struts+Hibernate+Spring主流框架开发[J].北京:中国铁道出版社,2010.8[8]BenForta,刘晓霞、钟鸣译.MySQL必知必会[M].北京:人民邮电出版社,2009.1[9]PaulDuBoi,杨晓云、王建桥、杨涛译.MySQL技术内幕(第4版)[M].北京:人民邮电出版社,2011.7[10]WatersD.李习文、李斌译.库存控制与管理[M].北京:机械工业出版社,2005.3[11]张海藩.软件工程导论第五版[M].北京:清华大学出版社,2008[12]王珊.数据库系统概论(第4版)[M].北京:高等教育出版社,2006.[13]CayS.Horstmann,GaryCornell,Java2核心技术[M].北京:机械工业出版社,2000,29-67[14]张峋、杨三成.关键技术:JSP和JDBC应用详解[M].北京:中国铁道出版社,2010.11
致谢本次毕业设计从开始到结束经历了较长时间。在这段时间得到了老师、同学以及朋友的帮助和支持,在此深表感谢!感谢他们的耐心指导和热心帮助,很多问题和困难在他们的帮助下迎刃而解。同时也要感谢网上的那些不知名的高手、前辈,从他们的文章中我找到了许多问题的解决办法,他们无私的分享开发过程中的种种经验,让我们这些新手备受鼓舞。首先我最想感谢的是我的指导老师王超老师,他严谨求实,一丝不苟的治学态度和勤勉的工作态度深深感染了我,我会把他作为我今后学习、工作和生活中的榜样。在毕业设计期间,从开题报告到毕业论文,王老师都给了我们很多好的建议,根据我们每个人系统的特点提出可以改进和完善的地方,让我们在不断学习中日益进步,也锻炼了我们联系实际的能力,让我思考问题也更加多元化。其次我要感谢我的同学、朋友们,在完成毕业设计的过程中,和他们一起研究、讨论。他们的学习精神和钻研精神给了我很大启发。不急不躁、遇事沉稳、迎难而上,这是我在毕业设计完成的过程中最大的感受,这也是今后学习、工作、生活中都应该坚持的态度。谢谢你们,亲爱的同学、朋友,大学中能够遇到你们,是我的幸运!衷心的希望以后的生活中你们能够意气风发,开心、充实的生活!最后,此次毕业设计能够最终顺利完成,也要归功于各位老师四年间的认真教诲和谆谆教导,使我能够很好的掌握专业知识,并在毕业设计中得以体现。最后,我向信息技术学院的全体老师们再次表示衷心感谢:谢谢你们!由于经验匮乏,能力有限,设计中难免有许多考虑不周全的地方,希望各位专家、教授、老师多加指教。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造\t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度呈现合集【人员管理篇】十篇
- 单位管理制度呈现大合集【人力资源管理篇】
- 3D视觉传感器公司企业文化管理方案
- 《病历标准性书写》课件
- 《电子商务复习》课件
- 2024年大学生暑期个人社会实践总结
- 中小学开学第一课373
- 电商行业行政后勤工作总结
- 七夕之爱 让企业生辉
- 2023-2024年项目安全培训考试题巩固
- 《电工技术》课件-电气安全及电气火灾预防
- 湖南省湘西州吉首市2023届九年级上学期期末素质监测数学试卷(含解析)
- 2023-2024学年湖北省武汉市东西湖区三年级(上)期末数学试卷
- GB/T 31771-2024家政服务母婴护理服务质量规范
- 2023-建筑施工技02课件讲解
- 期末试卷:福建省厦门市集美区2021-2022学年八年级上学期期末历史试题(原卷版)
- 美容院2024年度规划
- 装饰装修巡查记录表
- 公司安全生产事故隐患内部报告奖励工作制度
- 艾滋病预防知识讲座
- 零售服务质量提升
评论
0/150
提交评论