• 334.20 KB
  • 2022-04-22 13:33:51 发布

仓库管理系统的设计与分析毕业论文.doc

  • 33页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'更多论文http://www.docin.com/fanteral仓库管理系统的设计与分析毕业论文目录1前言11.1设计背景与意义11.2设计目标21.3系统开发环境31.3.1系统配置31.3.2开发工具31.3.3准备工作42系统分析52.1系统需求分析52.2系统功能分析52.3数据库需求分析63系统总体设计73.1数据库设计73.1.1实体关系图(E-R图)设计73.1.2数据流图103.1.3创建数据库113.2系统设计153.2.1系统功能结构图153.2.2业务流程图164系统功能模块设计164.1登陆模块164.2仓库管理系统模块174.2.1仓库管理系统主界面模块1732 更多论文http://www.docin.com/fanteral4.2.2入库登记模块184.2.3出库登记模块194.2.4移库登记模块194.2.5业务单位信息模块204.2.6业务查看模块215系统实现225.1建立与数据库连接的类225.2建立把弹出窗口置屏幕中央的类235.3登录系统的实现235.4系统主界面的实现245.4.1货物数据查询255.4.2入库登记实现265.4.3出库登记实现265.4.4移库登记实现265.4.5业务信息实现276总结与展望276.1总结276.2展望28致谢29参考文献30Abstract:31毕业设计成绩评定表321前言1.1设计背景与意义随着经济全球化和信息技术的迅速发展,作为企业降低生产成本、提高核心竞争力、增加经济效益的“第三利润源”——现代物流业正在世界范围内广泛流行。32 更多论文http://www.docin.com/fanteral现代物流业泛指原材料、产成品从起点至终点以及相关信息有效流动的全过程。它将运输、仓储、装卸、加工、整理、配送、信息等方面有机结合,形成完整的供应链,为用户提供多功能、一体化的综合性服务。我国自20世纪80年代初系统引进现代物流理论以来,科学技术的迅速发展以及加入世贸组织,我国的物流业得到了快速发展,全社会物流货物总值大幅度增长。资料表明,物流业已成为我国经济领域中发展最快、最活跃、最具热点的一个行业[4]。物流信息化建设随着物流行业的发展而受到重视,物流信息化通过对现有生产资源、人力资源、物流资源的管理,实现资金流、物流与信息流的“三流”统一。通过使用现代管理方法,实现物流作业的自动化,达到提高物流服务水平和质量的目的,大大提高了劳动生产效率。现代物流系统应在新的经营信息系统思想的指导下来设计物流信息系统,依靠现代科学技术,在计划、管理和控制以及作业环节等方面充分利用信息、快速反馈信息,为决策提供依据并辅助决策,提高物流效率和优化供应链的信息系统。现代物流信息系统的目的是在提高物流行业的效率并降低成本的同时,提高对顾客的服务水平[7]。在实际物流系统运作中,仓储是比较繁琐也比较重要的一个环节,它联结了生产者与客户,其运作的好坏将直接影响整个物流系统的成本与效率。使用人工式管理各项货品信息不仅效率低下,而且容易出错,安全性很差。并且在实际操作中,数据的查找和维护都不容易实现,容易发生差错,导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。随着物流业的发展,其规模的扩大,仓储将发挥越来越重要的作用。在物流信息管理系统中,高效方便的仓库管理系统,可以为生产经营提供坚强的后盾和有力的支持。因而仓库管理系统成为物流信息管理系统的一个必不可少的重要环节,仓库管理的信息化、计算机化已迫在眉捷。开发一个仓库物流管理系统可以提高物流管理的现代化程序,加强管理的信息化手段,提高工作效率,增加企业效益;还可以实时掌握库存最新动态,方便查询。1.2设计目标本仓库管理系统的设计目标主要是提供一个仓储业务及其作业管理的信息存储和检索平台,通过系统管理、仓库管理和业务信息管理等功能模块来实现仓库的综合管理,旨在从仓库的普遍特点出发,有针对性地解决仓库的日常管理等方面的问题,创建一套能够通用于各物流企业中的仓库管理系统[5]。32 更多论文http://www.docin.com/fanteral本系统主要用的是模块化设计,主要包含系统、仓库管理、业务信息这几个功能模块。系统操作简单,有计算机基础的人无需培训即可使用,即使是没有计算机基础的人只需经过简单的培训就可以很熟练的使用本系统。系统运行后,用户使用本系统时,不会也不必关心系统内部的结构及实现方法,即对用户来说是透明的,所以本系统是定位在界面友好、操作方便、功能齐全的原则上的,用户只需简单的用鼠标点击各界面上的选项卡或按钮就能执行相应的功能。通过开发仓库管理系统,至少可以实现以下的“六个有利”:1、有利于减少用在仓库管理系统上的人力资源。2、有利于提高仓库管理的效率。3、有利于用户对仓库货物存储的查询、更新、修改等操作。4、有利于仓库管理的保密性和安全性。5、有利于决策者从各种查询表里获得仓库的总体情况。目标系统应该达到以下要求:1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反应速度快。2、可靠性。能连续准确的处理业务,有较强的容错能力。3、可理解性。用户容易理解和使用该系统。4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。5、可用性。目标系统功能齐全,能够完全满足业务需求。6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。仓库管理系统的建设目标是:按照仓库管理信息的特点,利用仓库管理系统平台,围绕着“数据库、信息管理、应用”进行整体规划,实现对仓库信息的管理,实现对货物信息的管理和对整体的仓库存储和业务信息进行统计,从而极大的提高了仓库管理的效率。数据库:创建在仓库管理系统平台使用的数据库,管理员可以查询仓库管理的各项信息数据。信息管理:管理员可以对仓库进行分类查询,可以对仓库货物数据进行增加、修改、删除等,方便管理员对仓库的货物进行管理。32 更多论文http://www.docin.com/fanteral应用:仓库管理系统的汇总表可以让我们了解整个仓库的运作,从而为物流管理提供各种信息,有利于提高物流系统的总体水平。1.3系统开发环境1.3.1系统配置WindowsXP作为当今最为普及的操作系统,具有简单、容易操作、稳定强大的特点。一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。1.3.2开发工具JBuilder是目前最好的Java开发工具之一,在协同管理、对J2EE和XML的支持等方面都非常的优秀,它的这些特性是其他同类产品无法比拟的。同时它在Applet和EJB开发方面也具有独特的优势,使得它在J2EE工程开发界具有独特的优势,成为目前最流行的Java开发工具之一。一般来讲Jbuilder提供了企业数据库的动态链接,可以开发出基于网络的动态分布计算数据库管理系统。在现在的企业信息管理系统的实现中通常是结合Jbuilder和Weblogic_server来共同实现数据库开发系统。Jbuilder的主要特性包括四个方面:·Tomcat组件的集成:Tomcat组件是业界公认的优秀的网络开发软件,Jbuilder和它集成,大大方便了Java在网络和数据库分布计算方面的应用,使得Java的Web开发更容易。·企业信息化应用的开发功能:可以据此集成多种应用服务器,大大方便了Java在企业信息化方面的应用。提高了企业信息化的水平,促进了Java在工程界的广泛应用。·非常简单的程序发布功能:只需简单的步骤便可将自己的程序打包进行发布,大大方便了用户使用和发布自己的程序。·由于在现在的软件开发中团队合作是最重要的,Jbuilder就提供了团队开发能力,可以集成多种版本控制产品,方便了不同层次的用户使用。Jbuilder是按照SUN公司提供J2EE标准来构筑的,它是一个遵循J2EE标准的可视化集成开发环境,目前在业界具有广泛的用户,成为一个处于市场领先地位的跨平台环境,主要用于构建一些具有行业实力的企业Java小程序,如为企业信息化而产生的客户前台浏览界面,为特定的用户开发一些专业的程序包和特定的类库。JBuilder继承了Borland公司开发工具系列的优秀特性,继承了许多Delphi和C++32 更多论文http://www.docin.com/fanteralBuilder产品的优秀特性,这使得用过这两种产品的用户很容易的就可以过渡到JBuilder的开发环境当中,熟练的开发出高质量的Java程序。在JBuilder这个开发环境中实际上包含了用户在Java集成开发环境中所需要的一切东西。包括对常用的面向对象语言UML建模工具的支持。我们可以在这个环境下对系统进行建模,进行系统调试,对系统进行打包发布。SQLServer在管理企业信息方面最灵活和最经济高效。在尽可能提高服务质量的同时削减了管理成本。除极大地提高质量和性能以外,SQLServer作为微软公司的数据库产品,能够和绝大多数建立在WindowsXP平台上的软件兼容,具有很强的兼容性,并且SQLServer本身功能也十分强大,其中还有SQL查询分析器、SQLServer服务管理器、企业管理器等功能强大的工具,所以我选择SQLServer作为我们的的后台数据库。1.3.3准备工作JDBC(JavaDatabaseConnectivity,Java数据库连接性)是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。它由一些Java语言编写的类和接口组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。在Java语言中的JDBCAPI主要用来连接数据库和直接调用SQL命令执行各种SQL语句,使用JDBCAPI可以很容易地把SQL语句传送到任何关系型数据库中,利用JDBCAPI可以执行一般的SQL语句、动态SQL语句以及带IN和OUT参数的存储过程。JDBCAPI是数据库应用的基础,它建立了Java语言数据库应用程序同各种不同数据库的沟通机制。由于我使用的是SQLServer2000数据库系统,在使用JBuilder连接SQLServer数据库之前首先要进行数据库连接,这就需要安装驱动程序,在这里采用MicrosoftSQLServer2000DriverforJDBC驱动来进行SQLServer和系统的连接。由于SQLServer2000版本比较低,需要安装补丁MicrosoftSQLServer2000sp3的chs_sql2ksp3.exe安装文件。这一切完成之后就可以为JBuilder2006配置JDBC驱动了,只有把这些前期工作完成之后才可以对JBuilder和数据库进行连接,因此是很必要的。2系统分析32 更多论文http://www.docin.com/fanteral2.1系统需求分析经过前面的初步调研分析,总结出物流的仓库管理工作具有以下特点:在仓库管理中存在帐目品种杂、重复次数多的问题,如果仓库对所有信息的管理均以手工完成,即由资料管理员以各种记录台帐方式完成信息的登记,在需要某种信息的时候查找台帐记录,很明显,这种工作方法效率低下,信息保存的准确性、安全性难以保证,信息查询的快速性、完整性也难以保证,致使管理工作费人,费时,费力,繁琐枯燥,效率低下[6]。因此实现仓库管理的计算机化迫在眉睫,本系统是集仓库管理、货物管理、仓库货物进出库管理、客户统计、进出库统计等功能于一体的综合性仓储管理系统。支持多种类型的入库、出库、补货方式,同时支持多种查询方式和全面的日志管理,因此可应用于物流业的单体仓库精细化管理。可以轻松解决物流企业在仓库管理、货物流动分析等一系列问题,迅速提高物流企业对仓库经营管理水平、稳固客户群,增加经济效益,以最小的投资获得双盈的优秀管理。帮助生产企业、分公司、分销商、代理商、商场、商店等之间建立起一套完善、高效、具有快速反应能力和管理能力的业务平台,可以极大的提高企业竞争力,为企业创造价值。2.2系统功能分析本系统是针对物流业仓库的货物信息和出入库记录进行管理,仓库管理系统的核心在于货物入库、货物出库和库存管理三者,因此仓库管理系统的用户包括仓库管理员和系统管理员。仓库管理系统主要完成货物仓库的库存管理,由于仓库管理设计的功能较多,在这里我设计的是一个简单的仓库管理系统,主要包括系统登录、系统主界面、货物库存信息查询、货物入库登记、货物出库登记、货物移库登记、业务信息管理等7个功能模块:系统登录:在仓库管理系统中,登录模块是非常重要的,它是整个仓库管理系统的基础,只有通过了此登录界面的认可,才能够进入库存管理系统。正确的执行库存管理的功能。登录部分实现对仓管员登录的验证、标志,从而为相对应用户的操作提供依据。系统主界面:该模块实现系统的主界面功能,在这个界面中可以进入仓库管理系统的全部分支功能子界面。包括仓管员信息界面、货物入库登记界面、货物出库登记界面、货物移库登记界面、供应商和客户商信息界面等等一些界面。32 更多论文http://www.docin.com/fanteral货物库存信息查询:仓管员登录就能看到系统主界面显示的的库存信息,还可以按照各种情况对货物的库存信息进行查询。这样能方便快速地了解货物的情况,进而快速地解决货物的流通。货物入库登记:入库登记也是仓库管理系统的主要功能模块,当一个公司的仓库进货时,通常需要进入这个表格的填写界面,输入正确的货物信息,完成货物信息的录入。仓管员负责对货物入库信息的管理,通过修改已有货物的信息和添加新货物的信息来进行操作。货物出库登记:出库信息是和入库信息管理相对应的系统界面,当一个公司将自己的产品推销出去时,就要进入这个表格的填写界面,输入正确的货物信息,完成货物信息的录入。仓管员负责对货物出库信息的管理,仓管员可以查看货物详细信息,以及进行货物搜索操作。货物移库登记:移库是对已有货物的信息进行修改的一个操作,在货物位置需要调整时,仓管员对相应的移库操作进行货物信息的修改。业务信息:这个功能模块的设定是为公司的企业业务发展需要而设立的,它和公司的供货单位、信息登记模块一起,组成公司业务模块。以上是用户对系统的基本的功能要求,此外还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。2.3数据库需求分析在库存管理系统中包括货物、仓库库位、仓管员、职工、供应商、客户商等等实体。其中仓管员属于职工的一种,每个库位都属于某个仓库。系统的核心关系是库存移动,库存移动包括货物出入库和货物移库等操作。涉及到某个职工作为外部的经手人,每次库存移动都必然有货物的来源供应商和去向客户商。作为一个简化的模型,没有考虑货物的来源和去向涉及到组织意外的部门和人员的情况。具体实体货物信息分析如下:货物:货物代码、货物名称、货物类型、存放库位、库存总量、计量单位、入库单价、入库时间、供应商、备注。仓库库位:仓库代码、仓库名称、库位代码、库位名称、货物类型、仓库容量、备注。仓管员:ID号、姓名、登录密码、姓名、联系电话。客户信息:客户代码、客户名称、联系人、联系电话、联系地址、电子邮箱。货物类型:类型代码、类型名称。部门信息:部门代码、部门名称。32 更多论文http://www.docin.com/fanteral入库单:入库单编号、货物名称、存放仓库、入库时间、入库数量、入库单价、供应商、经办人。出库单:出库单编号、货物名称、存放仓库、出库时间、出库数量、出库单价、客户商、经办人。移库单:移库单编号、货物名称、原库位名称、现库位名称、移库时间、移库数量、经办人。3系统总体设计3.1数据库设计3.1.1实体关系图(E-R图)设计根据上面需求分析可知,库存管理系统主要涉及三个实体类型,包括:公司的相关职工、公司的货物、仓库管理系统的系统界面,这三类共同构成系统的相关参与类型[2]。三个关系类型:一个是相关职工和货物信息之间的关系是m:n;一个是系统界面和货物信息之间的关系1:n;最后一个是相关职工和系统界面之间的关系1:n。从而得出的实体有仓管员信息实体、货物实体、仓库库位实体、库存实体。各个实体的E—R图及其关系描述如下工号姓名联系电话ID号登录密码仓管员图1仓管员实体关系图32 更多论文http://www.docin.com/fanteral货物所在库位货物名称货物代码入库数量入库时间购入单价货物单位货品所属类型备注库存数量图2货物实体关系图仓库库位库存总量仓库代码仓库名称库位代码存储货物库位名称图3仓库库位实体关系图货品库存货品详细信息货品入库货品出库库存图4库存实体关系图32 更多论文http://www.docin.com/fanteral仓管员入库库存出库移库ID号姓名联系电话工号货物名称货物代码入库数量入库时间购入单价货物单位货物所属类型备注信息库存数量出库表标识货品类别标识客户商出库数量出库时间批准人姓名备注移库时间货物名称原仓库库位货物代码移库数量货物库存货物详细信息货物入库货物出库登录密码图5仓库管理系统实体关系图32 更多论文http://www.docin.com/fanteral仓管员入库库存出库图6实体间的实体关系图3.1.2数据流图数据流图表达了数据和处理的关系,是描述系统的逻辑模型的,图中没有任何具体的物理元素,只是描述信息在系统中流动和处理的情况,它比口头与文字的描述更直观地显示出来系统中数据的使用。数据流图简称DFD图,数据流图有四种成分:源点或终点、处理、数据存储表和数据流。图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专业的计算机技术人员也容易理解,是极好的理解工具。它能精确的描述系统的逻辑模型,描述数据在管理信息系统中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很好的工具。根据用户的需求分析和仓库管理系统的需求,得出如下图7所示的仓库管理数据流图。查看货品信息删除货品信息货品出库修改仓管员信息查看库存记录货品清单查看仓管员信息仓管员登录修改货品信息新货入库删除分类修改分类添加分类仓库管理货品分类图7仓库管理系统数据流图32 更多论文http://www.docin.com/fanteral3.1.3创建数据库数据库的创建主要是逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。它相当于软件工程中的代码编写和程序调试的阶段。在SQLServer2000中生成了如下所示的表。货物属性表记录仓库管理所有货物的各种参数和相关信息[8]。在系统中只有管理员能对货物属性进行删除、插入、更新。详细信息见表1。表1货物属性表字段名称数据类型大小说明货物代码Varchar8主键货物名称Varchar20货物的名称货物类型Varchar10货物所属分类库存总量Int4货物的库存总量入库单价Float8货物购入时的单价计量单位Varchar4货物的计量单位存放仓库Varchar20货物所存放的仓库名称入库时间Datetime8货物入库时间供应商Varchar20提供货物的公司名称备注Varchar30备注信息仓库信息表保存了一个组织所有仓库的名称和所有仓库中的相关信息。仓库和仓库库存信息的变更也只能由仓管员进行操作。本表的主键应该是仓库代码,但是为了保证主键的唯一性,新增了一个字段仓库库位代码,这样的仓库库位代码也唯一决定了一个库位,同时在其他表中需要使用仓库库位信息的字段也可以使用仓库库位代码,详细信息见表2。仓管员信息表保存了所有仓管员的信息,在库存管理系统中需要使用仓管员信息表,这个系统是简化了的管理系统,只设定仓管员为唯一使用仓库管理系统的职工,所以就不设定权限,也就是所有的仓管员都可以使用系统中的各种功能,其详细信息见表3。32 更多论文http://www.docin.com/fanteral客户信息表保存了所有供货商和客户商的信息,在库存管理系统中需要使用供货商和客户商信息表来补充货物的信息,也方便仓库的管理运作。客户信息把供应商和客户商的信息都集合到一个表,这样做的原因是,有些供货商同时也可能是客户商,为了消除冗余,把所有的客户都记录到一张表上。详细信息见表4。表2仓库信息表字段名称数据类型大小说明仓库代码Varchar8主键仓库名称Varchar20仓库的名称库位代码Varchar8库位代码,主键库位名称Varchar20库位的名称货物类型Varchar20所储存的货物类型库存总量Int4所储存的货物总量表3仓管员信息表字段名称数据类型大小说明ID号Varchar8主键仓管员姓名Varchar20仓管员姓名登录密码Varchar10仓管员的登录密码联系电话Varchar15仓管员的联系电话工号Varchar10仓管员的工作号货物类型是指明货物所属的类别,有时候仓库里要存储的货物很多,类别不一,货物类型表的创建可以先存储各种货物类型,在添加新货物的时候,只需在货物类型表里选取就可以,大大方便了货物入库的效率。货物类型表的详细信息入表5。入库单主要保存所有的入库操作,包括货物名称、仓库名称、入库时间、入库数量等,入库单便于仓管员对入库货物的查询,保证货物的保存正确,而且也保证了入库货物的保存安全,对之后的出库操作、移库操作都有很大的帮助,详细信息见表6。出库单起着和和入库单一样的功效,方便记录所有的货物出库操作,从而方便对数据的统计,便于更新货物的数量,同时也是一项对货物操作的安全保证。主要包括了货物名称、仓库名称、出库时间、出库数量等。详细信息见表7。32 更多论文http://www.docin.com/fanteral表4客户信息表字段名称数据类型大小说明客户代码客户名称Varchar10主键Varchar20货物来去的单位名联系人Varchar10单位的相关人事联系电话Varchar15单位的联系电话联系地址Varchar50单位的所在地电子邮箱Varchar30单位的邮箱地址表5货物类型表字段名称数据类型大小说明类型代码Varchar8主键类型名称Varchar10货物类型的名称表6入库单表字段名称数据类型大小说明入库单编码Varchar15主键货物名称Varchar20入库货物的名称存放仓库Varchar20入库时的存放库位入库时间Datetime8新货物的入库时间入库数量Int4货物的入库数量入库单价Float8货物的入库单价供应商Varchar20提供货物的来源地经办人Varchar20入库的经办人和出库单的重要性一样,移库单的建立也是为了保证货物操作的安全,同时也便于货物出库等操作,主要包含的信息是货物名称、库位名称、移库时间、移库数量。移库单的详细信息见表8。32 更多论文http://www.docin.com/fanteral数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。表7出库单表字段名称数据类型大小说明出库单编码Varchar8主键货物名称Varchar20出库货物的名称存放仓库Varchar20货物的所在库位出库时间Datetime8货物的出库时间出库数量Int4货物的出库数量出库单价Float8货物的出库单价客户商Varchar20提取货物的单位经办人Varchar20办理出库的经办人表8移库单表字段名称数据类型大小说明移库单编码Varchar15主键货物名称Varchar20进行移库的货物原库位名称Varchar20货物现在的库位现库位名称Varchar20货物的目的库位移库时间Datetime8货物的移库时间移库数量Int4进行移库的货物量经办人Varchar20办理移库的经办人在数据库运行阶段,对数据库经常性的维护工作主要是由DBA(DatabaseAdministrator)完成的,包括:(1)数据库的转储和恢复——DBA要针对不同的应用要求制定不同的转储计划,一保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。(2)数据库的安全性、完整性控制——DBA根据实际情况修改原有的安全性控制和数据库的完整性约束条件,以满足用户要求。32 更多论文http://www.docin.com/fanteral(3)数据库性能的监督、分析和改造——在数据库运行过程中,DBA必须监督系统运行,对监测数据进行分析,找出改进系统性能的方法。(4)数据库的重组织与重构造——数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织或部分重组织。3.2系统设计3.2.1系统功能结构图系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。根据系统功能的需求分析和企业仓库管理的特点,经过模块化的分析得到系统功能模块结构图。仓库管理系统系统管理库存管理业务信息退出系统仓管员信息移库登记出库登记入库登记货物管理客户商信息供应商信息员工信息业务查看移库单查看出库单查看入库单查看图8系统功能结构图将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。32 更多论文http://www.docin.com/fanteral系统功能结构图详细信息如图8所示。3.2.2业务流程图开始登录界面系统主界面货物信息查询仓管员信息查看和修改货物入库登记货物出库登记货物移库登记业务信息查询和修改选择货物信息查询仓管员信息货物入库登记货物出库登记货物移库登记业务信息查看退出系统图9业务流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。该系统的程序流程图如图9所示:4系统功能模块设计4.1登陆模块32 更多论文http://www.docin.com/fanteral在仓库管理系统中,登录界面是非常重要的,它是整个仓库管理系统的基础,只有通过此登录界面的认可,才能够进入库存管理系统,正确的执行库存管理的功能[3]。对应的界面如图10所示。图10登录界面在此窗口中仓管员必须输入正确的姓名和密码,才能进入系统主界面,事先将仓管员的姓名和密码以及ID号存在一个SQLServer数据库仓管员中,当仓管员登录系统时,系统将用户输入的姓名和密码与数据库中事先存放的姓名和密码进行比较,如果相同,则进入系统主界面,否则提示用户输入错误或者提示此用户不存在。4.2仓库管理系统模块4.2.1仓库管理系统主界面模块在系统主界面中,可以完成此系统的全部功能,包括货物信息查询,货物入库信息登记处理,货物出库信息登记处理,货物移库登记处理,业务信息查询等等一些界面。系统设计目标是通过一系列菜单驱动来完成相应的子界面创建和管理。如图11所示,在仓库管理系统中,主要包括以下几个方面的功能模块,其中每个功能模块又分别由2~3个功能来完成。在库存管理模块中,主要包括仓库盘存和退出系统两个功能。在入库管理模块中,主要包括入库登记管理功能。在出库管理模块中,主要包括出库登记管理功能。在业务信息模块中,主要包括具体经办人和仓库信息统计两个功能。在业务单位模块中,包括供货商和客户商两个功能。选择不同的菜单进入不同的库存管理子界面,完成相应的功能系统主界面采用Java中的Frame技术。32 更多论文http://www.docin.com/fanteral图11仓库管理系统主界面4.2.2入库登记模块图12入库登记界面32 更多论文http://www.docin.com/fanteral入库登记模块也是仓库管理系统的主要功能模块,当一个公司的仓库进货时,我们通常需要进入这个表格填写界面,输入正确的货物信息,完成货物信息的录入,对应的仓库入库登记信息子界面,如图12所示。在仓库管理系统入库登记信息主界面中,必须输入正确的入库登记信息,包括入库日期和入库单号,以及货物代码、库存数量、供货客户和经办人信息等一些关于货物入库的详细信息。4.2.3出库登记模块出库登记是和入库登记相对应的系统模块,当一个公司将自己的产品销售出去的时候,就要进入这个系统界面来完成对公司产品出库信息进行详细的记录,这个也是仓库管理系统的重要功能之一。对应的系统界面如图13所示。在仓库管理系统的出库登记信息主界面中,必须输入正确的出库登记信息,包括出库日期和出库单号,以及货物代码、出库数量、收货单位和经办人信息等一些关于货物出库的详细信息。图13出库登记界面4.2.4移库登记模块移库登记模块也是系统管理的一个重要模块,当货物的性质发生变化,或者仓库位置需要改动的时候,货物想相关信息也需要改变,这时就要进行货物移库处理,进行移库登记,方便改动相关的货物信息。对应的系统界面如图14所示。32 更多论文http://www.docin.com/fanteral在仓库管理系统的移库登记信息主界面中,必须输入正确的移库登记信息,包括移库日期和移库单号,以及货物代码、移库数量、原仓库信息和移库的仓库信息等一些关于货物移库的详细信息。图14移库登记界面4.2.5业务单位信息模块图15供应商信息界面32 更多论文http://www.docin.com/fanteral这个模块包括两个功能模块:一个是供货单位信息的统计,一个是收货单位信息的统计。这两个功能模块的实现方法基本相似,在此重点介绍供货单位信息模块的实现。在本次系统开发中,用到的供货单位信息界面如图15所示。仓库管理系统中的供货单位信息用来统计公司仓库和公司有业务来往的企业信息,通过这些信息的正确统计,可以帮助企业建立一个丰富的企业信息资料库,为公司以后业务的顺利展开服务,提高公司的业务业绩。在系统供货商信息登记表中,主要完成的功能是等级供货单位的信息。方便公司业务的开展,是仓库管理系统的重要功能之一。4.2.6业务查看模块图16入库单信息查看业务查看模块是仓库管理系统的重要管理模块,主要有三个模块组成,分别是仓库货物入库单、出库单和移库单统计的功能。在这里,重点介绍入库单信息模块。这个模块的主要功能就是记录仓库货物入库所有单张的详细信息,包括不同日期、不同货物、不同经办人所办理的入库单张的一些详细信息。详细如图16所示。在系统仓库经办人员信息登记模块中,主要功能是显示所有相关货物入库单的信息,方便公司业务的查看与修改,是仓库管理系统的重要功能之一。5系统实现由于实现这个系统的软件是JBuilder32 更多论文http://www.docin.com/fanteral2006,主要的编程语言是Java语言,数据库实现语言是SQL(StructuredQueryLanguage)。实现过程主要围绕这些编程知识进行,同时也围绕交互界面友好这个创建系统要素进行。首先在JBuilder2006主界面中创建一个命名为warehouse的工程,然后在该工程中创建一个命名为whApp的应用程序和命名为login的Frame(框架),这时会自动生成一个whApp.java文件和一个login.java文件。完成应用程序的创建之后,分别创建主界面Frame、货物入库登记Frame、货物出库登记Frame等等操作。当运行时,系统首先运行whApp.java文件,由whApp.java调用login.java,从而弹出登录窗口。通过登录窗口进入系统主界面。然后在主界面可以通过菜单选项选择相应的功能模块进行系统管理,具体实现过程如下。5.1建立与数据库连接的类由于系统在每个页面要使用数据的时候都要建立与数据库的连接,则有很多代码是重复的,这里我先建立一个连接数据库的类whConnect,然后在要使用数据库的地方,创建一个whConnect对象即可。当然,如果查询或修改数据库的工作在不同的页面只是参数不同而已,也应该建立一个Query类。这里只建立一个连接数据库的类,这样做的好处是,如果连接数据库的用户名或者密码变化了,只需要修改这一个文件。下面首先来建立whConnect类,这里使用ClassWizard来创建应用程序,实现步骤为:选择file→new菜单项,双击Class图标,在Classname中输入whConnect,其他选择默认值,点击finish即可创建一个新类。在新类的source页面中添加代码即可。具体如下:先在开始的位置添加的SQL包importjava.sql,这是所有要使用到数据库的java应用程序都要添加的包,下面就不再重复叙述。然后为每个调用该类的对象注册驱动程序:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");在whConnect类中,创建一个连接数据库的方法makeCon(),当调用这个方法时,系统将连接相应的数据库,并返回一个connection对象:try{url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=warehouse";username="sa";password="sa";32 更多论文http://www.docin.com/fanteralcon=DriverManager.getConnection(url,username,password);//建立一个Connection对象}catch(SQLExceptione1){}returncon;//返回一个Connetion对象上面便是连接数据库whConnect类所用到的主要语句。5.2建立把弹出窗口置屏幕中央的类在调试的时候不难发现,每个弹出的窗口都是出现在显示屏屏幕的左上角的,为了使系统界面更友好,建立一个类来设定每个窗口显示的时候都居于屏幕中央,其主要代码为:DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//捕捉屏幕尺寸DimensionframeSize=frame.getSize();if(frameSize.height>screenSize.height){frameSize.height=screenSize.height;}if(frameSize.width>screenSize.width){frameSize.width=screenSize.width;}frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);frame.setVisible(true);//显示窗口5.3登录系统的实现在login模块中,转换到design页面,在框架中建立基本的组件,这时在source面板会自动生成相关的程序代码,但是这些代码并没有实现相应的功能,要使用监听器才能实现相应的操作。在这里我的操作是,点击“确定”按钮,然后实现登录操作,因此在“确定”按钮上要监听的内容是:在用户姓名和密码不为空的情况下,把连接“仓管员”这个表,按照提交的姓名和密码来查找,如果表中有查找结果,即说明用户名合法,可以登录系统,否则反馈错误信息。相关的代码如下[1]:if(jTextField1.getText().length()!=0){//判断是否输入了姓名con=whConnect1.makeCon();//定义连接loginQuery="";32 更多论文http://www.docin.com/fanteralpasswordTemp="";for(inti=0;i