资源描述
毕业设计(论文)题目:毕业设计(论文)题目:德美斯防水工程公司库存管理系统的设计与实现毕业毕业 内容:内容:本库存管理系统可以用于德美斯防水工程公司完成日常工作,支持公司实现规范化的销售管理,支持本公司高效率完成库存管理的日常业务。系统将要实现的功能有销售商品的分析,对客户需求的分析,以及相关用户及商品库存的增、删、改、查等工作。毕业毕业 专题部分专题部分: 毕业毕业 起止时间:起止时间: 二二八年一月八八年一月八日日 二二八年五月三十八年五月三十日日指导教师:指导教师: 职称:职称:负责人:负责人:设计设计论文论文设计论设计论文文设计设计论文论文设计设计论文论文摘摘 要要进销存管理系统是一个基于 web 的应用系统,整个系统从符合操作简便、实用、安全的要求出发,完成进货、销售、库存管理的全过程。企业单位只需具备上网的条件即可在系统发布的站点上进行进销存的管理。在图型化的人机界面中完成日常的进销存管理工作。沈阳德美斯防水堵漏工程有限公司是美国德美斯建材工程(集团)公司旗下的一家三级防水施工企业。负责中国东北地区的施工业务。以往每日进出货物数量都是用手工计算来完成,常常造成数据查找速度慢、输入时宜出错、工作效率低等情况。本系统是根据企业的特点,集进、销、存于一体的进销存管理软件。在设计过程中在设计过程中最大限度的满足了用户的要求,因此,该系统具有较强的实用性。本系统操作简单,可维护性强,功能完备。本论文介绍了进销存管理信息系统开发的全过程。文章的结构:主要从管理、系统分析说明、系统设计说明、系统使用说明等方面对本系统加以论述。前言部分指明了选题背景和开题的意义;而后又详细介绍了系统的分析、系统的开发与设计等内容:最后给出了系统的使用和设计心得。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。经过分析,选定使用 struts 框架结构和 mysql 数据库,利用其提供的各种面向对象的开发工具。在短时间内建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。关键字:库存,防水,关键字:库存,防水,Struts,jsp,MysqlAbstractThe Purchase-Sell-Stock Management System is a web-based application system which accomplishes the whole process of purchasing, selling and stocking from the perspective of simplicity, practicability and safety. The fulfillment of purchase, sell and stock can be completed on the certain website as long as there is equip with internet which offers the human-machine interface on which this daily work is done.The Shenyang DeMeiSi water proofing leak stoppage Project Limited Company is a third-level enterprise which subordinate in American DeMeiSi building materials project (group) company. The main responsibility of the company is Northeast area construction service of China. Formerly, the daily quantity of the cargos entering and leaving is calculated by hand, that usually causes some situations such as finding slowly for the data, making mistakes easily when input the data, and the low efficiency of the work. This system is a manage software which is according to the characteristic of the enterprise, collected entering, selling and saving in a body. It has satisfied the users request maximum during the designs process, therefore, this system has more practicality. This system is easily to operate, maintainable, and the function is complete. This thesis introduces the whole development process of the Purchase-Sell-Stock Management System from the following perspectives: management, system analysis description, system designation description and system application description. The preface points out the background and meaning of this paper. The latter part offers further detailed information of the analysis, development and designation of this System. Last but not least, we have the experience and finding during the application and designation of this System.The development is how to establish the database and support the procedure. The database must be complete and safe. To support the procedure must be perfect and easy to use. Through analysis, we choose the struts and mysql which from the java as the tools. Because of the OOP tools are perfect and the database is easy to use. At first we use the database establishes application models in a short time. Then carry on the need analysis. At last, we can get the satisfied procedure.Keywords: stock,waterproof,Struts,jsp,Mysql目目 录录摘摘 要要.IABSTRACT.II第第 1 章章 绪绪 论论.11.1 课题背景.11.2 项目目标.21.3 项目意义.2第第 2 章章 系统分析系统分析.42.1 系统目的.42.2 需求分析.42.3 系统总体目标.52.4 可行性分析.52.5 开发环境和开发工具.6第第 3 章章 数据库设计数据库设计.83.1 数据库设计的基本理论.83.2 概念结构设计.93.3 逻辑结构设计.133.4 数据库完整性设计.163.5 数据库系统的实施.173.5.1 数据库选型.173.5.2 数据库的连接.18第第 4 章章功能模块设计功能模块设计.204.1 总体功能模块设计.204.2 详细功能模块.22第第 5 章章系统实现系统实现.245.1 开发涉及到的技术.245.1.1 开发设计模式.245.1.2 开发涉及到的技术.255.2 系统实现.265.2.1 管理员登录.285.2.2 进货管理.295.2.3 出库管理.315.2.4 查询.335.2.5 留言管理.345.2.6 统计显示.345.2.7 处理乱码.38第第 6 章章系统测试系统测试.396.1 功能性测试.396.2 安全性测试.39第第 7 章章结结 论论.41参考文献参考文献 .42致致 谢谢.44外文翻译外文翻译 .45第第 1 章章 绪绪 论论1.1 课题背景课题背景随着现代工业的发展,计算机管理也越来越受到企业的重视 。库存管理系统也以方便、快捷等优点正慢慢地进入企业管理过程中,并将从传统的库存管理方式彻底的解脱出来1。目前,无论是公司还是企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。本次设计是围绕进销存管理2这个中心来开发的管理系统,针对德美斯防水工程公司当前进销存管理的特点和业务现状,采用结构化的设计方法,进行系统调查、系统分析、系统设计以及系统实现。该系统主要实现了对德美斯公司产品的库存管理、销售管理、进货管理、销售统计、客户管理以及查询和打印等功能。当今社会,各行各业普遍面临着各种来自内部的挑战和外部激烈的竞争,谁能够在挑战和竞争中保证品质、降低成本,就能掌握最后的胜利。这种情况下,传统的办公应用的人工处理操作坊式已经不能满足需求,随着需要处理的各种数据的日益增多,这种状况越来越让人难以忍受,除了效率不高外,浪费的人力与成本也越来越成为企业的沉重负担。因此,办公应用的信息化需求迫在眉睫。沈阳德美斯防水堵漏工程有限公司是美国德美斯建材工程公司旗下的一家三级防水施工企业。但成立多年来企业还停留在手工记录阶段。而随着全球经济信息化的进程,企业面临着前所未有的机遇和挑战,在如此激变的社会形势和激烈的市场竞争下,德美斯公司的管理者意识到效率管理和科学管理的重要性,以及增强市场竞争力的迫切性,因此建立科学、规范、高效的管理制度和秉承富有竞争力的经营理念是每一个企业管理者的渴望,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。本系统采用服务器浏览器的模式3,企业单位只需具备访问网络的条件即可在系统发布的站点上进行进销存的管理。在图型化的人机界面中完成日常的进销存管理工作.一方面摆脱了空间的限制,另一方面有效的解决的数据共享的问题。1.2 项目目标项目目标本库存管理系统可以用于德美斯防水工程公司完成以下方面的日常工作:(1) 支持本公司实现规范化的销售管理。(2) 支持本公司高效率完成库存管理的日常业务,包括销售商品的分析,对客户需求的分析。以及相关用户及商品库存的增、删、改、查等工作。(3) 支持本公司进行商品管理及其相关方面的科学决策。德美斯公司有自己的客户,每个客户都有自己的信息,将用户的相关信息结合起来都放到数据库中。系统使用者可以对大量的客户信息进行科学、有效、快捷、统一的管理,也可以为决策者提供决策参考依据。本系统可以帮助本公司规范化的销售管理制度、更有效的管理客户资料,使本公司管理水平更加科学化。1.3 项目意义项目意义 现在我国的企业特别是中小型生产企业的库存管理水平还停留在纸制介质的基础上,这样的机制已经不能适应时代的发展,因为他浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。而购买大型通用的库存管理系统,对中小型企业来说,又要付出昂贵的代价,而且库存管理项目不一定完全符合企业库存管理的要求。因此根据企业目前实际的库存管理情况开发一套库存管理系统是十分必要的。公司最早的销售管理模式通过纸介质为基础易出错,效率低,耗费大量的人力物力。人们把过多的精力用在找客户、做定单上。进出少的时候还可以,但随着公司规模的扩大就很难及时,准确的找到货品。造成很多问题的出现,甚至是不必要的浪费和损失。日趋复杂和繁琐的信息管理和追踪,然而有效的发展和保留客户资源要求村子管理者们必须去全面地了解客户的所有信息,包括每个客户都需要什么货品,进多少货,剩余数目。德美斯防水公司在进货、库存、销售环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。而采用计算机管理则可以大大提高日常工作的效率,不仅将原来由手工操作的进货、出货及销售这一整套流程用计算机进行全程管理,而且消除了手工操作中可能存在的不确定因素,达到进销存管理流程清晰,从而能够比较彻底地贯彻经营者的管理模式。第第 2 章章 系统分析系统分析2.1 系统目的系统目的库存管理系统研究的内容涉及库存管理的全过程,包括:商品展示、入库管理、出库管理、库存查询、销售分析、客户需求等模块。具体包括以下内容4:(1)前台商品展示。(2)后台管理员登录信息的确认、修改。(3)基本商品的添加。包括:商品信息、数量、总价、日期、说明等,(4)出库管理。包括:商品名称、数量、总价、日期等。(5)库存查询。包括按日期查询、模糊查询等。(6)销售分析。通过柱状和折线图对每月的销售额进行分析。(7)客户留言。2.2 需求分析需求分析德美斯防水公司在进货、库存、销售环节中,由于商品种类繁多、业务量大、库存管理复杂,使用手工操作的工作量很大,在操作过程中也很容易出现各种错误。通过调查研究,要求系统满足以下功能:(1)由于操作人员的计算机知识有限,因此要求系统具有良好的人机界面。(2)如果系统的使用对象较多,则要求有较好的权限管理。(3)方便的数据查询功能,并支持多条件查询。(4)在各种单据中根据输入的基础数据自动计算金额,尽量减少人工干预。(5)对客户或供应商的往来账目进行有效管理。(6)通过计算机,能够直接查看仓库存储情况。(7)图标分析对某一时间段内的某种商品的销售情况按数量进行汇总。2.3 系统总体目标系统总体目标企业库存管理系统是一个数据库开发应用程序,由基础信息管理、库存管理、商品销售、查询统计、系统设置等部分组成。(1)基础信息管理。该模块主要是对企业的客户信息、商品信息、供应商信息进行有效管理,产品的宣传。(2)库存管理。该模块主要是对商品的入库及入库退货信息进行有效管理,同时可按不同条件查询库存商品。(3)商品销售。该模块主要是对商品的销售及销售信息进行有效管理。(4)查询统计该模块主要实现按不同条件查询商品的入库信息及销售信息,并可对某一时间段内某种商品的销售情况按数量或金额进行升序或降序排行,同时可对某一年度的销售额进行图表分析。2.4 可行性分析可行性分析通过计算机网络系统对企业进行全面的管理,满足了企业现代化管理的要求,消除了手工操作中可能存在的不确定因素,达到进销存管理流程清晰,从而能够比较彻底地贯彻经营者的管理模式。从下面两个方面分析项目是可行的。(1) 经济可行性 企业只要具备访问网络的条件,就可以在自己的网站登录,随时随地查询、管理商品的信息。本系统的所使用的配置是一般的 PC 机,对于企业来说是完全可以实现的。当前许多中小型企业都使用人工管理方式来管理企业的进销存,这样的管理方式既困难又浪费时间和成本,并且容易出现漏账、坏账的情况,因此中小企业应该向大型企业那样采用先进的管理方式,提高企业效率、降低企业运营成本。可以说企业以很小的投资,就可以解决以往管理中存在的问题。(2)技术可行性企业进销存管理系统从中小企业的实际出发,可有效地管理企业的进销存情况,并降低企业运营成本、及时调整营销策略、提高库房的利用率。如今很多基于大型数据库的应用系统正在采用这种全新的技术模式。B/S 模式由浏览器、Web 服务器和数据库服务器三个部分组成。在 B/S 模式下,客户端将形形色色的各种应用软件取而代之为一个通用的浏览器,用户的所有的操作都是通过这个通用浏览器进行的。这种结构的核心部分是 Web 服务器,它负责接受远程或本地的 HTTP 查询请求,然后根据查询的条件到数据库服务器获取相关的数据,然后再将结构翻译成 HTML 或者各种页面描述语言,传送回给提出查询请求的浏览器。同样,浏览器也会将更改、删除、新增数据记录的请求申请至 Web服务器,有 Web 服务器与数据库联系完成这些工作。本系统操作简单。操作人员不学要学习复杂的技术,只需要通过鼠标的点击和键盘的录入就可以完成日常的工作。所以本系统对经济和技术的要求很小,是完全可以实现的。2.5 开发环境和开发工具开发环境和开发工具整个系统是在 Windows XP SP2 环境下开发完成的。(1)客户端操作系统采用 Windows98 以上,IE5.5 以上的浏览器。(2)服务器:Tomcat 6.05:一个网站的建设是基于网站服务器的。本系统采用的 Tomcat6.0。Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,能够方便的开发和调试程序。(3)开发工具:jdk1.5、Myeclipes5.1、Dreamweaver 8 。(4) JSP:JavaServer Pages(JSP)6是一种实现普通静态 HTML 和动态HTML 混合编码的技术。JSP 和 ASP 相比具有两方面的优点。首先,动态部分用Java 编写,而不是 VB Script 或其他 Microsoft 语言,不仅功能更强大而且更易于使用。第二,JSP 应用可以移植到其他操作系统和非 Microsoft 的 Web 服务器上。JSP 和纯 Servlet 相比 JSP 并没有增加任何本质上不能用 Servlet 实现的功能。但是,在 JSP 中编写静态 HTML 更加方便,不必再用 println 语句来输出每一行 HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行 HTML 设计,同时留出供 Servlet 程序员插入动态内容的空间4。(5) Struts 2.0: Struts7是 Apache 软件组织提供的一项开放源码项目,它为Java Web 应用提供了模型-视图-控制器(Model-View- Controller)框架,尤其适用于开发大型可扩展的 Web 应用。 Struts 为 Web 应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。Struts 是采用 Java Servlet/JavaServer Pages 技术,开发 Web 应用程序的开放源码的 framework。 采用 Struts 能开发出基于 MVC8(Model-View- Controller)设计模式的应用。第第 3 章章 数据库设计数据库设计3.1 数据库设计的基本理论数据库设计的基本理论建立数据库的目的不仅仅是为了存储一定量的数据信息,更重要的是在这些数据的基础上进行查询分析,从而生成报表并且为决策提供一定的帮助。一个数据库设计的好坏会直接影响到将来这个数据库的使用和维护。关系数据库的设计基本遵循以下步骤9:(1)确定数据库的用途和需求。在这个过程中,需要尽量地与相关的人员进行交流,草拟将生成的报表,收集可能用到的当前记录数据的窗体,确定在数据库中将要存储那些事实以及这些事实属于哪些主题。(2)确定数据库中需要的字段。每一个字段是与一定的事实相关的。字段记录的是事实的最基本属性,因此在决定需要哪些字段时,只将最能体现事务性质的属性确定为字段,也就是说,要注意这些字段要包含所有需要的信息,将信息分成最小的逻辑部分,不要包含计算得到的数据,不要创建相互类似的字段。(3)确定数据库中需要的表,在每个表中只包含关于一个主题的信息。(4)确定每个字段属于哪个表,尽量将一个字段只添加到一个表,并且此字段存入表中之后不会在此表中出现多个记录同样信息的情况。这样做的目的是为了尽量减少数据的冗余度。(5)为每一条记录确定唯一值标识字段。建立唯一值的目的是为了标识不同的记录,也是为了用于建立表与表之间的关系。(6)确定表与表之间的关系。存储信息时将信息分散到不同的表中,为了将相关信息联系在一起,需要建立表与表之间的关系。(7)优化设计。对已经完成的设计进行修改。可以先建立表,输入足够的示例数据进行检查。创建查询、窗体和报表的草稿,检查显示数据是否是预期的。在检查的基础上进行优化。数据库是企业所涉及的数据的综合,它不仅反映数据本身的内容,而且反映数据之间的关系10。数据库的设计是指根据特定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。库存管理系统研究的内容涉及库存管理的全过程,包括:商品展示、入库管理、出库管理、库存查询、销售分析、客户需求等模块。具体包括以下内容:(1)前台商品展示。(2)后台管理员登录信息的确认、修改。(3)基本商品的添加。包括:商品信息、数量、总价、日期、说明等,(4)出库管理。包括:商品名称、数量、总价、日期等。(5)库存查询。包括按按日期查询、模糊查询等。(6)销售分析。通过柱状和折线图对每月的销售额进行分析。(7)客户留言。设计时首先在数据库中设计每一个需求所需要的表,然后,根据处理的需要,进行了表结构即表内属性的设计,最后确定了表与表之间的关系。关系模型把世界看作由实体和关系构成的。实体,就是指现实世界中具有区分与其他事物特征或属性并与其他实体有联系的对象。数据库中通常以表的形式表现。关系,就是指实体之间的关系。反映实体集合及其关系的结构形式称为实体关系模型。E-R 图就具有具体的含义,它是现实世界事物及其联系的抽象。E-R图的设计过程实际是对数据进行归纳、分析,把用户按他们对数据和功能需求进行分组。3.2 概念结构设计概念结构设计 管理员拥有对商品入库、出库记录的管理,和对库存信息的查看的权限,包括商品金额,商品数量等信息。由于公司有多个管理员,每个管理人员都有相同的权限。管理员只要输入了正确的身份验证,就可以对库存信息进行管理。根据用户的需求,把整个系统以 E-R 图的形式,直观的表现出来。从整个 E-R 图可以清楚的看出,各个模块之间的关系,和个实体的属性。下面是整个系统总体的 E-R 图。如图 3.1 所示。 m1系统用户用户编号用户姓名材料入库1商品m供货入库商品信息说明操作员商品单价商品单位产品名称商品数量管理m出货商品信息商品名称商品编号单价数量操作员说明n商品金额进货时间进货数量登录id登录密码管理1m出货nm出货时间出货数量商品编号品名型号进价售价单位仓库管理1m储存1m金额仓库名称仓库容量 图图 3.1 项目整体项目整体 E-R 图图实体属性的确定,实际是将需求分析中得到的数据的聚类进行转化和调整。下面将逐一确定德美斯库存管理系统各个实体和联系的属性11。(1)管理员实体。管理员实体的属性是对管理员个人信息的描述。具体如下:有管理员的用户名、密码、真实姓名和编号。相应的 E-R 图,如图 3.2 所示。图图 3.2 管理员管理员 E-R 图图(2)库存信息。库存信息的属性是对库存商品信息的描述。具体包括:商品的编号、商品的名称、商品的数量、商品的金额、商品的单位、商品的单价等信息。相应的 E-R 图,如图 3.3 所示。图图 3.3 库存信息库存信息 E-R 图图(3)入库管理。存在于管理员实体对进货商品的管理。具体内容包括:进业务管理员姓名编号密码登陆 ID单 位单价金额库存信息商品编号品 名型 号货商品的编号、进货商品的名称、进货商品的单价、进货商品的数量、总价和进货日期。相应的 E-R 图,如图 3.4 所示。图图 3.4 入库信息入库信息 E-R 图图(4)出库管理。存在于管理员实体对出库商品的管理。具体内容包括:出库商品的编号、出库商品的名称、出库商品的单价、出库商品的数量、总价和出库日期。相应的 E-R 图,如图 3.5 所示。图图 3.5 出库信息出库信息 E-R 图图管理员管理商品编号姓名编号品名价钱1n数 量销售员管理商品编号姓名编号品名价钱1n入库时间出库时间数量(5)客户信息。客户实体的属性包括客户的基本资料。客户还可以对商品信息、企业信息进行察看。可以发表自己的留言。相应的 E-R 图,如图 3.6 所示。图图 3.6 客户信息客户信息 E-R 图图3.3 逻辑结构设计逻辑结构设计按照系统不同的功能模块,需要不同的表来存储信息,数据库表设计如下。(1)管理员信息表。表名 person。用来保存管理员的信息。已满足登录的权限。包括的内容有:管理员的账号、密码、真实姓名和编号。如表 3.1 所示。 表表 3.1 管理员信息表管理员信息表序号字段字段中文名域类型备注1Id编号INTEGER(10)主键2pname姓名Varchar153Username用户名Varchar154Password密码Varchar15mmnn顾客商 品浏览Id商品编号品名售价型号(2)商品信息表。表名 spxinxi。用来存放商品的信息。包括商品的商品编号名称、单位等信息。如表 3.2 所示。表表 3.2 商品信息表商品信息表序号字段字段中文名域类型备注1Id编号INTEGER10主键2Spname商品名称Varchar153Dw单位Varchar15(3)库存信息表。如表 3.3 所示。库存信息表主要用来方便管理员查询库存的信息。表名 kucun。Spid:商品编号。如 F001Spname:商品名称。与商品信息表中的名称相对映。Dw:单位。与商品信息表中的单位相对映。Sl:数量。根据进货和出货的情况随时更新。Je:金额。每种商品的剩余金额。表表 3.3 库存信息表库存信息表序号字段字段中文名域类型备注1Id编号INTEGER(10)主键2Spid商品编号Varchar15外键3Spname商品名称Varchar154Dw单位Varchar155Sl数量INTEGER(10)6Je金额Money(4)入库信息表。如表 3.4 所示。用保存本次进货的信息,以方便管理员查询和销售统计。表名 ruku。Spid:商品编号。如 F001。Spname:商品名称。与商品信息表中的名称相对映。如:水不漏。Dw:单位。根据商品信息表中显示。如:箱。Sl:数量。本次进货的数量。Je:金额。本次进货的金额。Czy:操作员。与管理员表中的姓名相对应。Sm:说明。对本次进货操作的特说解释。Rkdate:入库时间。本次操作的时间。表表 3.4 入库信息登记表入库信息登记表序号字段字段中文名域类型备注1Id编号INTEGER(10)主键2Spid商品编号Varchar15外键3Spname商品名称Varchar454Dw单位Varchar155Sl数量INTEGER(10)6Je金额Money7Czy操作员Varchar158Sm说明Varchar459Rkdate入库时间Datetime(5)出库信息表。如表 3.5 所示。用保存本次出货的信息,以方便管理员查询和销售统计。表名 chuku。Spid:商品编号。如 F001。Spname:商品名称。与商品信息表中的名称相对映。水不漏。Dw:单位。根据商品信息表中显示。如:箱。Sl:数量。本次出货的数量。Je:金额。本次出货商品的金额。Czy:操作员。与管理员表中的姓名相对应。Sm:说明。对本次进货操作的特说解释。Ckdate:出库时间。本次操作的时间。表表 3. 5 出库信息记录表出库信息记录表序号字段字段中文名域类型备注1Id编号INTEGER(10)主键2Spid商品编号Varchar15外键3Spname商品名称Varchar454Dw单位Varchar155Sl数量INTEGER(10)6Je金额Money7Czy操作员Varchar158Sm说明Varchar459Ckdate出库时间Datetime(6)客户信息表。如表 3.6 所示。用来存放客户留言信息。表名 ly。Ly 字段:留言。用来保存客户的留言。Lx 字段:联系方式。用来保存客户的联系方式。表表 3.63.6 留言信息表留言信息表序号字段字段中文名域类型备注1Id编号INTEGER10主键2Ly留言Varchar453Lx联系方式Varchar453.4 数据库完整性设计数据库完整性设计存储在数据库中的所有数据值均应是正确的状态,如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性12。数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的完整性。数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。本系统未保证数据的完整性,采用的如下的方法:(1)为每个表都设置了唯一标识的主键。以免在进行删除和修改操作的时候造成错误的操作。(2)为特定的字段作了非空的约束。如入库、出库的商品名、数量、金额、日期和操作人员不能为空。(3)对输入的金额形式作了判断。只能输入的是数字类型。如输入的字符串类将提示错误。3.5 数据库系统的实施数据库系统的实施3.5.1 数据库选型数据库选型根据项目的特点,选用了 Mysql 数据库。因大部分情况下软件都是在Windows 系统下使用的,考虑 Mysql 的优势在于中国普遍使用的免费数据库软件并且与系统的兼容度较高,并支持集成性安全检测,且对系统的资源消耗较小。相比之下,Oracle 数据库虽然性能较高,但由于其可操作性和方便性不如 Mysql好,并且服务器没有使用磁盘阵列和多处理器,无法发挥 Oracle 数据库设计上的性能优势,并且对系统性能要求较高。至于 Access 之类的数据库,由于其性能较低,且并发度太低又不具安全性,故不予考虑。最终决定后台数据库用Mysql5.0。下面先介绍一下 Mysql 数据库。Mysql 是一个多用户、多线程 SQL 数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。Mysql 是以一个客户机/服务器结构的实现,它由一个服务器守护程序 Mysql 和很多不同的客户程序和库组成。SQL 是一种标准化的语言,它使得存储、更新和存取信息更容易。同时 Mysql 也足够快和灵活,以允许你存储记录文件和图像。Mysql 主要目标是快速、健壮和易用。最初是因为需要这样一个 SQL 服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,Mysql 就开发出来。它已经提供一个丰富和极其有用的功能集。3.5.2 数据库的连接数据库的连接JDBC 技术:Java 联接数据库引擎。一个独立于 DBMS 的接口将使得与各种各样 DBMS 连接变得最为便捷,开发更加迅速。定义一个通用的 SQL 数据库存取框架,在各种各样的提供数据库连接模块上提供统一的界面是十分有意义的。Sun 公司设计了一个适合于 Java 使用的数据库操作引擎:JDBC(Java Data Base Connectivity),并于 1996 年 3 月份发布。它为各种常用数据库提供无缝联接的技术,并且沿袭了 ODBC 的设计思想,采用了与 ODBC 一样的设计基础:X/Open SQL Call Level Interface(简称 CLI) 。ODBC(OpenData Base Connectivity),称为开放式数据库互联技术,是由 Microsoft 公司倡导并得到业界普遍响应的一门数据库连接技术。为了使 JDBC 功能更加强大,还开发了一个“JDBC-ODBC 的翻译器”(也被称为桥接器) 。通过它,还可以使用数据库的 ODBC 驱动程序13。具体做法如下:(1) 把 Mysql 数据库驱动导入到项目中。(2) 导入需要的包。(3) 创建数据库连接对象。(4) 创建预编译的数据库查询对象。(5) 创建结果集。(6) 在连接数据库的类中创建一个构造函数,为了是以后每次调用这个类都会先加载数据库连接。(7) 加载数据库驱动。创建连接。要给出数据库的项目名和数据库的用户名和密码。第第 4 章章 功能模块设计功能模块设计 4.1 总体功能模块设计总体功能模块设计 系统的体系结构指的是本系统的总体结构以及该结构提供系统的功能的方式,总体设计的任务是确定本系统的体系结构,也就是说系统体系结构是程序的一些部件(模块)的层次结构,这些部件相互的方式以及这些部件使用的数据结构。如图 4.1 所示。修改删除记录添加记录用户留言管理管理员查询记录浏览网站留言图图 4.1 系统用例图系统用例图逻辑设计中最重要的就是系统的体系结构,即给出系统的功能框架,并细化模块。而模块化是指,解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能,它能降低软件系统的复杂性,提高可读性、可维护性。 本系统主要由以下几大功能模块构成。(1)产品展示:前台用于公司和商品的介绍。(2)商品管理:添加商品类型,修改商品类型,删除商品类型。(3)进货管理:添加进货管理,修改进货管理,删除进货管。(4)销售管理:添加销售管理,修改销售管理,删除销售管理。(5)统计管理:统计分析销售情况。(6)库存管理:可查看库存剩余商品的情况。下面是整个系统的一个总体功能的模块图:如图 4.2 所示。图图 4.2 总体功能模块图总体功能模块图系统包括用户管理、库存管理、入库管理、出库管理、销售统计等小模块。然后,进一步细分模块,添加细节。比如,用户管理又将其分为用户注册、用户注销、密码修改;库存管理分为库存记录查询、库存记录修改、库存记录打印等库存管理系统客户留言管理员设销售统计进货管理销售管理库存管理进货录入进货查询库存更新进货统计库存更新销售查询销售记录库存查询库存分布出入管理商品信息留言管理等.在此基础上将各模块经过进一步地细化,得到系统的子功能模块图。4.2 详细功能模块详细功能模块 (1) 进货管理:对进货商品进行添加、记录。同时更新库存中原有商品的新,使库存的记录保持最新状态。如图 4.3 所示。图图 4.3 进货功能模块图进货功能模块图(2)进货管理:添加进货管理,修改进货管理,删除进货管。同时更新库存中原有商品的新,使库存的记录保持最新状态。如图 4.4 所示。图图 4.4 销售功能模块图销售功能模块图(3)库存管理:可查看库存剩余商品的情况。随着进货和出货的同时库存中的商品的数量和商品在出货和进货的差额也随时更新。如图 4.5 所示。进货管理模块进货录入库存更新进货查询进货统计销售管理模块商品销售销售查询销售统计库存更新图图 4.5 库存功能模块图库存功能模块图(4)查询:可以查询仓库中商品的情况。包括商品的名称、数量、剩余金额。此外还可以查询按日期和商品名称的关键字进行销售情况的模糊查询。(5)客户管理:客户可以在公司的留言簿上留言。管理员可以查看和删除客人留言的权限。(6)销售统计:可以根据库存数据库中的记录自动生成直观的图标。以让管理者对某一商品的销售情况有大概的了解。库存管理模块库存查询库存统计出入库管理商品信息第第 5 章章 系统实现系统实现5.1 开发涉及到的技术开发涉及到的技术5.1.15.1.1 开发设计模式开发设计模式根据系统分析、系统设计的结果,来实现功能的模块的具体功能。概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁。是设计数据库结构的基础。通过项目和对数据库的分析,本项目整体采用 MVC 的模式。采用 MVC 模式的好处在于,目前,在大多数 Browser/Server 结构的 Web 应用中,浏览器直接通过 HTML 或者 JSP 的形式与用户交互,响应用户的请求。虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使 JSP 页面臃肿不堪,Web 服务器的负荷过重。因此,在中间层上采用基于模型视图控制器(MVC,Model-View-Controller)的设计模式。Model 层用来实现业务逻辑,View 层用来显示用户界面,Controller 层主要负责 View 层和 Model 层之间的控制关系。具体实现时,把 Struts 用作应用程序的控制器,把 JSP 文档作为视图,JavaBeans 被用来表示模型。所有的请求都被发送给作为控制器的 Struts,它接受请求,并根据请求信息将它们分发给适当的 JSP 来响应。同时,Struts 还根据JSP 的需求生成 JavaBeans 的实例并输出给 JSP 环境。JSP 可以通过直接调用方法或使用 Use Bean 的自定义标签得到 Java Beans 中的数据。这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速。5.1.25.1.2 开发涉及到的技术开发涉及到的技术 前台的显示部分选用的是 JSP。JavaServer Pages(JSP)是一种实现普通静态HTML 和动态 HTML 混合编码的技术。JSP 和 ASP 相比具有两方面的优点。首先,动态部分用 Java 编写,而不是 VB Script 或其他 Microsoft 语言,不仅功能更强大而且更易于使用。第二,JSP 应用可以移植到其他操作系统和非 Microsoft的 Web 服务器上。JSP 和纯 Servlet 相比 JSP 并没有增加任何本质上不能用Servlet 实现的功能。但是,在 JSP 中编写静态 HTML 更加方便,不必再用 println语句来输出每一行 HTML 代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行 HTML 设计,同时留出供 Servlet 程序员插入动态内容的空间。 后台选用的 Struts 框架14。Struts 模型部分包括 Action 与ActionForm。Action 封装应用处理逻辑,简单的逻辑可直接在 Action 类中实现,较复杂的可用 JavaBean 或是 EJB 实现,然后在 Action 中调用,因此 Action 注重解决“做什么”的问题,由其他的组件解决“怎么做”。ActionForm 封装了表单数据,使得 Action 不必与表单直接打交道,与 ActionForm 交互即可。视图 Struts 的视图用 JSP 来实现,其中的表单用 Struts 定义标记,这些标记封装了 HTML 表单中的标记,可与 ActionForm 元素之间进行映射。控制器控制器接受客户端的请求并执行相应的业务逻辑,并返回结果给客户端。Struts 由 ActionServlet 和 ActionMapping 组成,ActionServlet 接受客户端请求,已在 Struts 中基本实现。程序员只须专注于 ActionMapping 的编写,ActionMapping 实现一个请求到一个具体的 Action 对象之间的映射。如图 5.1 所示。开发工具选用了 Myeclipse。他是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。Eclipse 的最大特点是它能接受由 Java 开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio 和 Sun 微系统公司的 NetBeans 平台。Eclipse 为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。还用到的服务器是 Apache Tomcat。Tomcat 是 Servlet 2.2 和 JSP 1.1 规范的官方参考实现。Tomcat 既可以单独作为小型 Servlet、JSP 测试服务器,也可以集成到 Apache Web 服务器。图图 5.1 Struts 结构图结构图5.2 系统实现系统实现通过需求分析,已经了解了系统需要实现的功能。为了更好的确定各个模块的关系,把个模块生成实体的类。给出了类的属性和各类之间的调用关系。为了更好的实现系统的功能先来看一下程序的关系。下面是整体类图。如图 5.2 所示。SpxinxiSpnameSpidJedwlchar(10)char(10)char(50)char(10)CxSpidSpnameDwSlJechar(7)char(10)char(10)char(13)Money(50)KucunSpidSpnameJeSlchar(8)char(10)Money(10)intChukuSpnameShidJeSlCkdatechar(7)char(10)Money(10)numeric(5)datetimeRkSpidSpnameJeSlRkdatechar(7)char(10)char(10)numeric(5)datetime图图 5.2 系统类图系统类图5.2.15.2.1 管理员登录管理员登录管理员输入用户名和密码。通过表单提交之后,会根据数据库中的用户和密码进行比对。如果正确可以进入后台管理的页面。如果在数据库中没有找到相对应的记录,系统会提示您密码或用户名输入错误。在这中间还加入了脚本用于验证您输入的内容是否为空。还加入的用于验证的过滤器,以防止用户直接进入后台管理页面。如图 5.3 所示。开始输入用户名,密码和验证码判断输入的合法性查询数据库查询成功登陆成功结束YN提示信息NY图图 5.3 登录流程图登录流程图管理员登录成功之后就有了添加、修改、删除等权限了。5.2.25.2.2 进货管理进货管理进入后台管理页面之后点击入库登记页面。点击的同时连接到 xssp.do 提交一个查询商品名称的动作。将动态获得数据库中所有商品的名称,然后将其全部显示在下拉列表框中。这样做的好处在于,项目扩展性强。可以随着商品的加入而随时更新商品的名称。如图 5.4 所示。图图 5.4 进货管理界面进货管理界面然后进行添加商品的操作。各文本框要提交的表单名称如下表。表 5.1 所示。表表 5.1 商品添加涉及到的表单元素商品添加涉及到的表单元素名称类型字段中文名重要属性说明FormForm表单rk.do提交动作spnameSelect商品名称Test从 session 获得DjTest单价SlTest数量JeTeat金额CzyTest操作员RkdateTeat时间添加完表单信息之后进行插入操作。具体见入库管理活动图。如图 5.5 所示。从数据库中获得商品名称验证用户名密码查看数据库管理员登录添加入库信息显示到下拉列表中添加到入库信息表添加成功找到商品名称更新库存信息图图 5.55.5 进货管理活动图进货管理活动图通过上边的流程介绍,可以看到,首先添加需要添加的选项,然后通过表单提交到相对应的 ACTION 中。在跳到一个 ACTION 之前。Struts 会将表单提交的内容封装到 ActionFormBean 中,生成 get 和 set 方法以便以后对表单传过来的值进行操作。当然出来这两个方法之外 struts 还提供个 validatede()和 reset()用于表单验证。之后在 Action 中获得表单提交过来的数据。然后调用在 DB 类中对数据库操作的方法。然后在 Action 中调用 ActionForward 方法进行跳转。然后再页面中显示添加成功或添加失败。在整个添加流程中运用了 MVC 的模式。使项目整体更加的清晰。在添加入库信息是将添加的内容存放到入库信息表中。以方便日后的查看和销售统计。在添加进数据库的同时还要修改库存表中效应商品的库存数量和相应商品的库存金额。具体的做法是通过传进来的唯一标识的商品编号进行比对的。分别用了插入和更新的 SQL 语句对数据库进行操作。5.2.35.2.3 出库管理出库管理出库管理运用到的技术与入库大致相同。也是先提交表单的内容。进行出库商品的操作。各文本框要提交的表单名称如下表。如表 5.2 所示。表表 5.2 商品出货涉及到的表单元素商品出货涉及到的表单元素名称类型字段中文名重要属性说明FormForm表单rk.do提交动作spnameSelect商品名称Test从 session 获得DjTest单价SlTest数量JeTeat金额CzyTest操作员ckdateTeat时间与添加商品不同的是在出售商品之前要先判断库存数据库表中相应商品的数量是否够减,如果不购将给出提示信息。具体的方法是先查询相信商品的库存数量,然后与传进来的商品的数量进行相减,如果结果小于零证明库存不购,提示增加商品数量。如果数量足够则在进行出货记录的添加。如图 5.6 所示。 : Chuku : 管理员 : ChukuInterface : Sl : Insert : Del : Update3: 发送请求4: Chuku5: 查看数量6: 购数量7: 添加记录8: 修改信息9: 删除信息10: 添加成功11: 在页面显示1: 管理界面2: 添加出库信息图图 5.6 出库管理顺序图出库管理顺序图调用 chuku.do。然后将表单的内容封装到 ActionFormBean 中。然后再 Action中获取表单提交过来的数据。调用 DB 类中操作数据库的方法。然后进行跳转。在添加出库信息的同时也是同样修改库存表中的内容根据传过来的 唯一标识的商品编号,对两个表中的数据进行操作。首先根据获得的商品编号到库存数据表中找到相对应的商品,用原有的商品数量减去传进来的商品数量然后再保存到库存数据库表中了。同样库存中商品的金额计算是用库存中商品的数量减去传进来商品的数量然后再乘以单价,得出的结果在保存到库存数据表中的金额字段。5.2.45.2.4 查询查询查询功能是一个项目当中非常重要的一项功能。他可以显示给操作人员想要获得的查看数据,好对下一步的工作部署。本系统提供的查询功能有两类。第一类是提供了模糊查询。只要操作人员在相应的输入框中输入你想查找日期的其中一个数字。然后就会执行相应的动作,会列出和你输入数字有关的所有进货记录的详细情况。除了查询日期以外,您还可以输入与商品名称中任意一个汉字。会显示出库中相应商品的全部信息。除了模糊查询以外,系统还提供了一种可以查询处库存的全部信息。直观的形式呈现出来。在显示所有库存信息的同时,还提供了修改部分字段的功能。可以修改商品的名称和商品的单价。信息修改的具体做法是。这回不是简单的提交一个动作了,而是将修改的内容作为一个参数传给了一个 Action。然后调用 DB 类
展开阅读全文