仓库管理系统的设计与分析毕业论文_第1页
仓库管理系统的设计与分析毕业论文_第2页
仓库管理系统的设计与分析毕业论文_第3页
仓库管理系统的设计与分析毕业论文_第4页
仓库管理系统的设计与分析毕业论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

仓库管理系统的设计与分析 摘 要 随着经济全球化和信息技术的迅速发展,物流业已成为经济领域中发展最快、最活跃、最具热点的一个行业。作为物流业操作中比较繁琐的一个重要环节,仓储运作的好坏将直接影响整个物流系统的成本与效率。而 开发一个 好的 仓库管理系统 ,使用计算机进行仓储管理, 可以提高 物流 管理的现代化程序,加强管理的信息化手段,提高工作效率,增加企业效益;还可以实时掌握库存最新动态,方便查询。 本文在深入了解物流系统仓储管理的各种方法和对仓库管理工作流程进行分析的基础上,抽象出仓库管理系统的一般模式,设计并 实现了仓库管理系统。该系统采用 C/S架构,以 Borland公司的 JBuilder 2006软件为开发平台,用微软公司的 SQL Server2000作为后台数据库,以货物查询、 货物入库、货物出库、货物移库等操作为核心,实现仓库管理的信息化和自动化。本文着重介绍了仓库管理系统的需求分析、实现的功能、业务流程、数据库设计、系统功能模块设计、设计等一系列开发流程。 关键字 C/S模式 仓库管理系统 SQL Server 2000 Jbuilder 2006 更多论文 /fanteral 1 目 录 1 前言 . 1 1.1 设计背景与意义 . 1 1.2 设计目标 . 2 1.3 系统开发环境 . 3 1.3.1 系统配置 . 3 1.3.2 开发工具 . 3 1.3.3 准备工作 . 4 2 系统分析 . 5 2.1 系统需求分析 . 5 2.2 系统功能分析 . 5 2.3 数据库需求分析 . 6 3 系统总体设计 . 7 3.1 数据库设计 . 7 3.1.1实体关系图( E-R图)设计 . 7 3.1.2 数据流图 . 10 3.1.3 创建数据库 . 11 3.2 系统设计 . 15 3.2.1系统功能结构图 . 15 3.2.2 业务流程图 . 16 4 系统功能模块设计 . 16 4.1 登陆模块 . 16 4.2 仓库管理系统模块 . 17 4.2.1 仓库管理系统主界面模块 . 17 4.2.2 入库登记模块 . 18 4.2.3 出库登记模块 . 19 4.2.4 移库登记模块 . 19 4.2.5 业务单位信息模块 . 20 4.2.6 业务查看模块 . 21 5 系统实现 . 21 更多论文 /fanteral 2 5.1 建立与数据库连接的类 . 22 5.2 建立把弹出窗口置屏幕中央的类 . 23 5.3 登录系统的实现 . 23 5.4 系统主界面的实现 . 24 5.4.1 货物数据查询 . 25 5.4.2 入库登记实现 . 26 5.4.3 出库登记实现 . 26 5.4.4 移库登记实 现 . 26 5.4.5 业务信息实现 . 27 6 总结与展望 . 27 6.1 总结 . 27 6.2 展望 . 27 致谢 . 29 参考文献 . 30 Abstract: . 31 毕业设计成绩评定表 . 错误 !未定义书签。 更多论文 /fanteral 1 1 前言 1.1 设计背景与意义 随着经济全球化和信息技术的迅速发展,作为企业降低生产成本、提高核心竞争力、增加经济效益的“第三利润源” 现代物流业正在世界范围内广泛流行。 现代物流业泛指原材料、产成品从起点至终点以及相关信息有效流动的全过程。它将运输、仓储、装卸、加工、整理、配送、信息等方面 有机结合,形成完整的供应链,为用户提供多功能、一体化的综合性服务。 我国自 20 世纪 80 年代初系统引进现代物流理论以来,科学技术的迅速发展以及加入世贸组织,我国的物流业得到了快速发展,全社会物流货物总值大幅度增长。资料表明,物流业已成为我国经济领域中发展最快、最活跃、最具热点的一个行业 4。 物流信息化建设随着物流行业的发展而受到重视,物流信息化通过对现有生产资源、人力资源、物流资源的管理,实现资金流、物流与信息流的“三流”统一。通过使用现代管理方法,实现物流作业的自动化,达到提高物流服务水平和质量的目的, 大大提高了劳动生产效率。 现代物流系统应在新的经营信息系统思想的指导下来设计物流信息系统,依靠现代科学技术,在计划、管理和控制以及作业环节等方面充分利用信息、快速反馈信息,为决策提供依据并辅助决策,提高物流效率和优化供应链的信息系统。 现代物流信息系统的目的是在提高物流行业的效率并降低成本的同时,提高对顾客的服务水平 7。 在实际物流系统运作中,仓储是比较繁琐也比较重要的一个环节,它联结了生产者与客户,其运作的好坏将直接影响整个物流系统的成本与效率。使用人工式管理各项货品信息不仅效率低下,而且容易出错,安 全性很差。并且在实际操作中,数据的查找和维护都不容易实现,容易发生差错,导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。随着物流业的发展,其 规模的扩大, 仓储 将发挥越来越重要的作用。 在物流信息管理系统中, 高效方便的仓库管理系统,可以为生产经营提供坚强的后盾和有力的支持。 因而 仓库管理系统 成为 物流 信息管理系统 的一个必不可少的重要环节,仓库管理的信息化、计算机化 已迫 在眉捷。开发一个仓库物流管理系统可以提高 物流 管理的现代化程序,加强管理的信息化手段,提高工作效率,增加企业效益;还可以实时掌握库存最更多论文 /fanteral 2 新动态,方便查询。 1.2 设计目标 本仓库 管理系统 的设计目标 主要 是 提供一个仓储业务及其作业管理的信息存储和检索 平台, 通过 系统 管理、仓库 管理和业务信息 管理等功能模块来实现仓库的综合管理 ,旨在从仓库的普遍特点出发,有针对性地解决仓库的日常管理等方面的问题, 创建 一套能够通用于各 物流 企业中的仓库管理系统 5。 本系统主要用的是模块化设计,主要包含系统、仓库管理、业务信息这几个功能模块。系统 操作简单 , 有 计算机 基础的人无需培训即可使用 , 即使是没有计算机基础的人只需经过简单的培训就可以很熟练的使用本系统。 系统运行 后,用户使用本系统时,不会也不必关心系统内部的结构及实现方法,即对用户来说是透明的,所以本系统是定位在界面友好、操作方便、功能齐全的原则上的,用户只需简单的用鼠标点击各界面上的选项卡或按钮就能执行相应的功能。 通过开发仓库管理系统,至少可以实现以下的“六个有利” : 1、有利于减少用在仓库管理系统上的人力资源。 2、有利于提高仓库管理的效率。 3、有利于用户对仓库货物存储的查询、更新、修改等操作。 4、有利于仓库管理的保密性和安全性。 5、有利于决策者从各种查询表里获得仓库的总体情况。 目标系统应该达到以下 要求: 1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反应速度快。 2、可靠性。能连续准确的处理业务,有较强的容错能力。 3、可理解性。用户容易理解和使用该系统。 4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。 5、可用性。目标系统功能齐全,能够完全满足业务需求。 6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。 仓库管理系统的建设目标是:按照仓库管理信息的特点,利用仓库管理系统平台,围绕 着“数据库、信息管理、应用”进行整体规划,实现对仓库信息的管理,实现对货物信息的管理和对整体的仓库存储和业务信息进行统计,从而极大的提高了仓库管理的更多论文 /fanteral 3 效率。 数据库:创建在仓库管理系统平台使用的数据库,管理员可以查询仓库管理的各项信息数据。 信息管理:管理员可以对仓库进行分类查询,可以对仓库货物数据进行增加、修改、删除等,方便管理员对仓库的货物进行管理。 应用:仓库管理系统的汇总表可以让我们了解整个仓库的运作,从而为物流管理提供各种信息,有利于提高物流系统的总体水平。 1.3 系统开发环境 1.3.1 系统配 置 Windows XP 作为当今最为普及的操作系统,具有简单、容易操作、稳定强大的特点。一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;另一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都非常容易,而且性能优越。 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就提供了团队开发能力,更多论文 /fanteral 4 可以集成多种版本控制产品,方便了不同层次的用户使用。 Jbuilder是按照 SUN 公司提供 J2EE标准来构筑的,它是一个遵循 J2EE标准的可视化集成开发环境, 目前在业界具有广泛的用户,成为一个处于市场领先地位的跨平台环境,主要用于构建一些具有行业实力的企业 Java 小程序,如为企业信息化而产生的客户前台浏览界面,为特定的用户开发一些专业的程序包和特定的类库。 JBuilder继承了 Borland 公司开发工具系列的优秀特性,继承了许多 Delphi和 C+ Builder产品的优秀特性,这使得用过这两种产品的用户很容易的就可以过渡到 JBuilder的开发环境当中,熟练的开发出高质量的 Java 程序。在 JBuilder 这个开发环境中实际上包含了用户在 Java 集成开发环境中 所需要的一切东西。包括对常用的面向对象语言UML建模工具的支持。我们可以在这个环境下对系统进行建模,进行系统调试,对系统进行打包发布。 SQL Server 在管理企业信息方面最灵活和最经济高效 。 在尽可能提高服务质量的同时削减了管理成本 。 除极大地提高质量和性能以外, SQL Server 作为微软公司的数据库产品,能够和绝大多数建立在 Windows XP平台上的软件兼容,具有很强的兼容性,并且SQL Server本身功能也十分强大,其中还有 SQL 查询分析器、 SQL Server 服务管理器、企业管理器等功能强大 的工具,所以我选择 SQL Server 作为我们的的后台数据库。 1.3.3 准备工作 JDBC( Java Database Connectivity, Java 数据库连接性)是一种可用于执行 SQL语句的 Java API( Application Programming Interface,应用程序设计接口)。 它由一些 Java语言编写的类和接口组成。 JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯 Java语言编写完整的数据库应用程序。 通过使用 JDBC,开 发人员可以很方便地将 SQL 语句传送给几乎任何一种数据库。不但如此,使用 Java 编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同的平台上编写不同的应用。 在 Java 语言中的 JDBC API 主要用来连接数据库和直接调用 SQL 命令执行各种 SQL语句,使用 JDBC API可以很容易地把 SQL语句传送到任何关系型数据库中,利用 JDBC API可以执行一般的 SQL 语句、动态 SQL 语句以及带 IN 和 OUT 参数的存储过程。 JDBC API是数据库应用的基础,它建立了 Java语言数据库应用程序同各种不同数据库的沟通 机制。 由于我使用的是 SQL Server 2000 数据库系统,在使用 JBuilder 连接 SQL Server更多论文 /fanteral 5 数据库之前首先要进行数据库连接,这就需要安装驱动程序,在这里采用 Microsoft SQL Server 2000 Driver for JDBC 驱动来进行 SQL Server 和系统的连接。由于 SQL Server 2000版本比较低,需要安装补丁 Microsoft SQL Server 2000 sp3 的 chs_sql2ksp3.exe安装文件。这一切完成之后就可以为 JBuilder 2006配置 JDBC驱动 了,只有把这些前期工作完成之后才可以对 JBuilder和数据库进行连接,因此是很必要的。 2 系统分析 2.1 系统需求分析 经过前面的初步调研分析 ,总结出物流的仓库管理工作具有以下特点: 在仓库管理中存在帐目品种杂、重复次数多的问题,如果仓库对所有信息的管理均以手工完成,即由资料管理员以各种记录台帐方式完成信息的登记,在需要某种信息的时候查找台帐记录,很明显,这种工作方法效率低下,信息保存的准确性、安全性难以保证,信息查询的快速性、完整性也难以保证,致使管理工作费人,费时,费力,繁琐枯燥 ,效率 低下 6。 因此实现仓库管理的计算机化迫在眉睫 , 本系统是集仓库管理、货物管理、仓库货物进出库管理、客户统计、进出库统计等功能于一体的综合性仓储管理系统。支持多种类型的入库、出库、补货方式,同时支持多种查询方式和全面的日志管理,因此可应用于物流业的单体仓库精细化管理。 可以轻松解决物流企业在仓库管理、货物流动分析等一系列问题,迅速提高物流企业对仓库经营管理水平、稳固客户群,增加经济效益,以最小的投资获得双盈的优秀管理。 帮助生产企业、分公司、分销商、代理商、商场、商店等之间建立起一套完善、高效、具有快速反应 能力和管理能力的业务平台,可以极大的提高企业竞争力,为企业创造价值 。 2.2 系统功能分析 本系统是针对物流业仓库的货物信息和出入库记录进行管理,仓库管理系统的核心在于货物入库、货物出库和库存管理三者,因此仓库管理系统的用户包括仓库管理员和系统管理员。 仓库管理系统主要完成货物仓库的库存管理,由于仓库管理设计的功能较多,在这里我设计的是一个简单的仓库管理系统,主要包括系统登录、系统主界面、货物库存信息查询、货物入库登记、货物出库登记、货物移库登记、业务信息管理等 7个功能模块: 系统登录:在仓库管理系统中,登 录模块是非常重要的,它是整个仓库管理系统的更多论文 /fanteral 6 基础,只有通过了此登录界面的认可,才能够进入库存管理系统。正确的执行库存管理的功能。登录部分实现对仓管员登录的验证、标志,从而为相对应用户的操作提供依据。 系统主界面:该模块实现系统的主界面功能,在这个界面中可以进入仓库管理系统的全部分支功能子界面。包括仓管员信息界面、货物入库登记界面、货物出库登记界面、货物移库登记界面、供应商和客户商信息界面等等一些界面。 货物库存信息查询:仓管员登录就能看到系统主界面显示的的库存信息,还可以按照各种情况对货物的库存信息进行查询。 这样能方便快速地了解货物的情况,进而快速地解决货物的流通。 货物入库登记:入库登记也是仓库管理系统的主要功能模块,当一个公司的仓库进货时,通常需要进入这个表格的填写界面,输入正确的货物信息,完成货物信息的录入。仓管员负责对货物入库信息的管理,通过修改已有货物的信息和添加新货物的信息来进行操作。 货物出库登记:出库信息是和入库信息管理相对应的系统界面,当一个公司将自己的产品推销出去时,就要进入这个表格的填写界面,输入正确的货物信息,完成货物信息的录入。仓管员负责对货物出库信息的管理,仓管员可以查看货物详细信息 ,以及进行货物搜索操作。 货物移库登记:移库是对已有货物的信息进行修改的一个操作,在货物位置需要调整时,仓管员对相应的移库操作进行货物信息的修改。 业务信息:这个功能模块的设定是为公司的企业业务发展需要而设立的,它和公司的供货单位、信息登记模块一起,组成公司业务模块。 以上是用户对系统的基本的功能要求,此外还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。 2.3 数据库需求分析 在库存管理系统中包括货物、仓库库位、仓管员、职工、供应商、客户商等等实体。其中仓管员属于职工的一种 ,每个库位都属于某个仓库。系统的核心关系是库存移动,库存移动包括货物出入库和货物移库等操作。涉及到某个职工作为外部的经手人,每次库存移动都必然有货物的来源供应商和去向客户商。作为一个简化的模型,没有考虑货物的来源和去向涉及到组织意外的部门和人员的情况。具体实体货物信息分析如下: 货物:货物代码、货物名称、货物类型、存放库位、库存总量、计量单位、入库单价、入库时间、供应商、备注。 更多论文 /fanteral 7 仓库库位:仓库代码、仓库名称、库位代码、库位名称、货物类型、仓库容量、备注。 仓管员: ID号、姓名、登录密码、姓名、联系电话 。 客 户信息:客户代码、客户名称、联系人、联系电话、联系地址、电子邮箱。 货物类型:类型代码、类型名称。 部门信息:部门代码、部门名称。 入库单:入库单编号、货物名称、存放仓库、入库时间、入库数量、入库单价、供应商、经办人。 出库单:出库单编号、货物名称、存放仓库、出库时间、出库数量、出库单价、客户商、经办人。 移库单:移库单编号、货物名称、原库位名称、现库位名称、移库时间、移库数量、经办人。 3 系统总体设计 3.1 数据库设计 3.1.1 实体关系图( E-R 图)设计 根据上面需求分析可知,库存管理系统主要涉及三 个实体类型,包括:公司的相关职工、公司的货物、仓库管理系统的系统界面,这三类共同构成系统的相关参与类型 2。 三个关系类型:一个是相关职工和货物信息之间的关系是 m: n;一个是系统界面和货物信息之间的关系 1: n;最后一个是相关职工和系统界面之间的关系 1: n。 从而得出的实体有仓管员信息实体、货物实体、仓库库位实体、库存实体。各个实体的 E R图及其关系描述如下 图 1 仓管员实体关系图 工号 姓名 联系电话 ID 号 登录密码 仓管员 更多论文 /fanteral 8 图 2 货物 实体关系图 图 3 仓库库位实体关系图 图 4 库存实体关系图 货品库存 货品详细信息 货品入库 货品出库 库存 仓库库位 库存总量 仓库代码 仓库名称 库位代码 存储货物 库位名称 货物 所在库位 货物名称 货物代码 入库数量 入库时间 购入单价 货物单位 货品所属类型 备注 库存数量 更多论文 /fanteral 9 图 5 仓库管理系统实体关系图 仓管员 入库 库存 出库 移库 ID 号 姓名 联系电话 工号 货物名称 货物代码 入库数量 入库时间 购入单价 货物单位 货物所属类型 备注信息 库存数量 出库表标识 货品类别标识 客户商 出库数量 出库时间 批准人姓名 备注 移库时间 货物名称 原仓库库位 货物代码 移库数量 货物库存 货物详细信息 货物入库 货物出库 登录密码 更多论文 /fanteral 10 图 6 实体间的实体关系图 3.1.2 数据流图 数据流图表达了数据和处理的关系, 是描述系统的逻辑模型的,图中没有任何具体的物理元素,只是描述信息在系统中流动和处理的情况,它比口头与文字的描述 更直观地显示出来系统中数据的使用。 数据流图简称 DFD 图,数据流图有四种成分:源点或终点、处理、数据存储表和数据流。图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专业的计算机技术人员也容易理解,是极好的理解工具。它能精确的描述系统的逻辑模型,描述数据在管理信息系统中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很好的工具。 根据用户的需求分析和 仓库 管理系统的需求,得出如下图 7所示的 仓库 管理数据流图。 图 7 仓 库管理系统数据流图 仓管员 入库 库存 出库 查看货品信息 删除货品信息 货品出库 修改仓管员信息 查看库存记录 货品清单 查看仓管员信息 仓管员登录 修改货品信息 新货入库 删除分类 修改分类 添加分类 仓库管理 货品分类 更多论文 /fanteral 11 3.1.3 创建数据库 数据库的 创建 主要是逻辑结构设计和物理结构设计的结果,在计算机系统上建立实际的数据库结构、导入数据并进行程序的调试。它相当于软件工程中的代码编写和程序调试的阶段。在 SQL Server 2000 中生成了如下所示的表。 货物属性表记录仓库管理所有货物的各种参数和相关信息 8。在系统中只有管理员能对货物属性进行删除、插入、更新。详细信息见表 1。 表 1 货物属性表 字段名称 数据类型 大 小 说明 货物代码 Varchar 8 主键 货物名称 Varchar 20 货物的名称 货物类型 Varchar 10 货物所属分类 库存总量 Int 4 货物的库存总量 入库单价 Float 8 货物购入时的单价 计量单位 Varchar 4 货物的计量单位 存放仓库 Varchar 20 货物所存放的仓库名称 入库时间 Datetime 8 货物入库时间 供应商 Varchar 20 提供货物的公司名称 备注 Varchar 30 备注信息 仓库信息表保存了一个组织所有仓库的名称和所有仓库中的相关信息。仓库和仓库库存信息的变更也只能由仓管员进行操作。本表的 主键应该是仓库代码,但是为了保证主键的唯一性,新增了一个字段仓库库位代码,这样的仓库库位代码也唯一决定了一个库位,同时在其他表中需要使用仓库库位信息的字段也可以使用仓库库位代码,详细信息见表 2。 仓管员信息表保存了所有仓管员的信息,在库存管理系统中需要使用仓管员信息表,这个系统是简化了的管理系统,只设定仓管员为唯一使用仓库管理系统的职工,所以就不设定权限,也就是所有的仓管员都可以使用系统中的各种功能,其详细信息见表 3。 客户信息表保存了所有供货商和客户商的信息,在库存管理系统中需要使用供货商和客户商信息表来 补充货物的信息,也方便仓库的管理运作。客户信息把供应商和客户更多论文 /fanteral 12 商的信息都集合到一个表,这样做的原因是,有些供货商同时也可能是客户商,为了消除冗余,把所有的客户都记录到一张表上。详细信息见表 4。 表 2 仓库信息表 字段名称 数据类型 大小 说明 仓库代码 Varchar 8 主键 仓库名称 Varchar 20 仓库的名称 库位代码 Varchar 8 库位代码,主键 库位名称 Varchar 20 库位的名称 货物类型 Varchar 20 所储存的货物类型 库存总量 Int 4 所储存的货物总 量 表 3 仓管员信息表 字段名称 数据类型 大小 说明 ID号 Varchar 8 主键 仓管员姓名 Varchar 20 仓管员姓名 登录密码 Varchar 10 仓管员的登录密码 联系电话 Varchar 15 仓管员的联系电话 工号 Varchar 10 仓管员的工作号 货物类型是指明货物所属的类别,有时候仓库里要存储的货物很多,类别不一,货物类型表的创建可以先存储各种货物类型,在添加新货物的时候,只需在货物类型表里选取就可以,大大方便了货物入库的效率。货物类型表的详细信息入表 5。 入库单主要保存所有的入库操作,包括货物名称、仓库名称、入库时间、入库数量等,入库单便于仓管员对入库货物的查询,保证货物的保存正确,而且也保证了入库货物的保存安全,对之后的出库操作、移库操作都有很大的帮助,详细信息见表 6。 出库单起着和和入库单一样的功效,方便记录所有的货物出库操作,从而方便对数据的统计,便于更新货物的数量,同时也是一项对货物操作的安全保证。主要包括了货物名称、仓库名称、出库时间、出库数量等。详细信息见表 7。 更多论文 /fanteral 13 表 4 客户信息表 字段名称 数据类型 大小 说明 客户代码 客户名称 Varchar 10 主键 Varchar 20 货物来去的单位名 联系人 Varchar 10 单位的相关人事 联系电话 Varchar 15 单位的联系电话 联系地址 Varchar 50 单位的所在地 电子邮箱 Varchar 30 单位的邮箱地址 表 5 货物类型表 字段名称 数据类型 大小 说明 类型代码 Varchar 8 主键 类型名称 Varchar 10 货物类型的名称 表 6 入库单表 字段名称 数据类型 大小 说明 入库单编码 Varchar 15 主键 货物名称 Varchar 20 入库货物的名称 存放仓库 Varchar 20 入库时的存放库位 入库时间 Datetime 8 新货物的入库时间 入库数量 Int 4 货物的入库数量 入库单价 Float 8 货物的入库单价 供应商 Varchar 20 提供货物的来源地 经办人 Varchar 20 入库的经办人 和出库单的重要性一样,移库单的建立也是为了保证货物操作的安全,同时也便于货物出库等操作,主要包含的信息是货物名称、库位名称、移库时间、移库数量。移库单的详细信息见表 8。 数据库试运行合格后, 数据库开发工作就基本完成,即可投入正式运行了。但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进更多论文 /fanteral 14 行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。 表 7 出库单表 字段名称 数据类型 大小 说明 出库单编码 Varchar 8 主键 货物名称 Varchar 20 出库货物的名称 存放仓库 Varchar 20 货物的所在库位 出库时间 Datetime 8 货物的出库时间 出库数量 Int 4 货物的出库数量 出库单价 Float 8 货 物的出库单价 客户商 Varchar 20 提取货物的单位 经办人 Varchar 20 办理出库的经办人 表 8 移库单表 字段名称 数据类型 大小 说明 移库单编码 Varchar 15 主键 货物名称 Varchar 20 进行移库的货物 原库位名称 Varchar 20 货物现在的库位 现库位名称 Varchar 20 货物的目的库位 移库时间 Datetime 8 货物的移库时间 移库数量 Int 4 进行移库的货物量 经办人 Varchar 20 办理移库的经办人 在数据 库运行阶段,对数据库经常性的维护工作主要是由 DBA( Database Administrator) 完成的,包括: ( 1)数据库的转储和恢复 DBA 要针对不同的应用要求制定不同的转储计划,一保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。 ( 2)数据库的安全性、完整性控制 DBA 根据实际情况修改原有的安全性控制和数据库的完整性约束条件,以满足用户要求。 更多论文 /fanteral 15 ( 3)数据库性能的监督、分析和改造 在数据库运行过程中, DBA 必须监督系统运行,对监测数据进行分析,找出改进系统性能的方 法。 ( 4)数据库的重组织与重构造 数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织或部分重组织。 3.2 系统设计 3.2.1 系统功能结构图 系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。 根据系统功能的需求分析和企业仓库管理的特点,经过模块化 的分析得到系统功能模块结构图。 图 8系统功能结构图 将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 仓库管理系统 系统管理 库存管理 业务信息 退出系统 仓管员信息 移库登记 出库登记 入库登记 货物管理 客户商信息 供应商信息 员工信息 业务查看 移库单查看 出库单查看 入库单查看 更多论文 /fanteral 16 系统功能结构图详细信息如图 8所示。 3.2.2 业务流程图 图 9 业务流程图 程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。该系统的程序流程图如图 9所示: 4 系统功能模块设计 4.1 登陆模块 开始 登录界面 系统主界面 货物信息查询 仓管员信息查看和修改 货物入库登记 货物出库登记 货物移库登记 业务信息查询和修改 选择 货物信息查询 仓管员信息 货物入库登记 货物出库登记 货物移库登记 业务信息查看 退出系统 更多论文 /fanteral 17 在仓库管理系统中,登录界面是非常重要的,它是整个仓库管理系统的基础,只有通过此登录界面的认可,才能够进入库存管理系统,正确的执行库存管理的功能 3。对应的界面如图 10所示。 图 10 登录界面 在此窗口中仓管员必须输入正确的姓名和密码,才能进入系统主界面,事先将仓管员的姓名和密码以及 ID 号存在一个 SQL Server 数据库仓管员中,当仓管员登录系 统时,系统将用户输入的姓名和密码与数据库中事先存放的姓名和密码进行比较,如果相同,则进入系统主界面,否则提示用户输入错误或者提示此用户不存在。 4.2 仓库管理系统模块 4.2.1 仓库管理系统主界面模块 在系统主界面中,可以完成此系统的全部功能,包括货物信息查询,货物入库信息登记处理,货物出库信息登记处理,货物移库登记处理,业务信息查询等等一些界面。系统设计目标是通过一系列菜单驱动来完成相应的子界面创建和管理。 如图 11所示,在仓库管理系统中,主要包括以下几个方面的功能模块,其中每个功能模块又分别由 23个功能来完成。 在库存管理模块中,主要包括仓库盘存和退出系统两个功能。在入库管理模块中,主要包括入库登记管理功能。在出库管理模块中,主要包括出库登记管理功能。在业务信息模块中,主要包括具体经办人和仓库信息统计两个功能。在业务单位模块中,包括供货商和客户商两个功能。选择不同的菜单进入不同的库存管理子界面,完成相应的功能系统主界面采用 Java 中的 Frame技术。 更多论文 /fanteral 18 图 11 仓库管理系统主界面 4.2.2 入库登记模块 图 12 入库登记界面 入库登记模块也是仓库管理系统的主要功能模块,当一个公司的仓库 进货时,我们更多论文 /fanteral 19 通常需要进入这个表格填写界面,输入正确的货物信息,完成货物信息的录入,对应的仓库入库登记信息子界面,如图 12所示。在仓库管理系统入库登记信息主界面中,必须输入正确的入库登记信息,包括入库日期和入库单号,以及货物代码、库存数量、供货客户和经办人信息等一些关于货物入库的详细信息。 4.2.3 出库登记模块 出库登记是和入库登记相对应的系统模块,当一个公司将自己的产品销售出去的时候,就要进入这个系统界面来完成对公司产品出库信息进行详细的记录,这个也是仓库管理系统的重要功能之一。对应的系统界面如图 13所 示。 在仓库管理系统的出库登记信息主界面中,必须输入正确的出库登记信息,包括出库日期和出库单号,以及货物代码、出库数量、收货单位和经办人信息等一些关于货物出库的详细信息。 图 13 出库登记界面 4.2.4 移库登记模块 移库登记模块也是系统管理的一个重要模块,当货物的性质发生变化,或者仓库位置需要改动的时候,货物想相关信息也需要改变,这时就要进行货物移库处理,进行移库登记,方便改动相关的货物信息。对应的系统界面如图 14所示。 在仓库管理系统的移库登记信息主界面中,必须输入正确的移库登记信息,包括移更多论文 /fanteral 20 库 日期和移库单号,以及货物代码、移库数量、原仓库信息和移库的仓库信息等一些关于货物移库的详细信息。 图 14 移库登记界面 4.2.5 业务单位信息模块 图 15 供应商信息界面 这个模块包括两个功能模块:一个是供货单位信息的统计,一个是收货单位信息的更多论文 /fanteral 21 统计。这两个功能模块的实现方法基本相似,在此重点介绍供货单位信息模块的实现。在本次系统开发中,用到的供货单位信息界面如图 15所示。 仓库管理系统中的供货单位信息用来统计公司仓库和公司有业务来往的企业信息,通过这些信息的正确统计,可以帮助企业建立一个丰富 的企业信息资料库,为公司以后业务的顺利展开服务,提高公司的业务业绩。在系统供货商信息登记表中,主要完成的功能是等级供货单位的信息。方便公司业务的开展,是仓库管理系统的重要功能之一。 4.2.6 业务查看模块 图 16 入库单信息查看 业务查看模块是仓库管理系统的重要管理模块,主要有三个模块组成,分别是仓库货物入库单、出库单和移库单统计的功能。在这里,重点介绍入库单信息模块。这个模块的主要功能就是记录仓库货物入库所有单张的详细信息,包括不同日期、不同货物、不同经办人所办理的入库单张的一些详细信息。详细如 图 16所示。 在系统仓库经办人员信息登记模块中,主要功能是显示所有相关货物入库单的信息,方便公司业务的查看与修改,是仓库管理系统的重要功能之一。 5 系统实现 由于实现这个系统的软件是 JBuilder 2006,主要的编程语言是 Java 语言,数据库更多论文 /fanteral 22 实现语言是 SQL( Structured Query Language)。实现过程主要围绕这些编程知识进行,同时也围绕交互界面友好这个创建系统要素进行。 首先在 JBuilder 2006 主界面中创建一个命名为 warehouse 的工程,然后在该工程中创建一个命名为 whApp 的应用程序和命名为 login的 Frame(框架),这时会自动生成一个 whApp.java 文件和一个 login.java 文件。完成应用程序的创建之后,分别创建主界面 Frame、货物入库登记 Frame、货物出库登记 Frame等等操作。当运行时,系统首先运行 whApp.java文件,由 whApp.java调用 login.java,从而弹出登录窗口。通过登录窗口进入系统主界面。然后在主界面可以通过菜单选项选择相应的功能模块进行系统管理,具体实现过程如下。 5.1 建立与数据库连接的类 由于系统在每个页面要使用 数据的时候都要建立与数据库的连接,则有很多代码是重复的,这里我先建立一个连接数据库的类 whConnect,然后在要使用数据库的地方,创建一个 whConnect 对象即可。当然,如果查询或修改数据库的工作在不同的页面只是参数不同而已,也应该建立一个 Query 类。这里只建立一个连接数据库的类,这样做的好处是,如果连接数据库的用户名或者密码变化了,只需要修改这一个文件。 下面首先来建立 whConnect 类,这里使用 Class Wizard 来创建应用程序,实现步骤为:选择 file new菜单项,双击 Class图标,在 Class name中输入 whConnect,其他选择默认值,点击 finish 即可创建一个新类。 在新类的 source页面中添加代码即可。具体如下: 先在开始的位置添加的 SQL 包 import java.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; con=DriverManager.getConnection(url,username,password);/ 建立一个更多论文 /fanteral 23 Connection对象 catch(SQLException e1) return con;/返回一个 Connetion对象 上面便是连接数据库 whConnect类所用到的主要语句。 5.2 建立把弹出窗口置屏幕中央的类 在调试的时候不难发现,每个弹出的窗口都是出现在显示屏屏幕的左上角的,为了使系统界面更友好,建立一个类来设定每个窗口显示的时候都居于屏幕中央,其主要代码为: Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); /捕捉屏幕尺寸 Dimension frameSize = 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=; 更多论文 /fanteral 24 passwordTemp=; for(int i=0;ijPasswordField1.getPassword().length;i+) passwordTemp+=jPasswordField1.getPassword()i;/提取用户输入的密码 loginQuery=SELECT 姓名 ,登录密码 FROM 职工 WHERE 姓名 =?; pstmt=con.prepareStatement(loginQuery); pstmt.setString(1,jTextField1.getText(); rs=pstmt.executeQuery(); if(!rs.next()|rs.getString(登录密码 )=null) JOptionPane.showMessageDialog(this, 查 无 此 人 !, 错误,JOptionPane.ERROR_MESSAGE); jPasswordField1.setText(); else if(!rs.getString(登录密码 ).equals(passwordTemp) JOptionPane.showMessageDialog(this, 密 码 错 误 !, 错误,JOptionPane.ERROR_MESSAGE); jPasswordField1.setText(); 在 whApp.java里面只是实现把登录界面显示出来,如果要主界面在登录后显示出来,需要添加代码,把当前的登录界面关闭,并且显示系统主界面框架。其代码如下: mainFrame fr = new mainFrame();/mainFrame 是系统主界面 this.dispose();/把当前登录窗口关闭 FrCenter FC = new FrCenter(fr);/把主界面置显示屏中央显示 另外,为了方便使用键盘操作,添加键 盘监听操作,使得在仓管员输入密码之后,按下 ENTER键也能进入系统,主要代码和按钮监听操作一样,只需要添加下面一个 if语句: if (e.getKeyCode() = KeyEvent.VK_ENTER);/判断当前键盘是否按下 ENTER键 5.4 系统主界面的实现 由于主界面框架并不是在建立应用程序的时候建立的,需要另外新建。具体步骤为:选择 file new菜单项,双击 Frame图标,在 Frame name中输入 mainFrame,其他选择默认值,点击 finish即可创建一个新框架。 更多论文 /fanteral 25 在 design 页面设置好相关的组件后就要对代码实现各种功能。菜单主要使用javax.swing.jMenuBar 这个菜单组件来实现,当点击菜单的相关功能选项之后,就通过菜单监听器来调用 frCenter(Frame frame)类以显示要连接的窗口并使之显示在屏幕中央。各主界面显示的功能实现如下: 5.4.1 货物数据查询 在主界面有一个对货物的详细信息的查询功能,首先使用 jdbTable 组件显示所有货物的信息,然后再根据需要查询某些货物的信息,本系统只给出三个查询条件:货物名称、货物所存放的仓库名称、货物的类型。为了便 于使用,查询条件显示所有已存在的数据,用 jComboBox这个组件来实现,先把查询条件相关的数据放到 jComboBox 选项里,选定所需条件并点击查询按钮后, jdbTable 将更新显示相关的数据查询结果。其中jComboBox的设置代码为: queryStr1=SELECT distinct 货物名称 FROM dbo.货物信息 ;/查询语句 stmt=con.createStatement(); rs1=stmt.executeQuery(queryStr1);/进行查询 jComboBox1.addItem();/初始值为空,因为数据表里有数据 while(rs1.next() String GName = rs1.getString(货物名称 );/获得相关列名的数据 jComboBox1.addItem(GName);/把数据放到 jComboBox里 通过查询条件更新数据表里的数据,首先获得当前查询条件,然后更新数据表,相关代码如下: if(jComboBox1.getSelectedItem()!=) str1=SELECT * FROM dbo. 货 物 信 息 WHERE 货物名称=+String.valueOf(jComboBox1.getSelectedItem()+; if(jComboBox2.getSelectedItem()!=) if(str1!=) str1=str1+ OR 存 放 仓 库=+String.valueOf(jComboBox2.getSelectedItem()+; else str1=SELECT * FROM dbo. 货 物 信 息 WHERE 存放仓库=+String.valueOf(jComboBox2.getSelectedItem()+; 更多论文 /fanteral 26 if(jComboBox3.getSelectedItem()!=) if(str1!=) str1=str1+ OR 货 物 类 型=+String.valueOf(jComboBox3.getSelectedItem()+; else str1=SELECT * FROM dbo. 货物信息 WHERE 货物类型=+String.valueOf(jComboBox3.getSelectedItem()+; queryDataSet1.close(); queryDataSet1.setQuery(new QueryDescriptor(database1,str1, null, true, Load.ALL); jdbTable1.setDataSet(queryDataSet1); 5.4.2 入库登记实现 与数据库的连接原理跟前面一样,都是通过输入参数,实现 SQL 语句。不同的是,这次是要向数据库中插入新数据。如果货物是有过 记录的,就是仓库里还有同类的货物,只是在数量上有所变化,则首先要在货物信息里选择相关的信息,然后把库存数量更改,这里主要用到的 java函数是 preparStatement.executeUpdate();如果货物是新的,之前没有过任何相关的数据记录,则需要添加相应的数据,同样也是用到前面的那个 java函数。这个模板同样也使用到方便实用的 jComboBox 组件把已有的货物显示到选项中,然后根据已有的货物信息进行更新操作。 5.4.3 出库登记实现 出库登记模块的实现跟入库登记模块的实现是基本一致的,主要是对出 库单进行修改操作,这里主要是实现货物库存数量上的更改,使用到的 java 函数也是prepareStatement.executeUpdate()。关于货物的信息完全不需要输入,同样使用方便实用的 jComboBox 组件把已有的货物显示到选项中,只需从已有的信息中选取则可,然后根据已有的货物信息进行更新操作。 5.4.4 移库登记实现 移库登记模块的实现跟出库登记模块的实现主要是修改货物所在仓库的数据,在移库单里把现在所在的库位的代码和名称转换为要移到的仓库库位代码和名称,使用到的java函数也是 prepareStatement.executeUpdate()。代码跟前面的类似,这里就不重复了。 更多论文 /fanteral 27 5.4.5 业务信息实现 业务信息包含的内容主要有显示业务信息和更改业务信息,显示业务信息的方法跟在主界面上实现货物的信息查询功能是一样的,当有业务信息要更新时,再添加相应的业务信息。这里的业务信息是供货商的信息和客户商的信息,另外包含了仓库职工的信息,在进行入库、出库和移库操作的时候,经办人可以是仓管员,也可以是仓库其他职工,故把职工列为业务信息的一部分。 首先在窗口中显示目前的业务信息,当有新的客户产生时,就在相应的位 置插入新信息,主要用到的 java 函数也是 prepareStatement.executeUpdate()。把相关数据插入到客户信息表和职工信息表里。 6 总结与展望 6.1 总结 本文研究了基于 Borland 公司的 JBuilder 2006 平台的仓库管理系统的设计和实现,在结合 Java编程知识和数据库知识与实践应用的基础上,设计和开发了仓库管理系统。通过这个系统的设计和实现,取得了下面几点成果: 1. 对数据库和 Java 编程知识的深入学习都有了很大的提高,了解了更多数据库编程知识,例如 JDBC概念的了解和应 用,这对我来说是一个质的提高。 2. 对软件开发的程序有了更深一层次的认识,并由此获得分析和实现项目开发和管理的经验。虽然这个项目是个简单的项目,但是总体学习到的东西很多,要考虑的问题也很多,我的思考能力从而得到提高。 3. 联系理论与实践的能力得到了提高,这个系统不只是一个对 IT 项目的了解过程,更是对所有项目的了解过程,所有的项目都是需要经过需求分析,设计方案来解决的。这让我对项目管理方面的工作产生很大的兴趣,扩展了视野。 4. 这次毕业设计的完成更是对我自己在编程能力和设计意识上的肯定。大学期间做过很多 的课程设计和项目,但是每次都是小组的形式,我所负责的也只是其中一小部分,能够单独完成一个项目,对我来说真的是一次很大的挑战,我能完成这次项目说明我的潜力还是有的,使我对自己有了更大的信心去发展以后的事业。 6.2 展望 虽然这个项目已经完成,而且也基本达到了老师和自己心中的要求,但是毕竟一个人做的,有些方面考虑的不是很完善,有很多地方都需要改善,鉴于能力和时间的安排不合理,我在调试的过程中,总结了一些需要改善的地方,具体如下: 更多论文 /fanteral 28 1. 这个系统太简单,不能与订货系统、销售系统等相关联。以后要使用这个系统,只能 是单独在仓库里使用,在这方面,可以再增加一些数据的传递,以便于货物存储数量出现问题的时候,得到提示并快速进行分析,以便快速向供货商发送订货信号,保证货物的充足。 2. 数据库完整性没有得到很大的体现,总的来说,一个仓库的容量是有限的,不能无限地添加货物,当货物的入库量超过一定的程度,就要发出信号,提示货物超量,及时更正货物入库量。 更多论文 /fanteral 29 致 谢 大学四年的学习在这里划上句号,这是我的最后一次作业,也是应用知识面最广的一次作业。 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有太多的, 可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。 首先,我要郑重的感谢我的指导老师 黄小虎,自 选题 开始黄老师就给了我充分的支持和理解,再到 构思、资料的收集, 系统的完成 以及成文定稿, 黄老师都给我提出了许多宝贵的修改意见和帮助。 另外,我还要感谢 Java启蒙老师梁茹冰,在她的指导和鼓励下,我领会到了学习 Java的乐趣。 其次,我要感谢我的父母。 我性质朴,乃承恩于父母,是他们对我的关爱、理解和支持陪伴我度过生命中许多难忘的日子 ,是他们的辛苦换来了我的四年大学 ,他们是我学习和生活的精神支柱。 今后我将竭尽所能,加倍补偿这份一辈子也还不清的深情。 最后, 我要 感谢 华南农业 大学给了我一

温馨提示

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

评论

0/150

提交评论