毕业设计(论文)
专业名称: 计算机科学与技术 年 级: 09级 * *: *** 学 号: ****: **
题目: Java 商品库存管理系统
二〇一四 年 六 月 六 日
苏州科技学院本科生毕业设计(论文)
Java 商品库存管理系统
摘 要
本论文着重论述了库存管理系统开发时的主要设计思想及系统实现的详细过程及使用方法。介绍了库存管理系统的主要功能。系统结构严谨、性能稳定、使用方便。它可以运行Win98/2000 / NT/XP/2003系统。本系统为全中文界面,功能全,易操作。系统的操作方式、界面均为Win98风格。系统中具有强大的操作员权限、密码管理等功能模块,确保系统运行安全。强大的查询和报表功能,全面、及时地反映当前库存状况。
本论文采用了面向对象开发的设计方法。在Windows XP操作系统环境下,应用SQL Server 2000数据库以及Java可视化程序设计软件所开发的库存管理系统。
本系统对于库存管理方面所遇到的各种问题,如工作量大,数据更新不及时,可靠性低等都做出详细的解决方案,本系统是以适应当前计算机信息管理的需要,紧密结合了库存管理在计算机信息管理方面的应用,实现了管理人员对库存的现代化管理,从而进一步提高了库存管理的工作效率。
关键词:库存管理,数据库,Java
II
苏州科技学院本科生毕业设计(论文)
Java inventory management system
ABSTRACT
This paper focuses on the development of the inventory management system at the main design concepts and systems to achieve the detailed process and use. Inventory management system on the main functions. Well-structured system, stable performance, eases of use. It can run Win98/2000 / NT/XP/2003 system. The system for the whole Chinese language interface, full-function, easy to operate. The operating system, both Win98 style interface. System operators have a powerful authority, password management modules to ensure safe operation. Powerful query and reporting, comprehensive and timely manner to reflect the current inventory situation.
In this paper, using object-oriented development of the design. In Windows XP operating system environment, the application of SQL Server 2000 databases and Java programming visualization software developed by the inventory management system.
The system for inventory management encountered by various problems, such as heavy workload, update data is not timely, reliable and so low a detailed solution, the system is adapt to the current computer information management needs, in close connection with The inventory management in computer information management application, and the management of inventories of modern management, so as to further enhance the efficiency of inventory management.
Key words : Inventory management,database,Java
III
苏州科技学院本科生毕业设计(论文)
目 录
第1章 概述 ........................................................................................................................................ 1
1.1课题背景介绍 .......................................................................................................................... 1
1.1.1课题开发背景 .............................................................................................................. 1 1.1.2 课题开发意义 ............................................................................................................. 1 1.2课题开发目标 .......................................................................................................................... 2
第2章 系统运行环境及系统开发技术 .............................................................................. 3
2.1 系统运行环境 ......................................................................................................................... 3
2.1.1 硬件环境 ...................................................................................................................... 3 2.1.2 软件开发环境 ............................................................................................................. 3 2.2 系统开发技术 ......................................................................................................................... 3
2.2.1 Java简介 ..................................................................................................................... 3 2.2.2 SQL Server 2000 数据库 ...................................................................................... 5
第3章 系统分析与设计 .............................................................................................................. 7
3.1 系统可行性分析 ..................................................................................................................... 7
3.1.1 经济可行性 ................................................................................................................. 7 3.1.2 操作可行性 ................................................................................................................. 7 3.1.3技术可行性................................................................................................................... 7 3.2 系统需求分析 ......................................................................................................................... 7 3.3 总体功能设计 ......................................................................................................................... 9
3.3.1 系统功能模块图 ........................................................................................................ 9 3.3.2 总体功能流程图 ...................................................................................................... 10
第4章 数据库设计 ....................................................................................................................... 13
4.1 数据库设计思想 ................................................................................................................... 13 4.2 系统E-R图 ............................................................................................................................ 14 4.3 数据库表设计 ....................................................................................................................... 14
第五章 系统详细设计与实现 ................................................................................................. 21
5.1系统登录界面设计 ............................................................................................................... 21 5.2 系统主界面的设计 .............................................................................................................. 21 5.3 系统主要功能实现 .............................................................................................................. 23
5.3.1 进货管理 .................................................................................................................... 23 5.3.2 出货管理 .................................................................................................................... 24 5.3.3库存管理 ..................................................................................................................... 28 5.3.4 统计报表 .................................................................................................................... 31
苏州科技学院本科生毕业设计(论文)
5.3.5 日常管理 .................................................................................................................... 36 5.4 数据库连接 ............................................................................................................................ 37
第6章 系统测试及结果分析 ................................................................................................. 39
6.1 测试综述 ................................................................................................................................ 39
6.1.1 软件测试综述 ........................................................................................................... 39 6.1.2 数据库测试 ............................................................................................................... 39 6.2 测试实例 ................................................................................................................................ 40
结 论 ...................................................................................................................................................... 41 参考文献 .............................................................................................................................................. 42 致 谢 .................................................................................................................................................... 43
V
苏州科技学院本科生毕业设计(论文)
第1章 概述
1.1课题背景介绍
1.1.1课题开发背景
商品库存管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以商品库存管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对物资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套库存管理软件成为很有必要的事情。 1.1.2 课题开发意义
大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。因此,平衡公司库存投资与其它资金需求至关重要。
随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于
1
苏州科技学院本科生毕业设计(论文)
每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出库的产品、操作人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。
1.2课题开发目标
设计和实现商品库存管理系统,使库存管理的工作系统化、 规范化和自动化,从而达到提高管理效率的目的。
(1) 利用计算机系统实现商品库存管理 ; (2) 流程符合商品库存要求 ;
(3) 查询方便 , 无论是按商品编号、名称、类别、厂商、时间其中任一项都可以进行有效查询 ;
(4) 系统扩充容易 , 有很多地方还需要更好地完善 ; (5) 友好的用户界面 , 既面向系统开发者 , 又面向用户 。
2
苏州科技学院本科生毕业设计(论文)
第2章 系统运行环境及系统开发技术
2.1 系统运行环境
系统的运行环境包括硬件和软件两方面。 2.1.1 硬件环境
本系统运行的硬件环境如下: CPU:1G以上。 内存:512M以上。 2.1.2 软件开发环境
本系统软件开发环境如下:
操作系统:Windows XP/2003/2000。 数据库:Microsoft SQL server 2000。
数据库连接驱动:Microsoft SQL server 2000 Driver for JDBC Service PABCck3。 JAVA虚拟机:j2sdk 1.4.2。
2.2 系统开发技术
本系统的开发主要是使用在Eclipse平台下的Java语言,并结合了SQL Server 2000数据库技术,使此系统具有强大的查询功能。 2.2.1 Java简介
Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。主要特性如下:
(1) Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别
3
苏州科技学院本科生毕业设计(论文)
地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
(2) Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
(3) Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、Reconnection、Socket、 Server Socket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
(4) Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
(5) Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类Class Loader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类Security Manager)让Java应用设置安全哨兵。
(6) Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
(7) Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
(8) Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
(9) Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。
4
苏州科技学院本科生毕业设计(论文)
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
(10) Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来构造,thread(Runnable) 的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(synchronized)。
(11) Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
2.2.2 SQL Server 2000 数据库
SQL Server是一个后台数据库管理系统,是一个关系数据库管理系统。它功能强大、操作简便、日益为广大数据库用户所喜爱。
SQL Server 2000,是Microsoft 公司推出的SQL Server 数据库管理系统的较新版本。该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98 的膝上型电脑,到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
SQL Server 2000界面友好,易学易用且功能强大,与Windows 2000 操作系统完
5
苏州科技学院本科生毕业设计(论文)
美结合,可以构造网络环境数据库甚至分布式数据库,可以满足企业及Internet等大型数据库应用。
SQL Server 2000主要具有以下功能特性: (1)实现了客户机/服务器模式。
客户机/服务器(C/S)模式数据库计算是一种分布式的数据存储、访问和处理技术,它已成为大多数企业计算的标准。Microsoft SQL Server是客户/服务器系统应用的完美的例子。
(2)与Internet集成。
SQL Server 2000数据库引擎提供完整的XML支持。具备构造大型Web站点的数据存储组件所需的可伸缩性、可用性和安全性。
(3)具备很强的可伸缩性和可用性。
SQL Server 2000包含企业版、标准版、开发版和个人版等4个版本,使同一个数据库引擎可以在不同的操作系统平台上使用,从运行Windows 9x的便携式电脑,到运行Windows2000 Data Center Server的大型多处理器的服务器。增强的图形用户界面管理工具,使管理更加方便。
(4)具备企业级数据库功能
SQL Server 2000关系型数据库引擎支持当今苛刻的数据处理环境所需的功能,可同时管理上千并发数据库用户,其分布式查询使用户可以引用来自不同数据源的数据,同时具备分布式事务处理系统,保障分布式数据更新的完整性。
(5)易于安装、部署和使用
SQL Server 2000的安装向导可帮助用户方便地实现各种方式的安装,如网络远程安装、多实例安装、升级安装和无人职守安装等。SQL Server 2000还提供了一些管理开发工具,使用户可以快速开发应用程序。
(6)数据仓库功能
企业在正常的业务运作过程中需要收集各种数据,包含企业的动态历史记录,数据仓库的目的是合并和组织这些数据,以便对其进行分析并用来支持业务决策。数据仓库是一种高级、复杂的技术。Microsoft SQL Server 2000提供的强大工具,可帮助您完成创建、使用和维护数据仓库的任务。
6
苏州科技学院本科生毕业设计(论文)
第3章 系统分析与设计
3.1 系统可行性分析
可行性分析研究的目的就是用最小的代价在尽可能短的时间里确定问题是否能解决,通过复杂系统的规模与目标,研究与此类似的系统后,我们具体从下面三方面考虑。
3.1.1 经济可行性
商品库存管理系统是一个小型的管理系统, 在开发时需要软件开发人员花费一定的时间和精力,因此需要一定的资金。但它给企业带来的利润是不可估量的,节省了许多人力,物力上的开支,使库存管理工作变繁为简,使其更加合理化、规范化。工作效率的提高就意为着整体水平的提高,是非常值得投资的。 3.1.2 操作可行性
系统是在JDK 环境下基于Eclipse平台开发的,易于操作。而且系统还采用了可视化面向对象的工具开发,其窗口、界面简洁易懂,所以系统在操作上是可行的。 3.1.3技术可行性
系统采用Java语言作为开发工具。Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的动态的语言。它具有理论严密、使用方便、易学易用等特点,利用它设计的系统具有界面友好、工具丰富速度较快的特点。再结合SQL Server 2000数据库技术,编写SQL语言访问数据库,实现强大的查询、修改、入库、出库操作
3.2 系统需求分析
通过需求分析,对商品库存进行有效的管理,使之形成完善的应用系统。数据库设计中要合理设置商品信息和库存信息等,用来实现商品信息的新增,修改、删除等
7
苏州科技学院本科生毕业设计(论文)
功能,使得商家有较详细的数据统计与分析。
下面就介绍一些此商品库存管理系统的基本功能: (1) 登录认证
作为一个企业实际应用项目,登录认证是必不可少的。本项目的用户登录管理比较简单,分为操作员和管理员登录,操作员和管理员有不同的权限。越权操作会有提示信息,只有合法用户才能进行操作。
(2) 进货管理
进货管理主要是操作员对仓库进行进货入库和退货出库操作,操作人员通过改功能模块把每天的入库单据及上面的入库商品明细输入数据库并对商品信息进行修改和删除。该模块支持按商品编号和商品名称关键词查询进货单据、退货单据和当前库存量并对单据进行删除。
(3) 出货管理
出货管理模块与进货管理模块相似,主要是对货品出库和客户退货进行管理及对出货单据进行管理。操作人员通过该功能模块对出库商品进行出库操作和对客户退货商品进行退货入库操作。另外,还能对出货单据、退货单据和当前库存按商品编号或商品名称进行查询和删除。
(4) 库存管理
库存管理模块主要是对已库存的商品进行操作,及进行库存调拨,包括对商品的仓库信息进行修改。另外,可以按商品名称、仓库和商品类别对所有商品进行盘点,并对调拨单据进行查询,当仓库中某种商品少于某个数量时,设置了库存报警。
(5) 统计报表
统计报表模块包括供货商统计、客户统计、库存统计、采购统计、出货统计、退货出库统计和客户退货统计的功能。各个统计都可以按照不同时间和各个关键字进行统计查询并能打印单据。
(6) 日常管理
日常管理模块既包括对供应商、仓库、业务员和客户的管理,有包括对操作员和管理员的设置,但在这里要注意权限问题,及操作员和管理的权限。
8
苏州科技学院本科生毕业设计(论文)
3.3 总体功能设计
本部分主要介绍系统要实现的功能,搭好设计的总体框架,使我们对要开发的系统有一个系统、全面、确切的认识。 3.3.1 系统功能模块图
本系统在设计时采用结构化程序的设计方法,系统的总体结构采用菜单来调用表单。利用表单对信息进行管理、数据录入、信息查询、系统管理等工作。具体设计的功能模块如下:
(1) 进货管理模块
该模块包括进货入库管理模块和退货出库管理模块。进货入库管理模块可添加商品和修改存在仓库的商品信息,退货出库管理模块可删除已入库的商品信息,并能对进货单据、退货单据和当前库存进行查询。
(2) 出货管理模块
该模块包括出货入库管理模块和退货出库管理模块。出货入库管理模块可添加和修改出库商品,退货出库管理模块可删除出库商品的信息,并能对出货单据、退货单据和当前库存进行查询。
(3) 库存管理模块
该模块包括库存盘点模块、调拨单据查询模块和库存报警模块。 (4) 统计报表模块
该模块由五个子模块构成,分别是:采购统计模块、出货统计模块、退货统计模块和库存统计模块,每个子模块都具有强大的统计功能。
(5) 日常管理模块
该模块包括供应商管理模块、仓库管理模块、客户管理模块、业务员管理模块、操作员管理模块和管理员管理模块,主要是对相关信息进行查询、修改、删除等。
根据以上系统功能的分析与设计,五个系统功能模块的划分,具体的功能模块图如下图所示:
9
苏州科技学院本科生毕业设计(论文)
商品库存管理进货管理出货管理库存管理统计报表日常管理进货单据查询退货单据查询当前库存查询出货单据查询退货单据查询当前库存查询库存盘点调拨单据查询库存报警采购统计出货统计退货统计客户退货统计库存统计供应商管理仓库管理客户管理业务员管理操作员管理管理员管理 图3.1 系统功能模块图
3.3.2 总体功能流程图
(1) 整个系统的流程由用户登录开始,系统检验用户名和密码合法后,用户成功登录,进入系统后可以对商品进行基本操作,如进货、出货和调拨,还可以对进货单据、出货单据、退货单据等进行查询,对各个报表进行统计;在这个过程中还可以进行换班管理,其实相当于当前用户退出,另一用户登录,操作流程与前者一样,只是有权限的,用户完成工作后即可退出系统。整个系统的流程可以用下面的图3.2所示:
10
苏州科技学院本科生毕业设计(论文)
开始登录N判断用户名和密码是否正确Y查询单据统计报表进货、出货和调拨管理是否换班NY是否退出YN退出系统结束
图3.2 系统流程图
(2) 入库单和出库单的操作是库存管理系统中最重要的两个操作,在整体功能设计时,对入库单和出库单的管理如上图,先判断是否有商品要入库,有则对库存进行设置,包括入库商品的基本信息,保存入库单,然后判定此入库单是否要进库,确认进库的话入库单据就处理完毕,在商品入库信息表中就可以查看库存;若暂时不进库,那么只有暂时保存入库单。出库单的处理流程像入库单的处理一样,当有商品要出库时,先填写出库单,包括出库商品的相关信息,然后保存出库单,如果确认此商品要出库,系统会先判断库存数量和出库数量是否合适(即出库数量小于等于库存量),如
11
苏州科技学院本科生毕业设计(论文)
果合适就允许出库,出库单据处理完毕;如果不合适,需要修改出库数量,保存新的单据之后再进行判断,直至数量合适允许出库。入库和出库的具体流程图如下图3.3所示:
N入库单库存是否设置入库单保存是否进库Y库存设置 库 存单据处理完毕N出库单库存是否设置出库单保存是否出库Y Y单据处理完毕库存数量合适N 库 存修改出库数量
图3.3 入/出库流程示意图
12
苏州科技学院本科生毕业设计(论文)
第4章 数据库设计
4.1 数据库设计思想
商品库存管理系统的数据库设计采用了SQL Server 2000数据库,数据库名为shangpinkucunguanli,采用JDBC(Java数据库连接)连接数据库,JDBC是由一组用Java编程语言编写的类和接口组成。
根据系统需求,在登录系统时提供所要的身份验证信息,在本系统中设计了两种登录方式,分别是操作员和管理员,所以设计了操作员信息表和管理员信息表。经过身份验证后,进入系统。在日常管理模块中涉及到采购员管理,校验员管理,出货员管理,要设计采购员信息表,校验员信息表和出货员信息表。在进货管理模块中,操作员要进行基本的进货管理操作,增加入库商品、修改商品信息,并对入库的商品进行查询,这就需要设计商品信息表和商品入库表。在出货管理模块中操作员要进行基本的出货管理操作,增加出库商品以及相关的查询操作,需要设计商品出库表。在库存管理模块中,涉及到库存调拨操作,在设计数据库表时就要设计库存调拨表。在统计报表模块中,涉及到供货商和客户的统计,因此要设计供货商信息表和客户信息表。在设计表时要注意数据类型的选取要合适,约束的定义要准确,为了方便理解,最好还要添加描述,使设计出来的表一目了然。通过与数据库连接,用数据库表保存系统所需要的功能数据信息,实现系统的各个功能。
根据以上的分析,本系统采用关系型数据库并设计了15个数据库表,分别是商品信息表、操作员信息表、管理员信息表、采购员信息表、校验员信息表、出货员信息表、库存调拨表、退货出库表、退货入库表、商品库存表、商品入库表、商品出库表、客户信息表、供货商信息表和仓库信息表。
商品库存管理系统数据库的访问采用JDBC的方式连接。
13
苏州科技学院本科生毕业设计(论文)
4.2 系统E-R图
本系统是商品库存管理系统,根据上面的结构设计和初步的数据库设计思想,规划的实体主要有操作员,商品实体、供应商实体、客户实体和仓库实体等。这些实体包含各种具体实际信息,通过相互之间的作用形成数据的流动。它们的E-R图如下图4.1所示:
操作员名字操作员编号操作员n商品名称客户名称商品编号联系人电话地址客户编号厂商m供应颜色单位n供应商供应商编号备注供应商名称联系人电话地址入库单价客户n购买mmn仓库名称1商 品存放负责人负责人电话进货、出货、调拨密码管理n库存量类别m仓库名称仓库编号仓库 容量 图4.1 系统E-R图
4.3 数据库表设计
本系统是一个商品库存管理系统,在系统详细设计之前应该对系统中所涉及到的对象实体进行信息建模,并最终得到完整的数据库表结构。
(1) 商品信息表(shangpinxinxi)
实体“商品”位于整个系统实体的核心位置,其包括的属性有:商品编号、商品名称、库存量、类别、存放仓库、入库单价、单位、颜色和厂商。因此“商品”实体所对应的数据表结构如表4.1所示:
14
苏州科技学院本科生毕业设计(论文)
表4.1 shangpinxinxi 表结构
字段名称 sp_id sp_name kucunliang lb_name ck_name rukudanjia dw_name yanse changshang beizhu 数据类型 CHAR(15) CHAR(20) INT CHAR(20) CHAR(20) FLOAT CHAR(10) CHAR(10) CHAR(100) CHAR(100) 是否可为空 NO NO NO NO NO NO NO NO NO YES 约束 主键 描述 商品编号 商品名称 库存量 类别 存放仓库 入库单价 单位 颜色 厂商 备注
(2) 操作员信息表(caozuoyuanxinxi)
操作员负责所有商品入库、出库的操作,此表用来保存合法的操作员信息,包括的属性有操作员编号、操作员姓名和操作员密码,具体结构设计如表4.2所示:
表4.2 caozuoyuanxinxi表结构 字段名称 cz_id cz_name cz_pass 数据类型 CHAR(15) CHAR(20) CHAR(20) 是否为空值 NO NO NO 约束 主键 描述 操作员编号 操作员姓名 操作员密码
(3)管理员信息表(guanliyuanxinxi)
管理员主要负责日常管理模块中对各个业务人员的管理,此表用来保存合法的管理员信息,具体结构设计如表4.3所示:
表4.3 guanliyuanxinxi表结构 字段名称 gl_id gl_name gl_pass 数据类型 CHAR(15) CHAR(20) CHAR(20) 是否为空值 NO NO NO 约束 主键 描述 管理员编号 管理员名字 管理员密码
(4) 采购员信息表(caigouyuanxinxi)
15
苏州科技学院本科生毕业设计(论文)
采购员主要负责对商品的采购,它的属性包括采购员编号、采购员姓名、性别和电话,具体结构设计如表4.4所示:
表4.4 caigouyuanxinxi表结构 字段名称 cg_id cg_name cg_xingbie dianhua 数据类型 CHAR(15) CHAR(20) CHAR(4) CHAR(20) 是否为空值 NO NO NO NO 约束 主键 描述 采购员编号 采购员姓名 采购员性别 电话
(5) 校验员信息表(jiaoyanyuanxinxi)
校验员负责商品入库和出库时的校验工作,属性包括校验员编号、校验员姓名、校验员性别和电话,具体结构设计如表4.5所示:
表4.5 jiaoyanyuanxinxi表结构
字段名称 jy_id jy_name jy_xingbie dianhua 数据类型 CHAR(15) CHAR(20) CHAR(4) CHAR(20) 是否为空值 NO NO NO NO 约束 主键 描述 校验员编号 校验员姓名 校验员性别 电话
(6) 出货员信息表(chuhuoyuanxinxi)
出货员负责商品的出库操作,其属性包括出货员编号、出货员姓名、出货员性别和电话,具体结构设计如表4.6所示:
表4.6 chuhuoyuanxinxi表结构
字段名称 ch_id ch_name ch_xingbie dianhua 数据类型 CHAR(15) CHAR(20) CHAR(4) CHAR(20) 是否为空值 NO NO NO NO 约束 主键 描述 出货员编号 出货员姓名 出货员性别 电话
(7) 库存调拨表(kucundiaobo)
库存调拨表用来保存被调拨的商品信息,方便对调拨单据的查询,具体结构设计如表4.7所示:
16
苏州科技学院本科生毕业设计(论文)
表4.7 kucundiaobo表结构
字段名称 danhao riqi sp_id sp_xid chuku_name ruck_name shuliang jy_name cz_name beizhu 数据类型 CHAR(15) DATE CHAR(15) CHAR(15) CHAR(50) CHAR(50) INT CHAR(20) CHAR(20) CHAR(100) 是否为空值 NO NO NO NO NO NO NO NO NO YES 约束 主键 描述 单号 日期 商品编号 商品新编号 调出仓库的名字 调入仓库的名字 数量 校验员名字 操作员名字 备注
(8) 退货出库表(tuihuochuku)
退货出库表用来保存对已进库的商品进行退货出库的信息保存,具体的结构设计如表4.8所示:
表4.8 tuihuochuku表结构 字段名称 danhao riqi danjia shuliang jy_name cz_name sp_id beizhu 数据类型 CHAR(15) DATAE FLOAT INT CHAR(20) CHAR(20) CHAR(15) CHAR(100) 是否为空值 NO NO NO NO NO NO NO YES 约束 主键 描述 单号 日期 单价 数量 校验员名字 操作员名字 商品编号 备注
(9) 退货入库表(tuihuoruku)
退货入库表是用来保存客户退货后商品入库的相关信息,具体的结构设计如表4.9所示:
17
苏州科技学院本科生毕业设计(论文)
表4.9 tuihuoruku表结构
字段名称 danhao riqi danjia shuliang Jy_name Cz_name Sp_id beizhu 数据类型 CHAR(15) DATE FLOAT INT CHAR(20) CHAR(20) CHAR(15) CHAR(100) 是否为空值 NO NO NO NO NO NO NO YES 约束 主键 描述 单号 日期 单价 数量 校验员名字 操作员名字 商品编号 备注
(10) 客户信息表(kehuxinxi)
客户信息表是用来保存客户的相关信息,该实体的属性包括客户编号、客户名字、联系人、电话和地址等,具体的结构设计如表4.10所示:
表4.10 kehuxinxi表结构
字段名称 Kh_id Kh_name lianxiren dianhua dizhi beizhu 数据类型 CHAR(15) CHAR(20) CHAR(20) CHAR(20) CHAR(100) CHAR(100) 是否为空值 NO NO NO NO NO YES 约束 主键 描述 客户编号 客户名字 联系人 电话 地址 备注 (11) 仓库信息表(cangkuxinxi)
仓库信息表是用来保存所有仓库相关信息的表,具体的结构设计如表4.13所示:
表4.11 cangkuxinxi表结构
字段名称 ck_id ck_name ck_rongliang fuzeren fuzerendianhua beizhu 数据类型 CHAR(15) CHAR(20) CHAR(10) CHAR(20) CHAR(20) CHAR(100) 是否为空值 NO NO NO NO NO YES 约束 主键 描述 仓库编号 仓库名字 仓库容量 负责人 负责人电话 备注 18
苏州科技学院本科生毕业设计(论文)
(12) 商品库存表(shangpinkucun)
商品库存表是用来保存现库存的商品的相关信息,具体的结构设计如表4.12所示:
表4.12 shangpinkucun表结构 字段名称 danhao riqi chukudanjia shuliang Kh_name Ch_name Jy_name Cz_name Sp_id beizhu 数据类型 CHAR(15) DATE FLOAT INT CHAR(20) CHAR(20) CHAR(20) CHAR(20) CHAR(15) CHAR(100) 是否为空值 NO NO NO NO NO NO NO NO NO YES 约束 主键 描述 单号 日期 出库单价 数量 客户名字 出货员名字 校验员名字 操作员名字 商品编号 备注
(13) 供货商信息表(gonghuoshangxinxi)
供货商信息表是用来保存所有与公司有来往的供货商的相关信息,具体的结构设计如表4.13所示:
表4.13 gonghuoshangxinxi表结构
字段名称 ghs_id ghs_name lianxiren dianhua dizhi beizhu 数据类型 CHAR(15) CHAR(20) CHAR(20) CHAR(20) CHAR(100) CHAR(100) 是否为空值 NO NO NO NO NO YES 约束 主键 描述 供货商编号 供货商名字 联系人 电话 地址 备注
(14) 商品入库表(shangpinruku)
商品入库表是用来保存所有入库商品的相关信息的表,该表的具体结构设计如表4.14所示:
19
苏州科技学院本科生毕业设计(论文)
表4.14shangpinruku表结构
字段名称 danhao riqi sp_id shuliang ghs_name Ck_name Cg_name Jy_name Cz_name 数据类型 CHAR(15) DATE CHAR(15) INT CHAR(20) CHAR(20) CHAR(20) CHAR(20) CHAR(20) 是否为空值 NO NO NO NO NO NO NO NO NO 约束 主键 描述 单号 日期 商品编号 数量 供货商名字 仓库名字 采购员名字 校验员名字 操作员名字
(15) 商品出库表(shangpinchuku)
商品出库表是用来保存所有出库商品的相关信息的表,该表的具体结构设计如表4.15所示:
表4.15 shangpinchuku表结构
字段名称 danhao riqi Sp_name chukudanjia shuliang Kh_name Ch_name Jy_name Cz_name beizhu 数据类型 CHAR(15) DATE CHAR(20) FLOAT INT CHAR(20) CHAR(20) CHAR(20) CHAR(20) CHAR(100) 是否为空值 NO NO NO NO NO NO NO NO NO YES
20
约束 主键 描述 单号 日期 商品名字 出库单价 数量 客户名字 出货员名字 校验员名字 操作员名字 备注 苏州科技学院本科生毕业设计(论文)
第五章 系统详细设计与实现
5.1系统登录界面设计
系统登录模块主要用于验证工作人员登录系统时输入的用户名、密码是否正确,登录方式是否正确,如果正确,工作人员进入系统,否则将不能进入此系统。实现此功能的文件是Login.java,系统登陆窗口的运行界面如下图5.1所示:
图5.1 用户登录界面图
5.2 系统主界面的设计
经过用户身份验证后,进入系统主界面,系统主界面主要是让用户对该系统的各个功能模块一目了然,使用方便快捷,在主界面的上方我们可以看到四个按钮,包括换班、单据查询、帮助和退出;在主界面的左半部又可以看到五个按钮,分别是进货管理、出货管理、库存管理、统计报表和日常管理,这些主要涉及到按钮的设计,以及这样将图片文字对应到各个按钮和背景上,使主界面看起来舒服美观;在主界面的最下方带有时间显示和操作员或管理员编号。实现此功能的文件是MainFrame.java,系统主界面运行结果如下图5.2所示:
21
苏州科技学院本科生毕业设计(论文)
图5.2 系统主界面图
按钮和窗口设计的程序代码省略,时间控件的程序代码如下: Public class ShowTime implements Runnable {
Public ShowTime () {
}
Public void run () {
While (true) {
jLabelshijian.setText(\" 业务时间: \" + formatter. Format(new
Date()));
}
}
}
Try {
Thread. Sleep (1000);
} catch (Exception e) { }
jLabelshijian.setText(\"出错\");
22
苏州科技学院本科生毕业设计(论文)
5.3 系统主要功能实现
系统功能模块主要包括进货管理模块、出货管理模块、库存管理模块、统计报表模块、日常管理模块,每个模块具体实现如下。 5.3.1 进货管理
进货管理主要包括进货入库和退货出库两种操作,还可进行进货单据、退货单据和当前库存的查询。实现该模块的文件是Jinhuo.java,进货管理的界面如下图5.3所示:
图5.3 进货管理模块界面图
进货入库操作也就是向仓库添加商品信息,添加商品成功,则在窗体下方会显示入库的商品信息,在添加商品时应注意所填的内容要符合字段类型,如果不符合,系统会给出提示信息。另外,对已入库的商品只要选中某一行还可对它进行信息修改,进货入库的操作界面如图5.4所示:
图5.4 进货入库操作界面
23
苏州科技学院本科生毕业设计(论文)
添加商品的有关数据库操作程序代码如下: String
str = \"insert
into
shangpinruku
(danhao,riqi,sp_id, + \"'\"
+ danhao.getText () + \"', '\" + now + \"', '\" + ID.getText () + \"', '\"
+ shuliang.getText () + \"', '\"
\"+\"shuliang,
ghs_name,ck_name,cg_name,jy_name,cz_name) values (\"
+ Gonghuoshang
.getSelectedItem ()
24
+ \"', '\"
+ cangku.getSelectedItem () + \"', '\"
+ caigou.getSelectedItem ()
苏州科技学院本科生毕业设计(论文)
+ \"', '\"
+ jiaoyan.getSelectedItem () + \"', '\"
+ caozuo.getText () + \"')\";
String str1 = \"insert into shangpinxinxi (sp_id, sp_name, lb_name, \"+ \"dw_name, yanse, changshang, rukudanjia, kucunliang, ck_name, beizhu) values (\"
25
+ \"'\"
+ ID.getText () + \"', '\"
+ spming.getText () + \"', '\"
+ type.getSelectedItem () + \"', '\"
+ danwei.getSelectedItem () + \"', '\"
+ Yanse. GetSelectedItem () + \"', '\"
+ spchangshang.getText () + \"', '\"
+ danjia.getText () + \"', '\"
+ shuliang.getText () + \"', '\"
+ cangku.getSelectedItem () + \"', '\"
+ remark.getText () + \"')\";
Try {
苏州科技学院本科生毕业设计(论文)
出货管理模块主要包括两个操作:货品出库和客户退货。出货管理模块实
MainFrame.TableModel
.setAutoCommit (false);
MainFrame.tableModel
.set Execute (str, query);
MainFrame.tableModel
.setExecute1 (str1);
MainFrame.tableModel. Commit ();
} catch (SQLException sql) {
JOptionPane
.showMessageDialog ( Null, sql.getMessage (), \"数据库查询错误\
JOptionPane.ERROR_MESSAGE);
MainFrame.tableModel. Rollback ();
System.err.println (sql.getMessage ());
}
5.3.2 出货管理
现的代码是文件Chuhuo.java,出货管理界面的设计如图5.5所示:
26
苏州科技学院本科生毕业设计(论文)
图5.5 出货管理界面图
货品出库的操作窗口如下图5.6所示:
图5.6 货品退货出库操作界面图
27
苏州科技学院本科生毕业设计(论文)
5.3.3库存管理
库存管理模块主要是实现库存商品的调拨、盘点和报警功能。库存调拨是对商品进行调库操作,即将某商品由一个仓库调到另一仓库;库存盘点对库存商品进行详细盘点,本系统可实现四种盘点商品的方式,包括:盘点所有商品、按商品编号或名称盘点某种商品、按仓库盘点和按类别盘点。库存报警的功能是可以显示当前库存量为0的商品,以便提示用户及时进货。实现这三个功能的文件分别是Kucundiaobo.java、Kucunpandian.java和Kucunjingbao.java。库存管理模块的界面设计如图5.7所示:
图5.7 库存管理主界面图
库存调拨模块设计中有关的数据库操作的部分程序代码如下: String STR = \"update shangpinxinxi set kucunliang=\"
+ ShengProNum + “where” + OpIs;
String str1 = \"insert into kucundiaobo (danhao, riqi, sp_id, sp_xid, chuck name, ruck_name, shuliang, jy_name, cz_name, beizhu)”
+ \" values (\"
+ \"'\"
+ danhao.getText () + \"', '\" + Now
28
苏州科技学院本科生毕业设计(论文)
+ \"', '\"
+ table.getValueAt (0, 0) + \"', '\"
+ xinbianhao.getText ()
+ \"', '\"
+ chucangku.getText ()
+ \"', '\"
+ rucangku.getSelectedItem ()
+ \"', '\" + ChuProNum + \"', '\"
+ jiaoyan.getSelectedItem () + \"', '\"
+ caozuo.getText () + \"', '\"
+ beizhu.getText () + \"')\";
String str2 = \"insert into shangpinxinxi (sp_id, sp_name, lb_name, \"
+ \"dw_name, yanse, rukudanjia, kucunliang, ck_name, beizhu) values (\" + \"'\"
+ xinbianhao.getText () + \"', '\"
+ table.getValueAt (0, 1) + \"', '\"
+ table.getValueAt (0, 2) + \"', '\"
+ table.getValueAt (0, 3)
+ \"', '\"
29
changshang,
苏州科技学院本科生毕业设计(论文)
+ table.getValueAt (0, 4) + \"', '\"
+ table.getValueAt (0, 8) + \"', '\"
+ table.getValueAt (0, 6) + \"', '\" + ChuProNum + \"', '\"
+ rucangku.getSelectedItem () + \"', '\"
+ beizhu.getText () + \"')\";
String allQuery1 = \"select kucundiaobo. Danhao 单号, kucundiaobo. Riqi 日期, kucundiaobo. Sp_id 商品编号, kucundiaobo. Sp_xid 商品新编号,\"
+ \"shangpinxinxi. Sp_name 商品名称,
kucundiaobo.chuck_name 调出仓库,kucundiaobo. Ruck_name 调入仓库,kucundiaobo. Shuliang 调拨数量, \"
+
\"shangpinxinxi.
Lb_name
类
别,shangpinxinxi. Dw_name 单位, shangpinxinxi. Yanse 颜色, shangpinxinxi. Rukudanjia 入库单价, \"
+ \"shangpinxinxi. Changshang 厂商 ,
kucundiaobo. Jy_name 校验员, kucundiaobo. Cz_name 操作员, \"
+ \"kucundiaobo. Beizhu 备注 from
shangpinxinxi, kucundiaobo where shangpinxinxi. Sp_id=kucundiaobo. Sp_id “;
Try {
30
MainFrame.tableModel
.setAutoCommit (false);
MainFrame.tableModel
.setExecute1 (STR);
苏州科技学院本科生毕业设计(论文)
}
MainFrame.tableModel
.setExecute1 (str2);
MainFrame.tableModel.setExecute (
str1, allQuery1);
MainFrame.tableModel.commit ();
} catch (SQLException sql) {
JOptionPane. ShowMessageDialog (null, }
sql.getMessage(), \"数据库更新\
JOptionPane.ERROR_MESSAGE); MainFrame.tableModel. Rollback ();
5.3.4 统计报表
统计报表模块主要是实现统计功能,可根据选定的日期范围对这一段时间内供货商、客户、采购、出货、退货出库和客户退货信息进行查询。此模块最重要的技术是用到了日期控件,使查询起来更加方便快捷,统计报表模块的界面设计如图5.8所示:
图5.8 统计报表模块界面图
采购统计能实现进货统计、按仓库统计、按类别统计和按采购员统计,统计后可以查看单据并打印,查询时课选择时间范围,如图5.9所示:
31
苏州科技学院本科生毕业设计(论文)
图5.9 采购统计界面图
时间控件实现的代码设计如下:
Public class Date Chooser extends Dialog implements Item Listener,
Mouse Listener, Focus Listener, Key Listener, Action Listener {
private static final String[] MONTHS = new String[] { \"一月\二月\三月\四
月\五月\六月\七月\八月\九月\十月\十一月\十二月\" };
private static final String[] DAYS = new String[] { \"星期日\星期一\星期二
\星期三\星期四\星期五\星期六\" };
Private static final Color DAYS_FOREGROUND = Color. Blue;
Private static final Color SELECTED_DAY_FOREGROUND = Color. White; Private static final Color SELECTED_DAY_BACKGROUND = Color. Blue; Private static final Border EMPTY_BORDER = BorderFactory.createEmptyBorder
(1, 1, 1, 1);
Private static final Border FOCUSED_BORDER = Border Factory
.createLineBorder (Color. Yellow, 1);
Private static final int FIRST_YEAR = 1980; Private static final int LAST_YEAR = 2010; Private Gregorian calendar;
32
苏州科技学院本科生毕业设计(论文)
Private JLabel [][] days;
Private Focusable Panel days Grid; Private JComboBox month; Private JComboBox year; Private JButton ok; Private JButton cancel; Private Int offset; Private Int last Day; Private JLabel day; Private boolean okClicked; }
Private void construct () {
Calendar = new Gregorian calendar (); Month = new JComboBox (MONTHS); month.addItemListener (this); Year = new JComboBox ();
For (int i = FIRST_YEAR; i <= LAST_YEAR; i++)
year.addItem(Integer.toString(i));
year.addItemListener(this); days = new JLabel[7][7]; for (int i = 0; i < 7; i++) { }
for (int i = 1; i < 7; i++)
for (int j = 0; j < 7; j++) {
days[i][j] = new JLabel(\" \days[i][j].setForeground(DAYS_FOREGROUND); days[0][i] = new JLabel(DAYS[i], JLabel.RIGHT);
days[0][i].setForeground(SELECTED_DAY_BACKGROUND);
days[i][j].setBackground(SELECTED_DAY_BACKGROUND);
33
苏州科技学院本科生毕业设计(论文)
}
days[i][j].setBorder(EMPTY_BORDER); days[i][j].addMouseListener(this);
ok = new JButton(\"确定\"); ok.addActionListener(this); cancel = new JButton(\"取消\"); cancel.addActionListener(this); JPanel monthYear = new JPanel(); monthYear.add(month); monthYear.add(year);
monthYear.setBackground(new Color(204, 221, 239)); daysGrid = new FocusablePanel(new GridLayout(7, 7, 5, 0)); daysGrid.addFocusListener(this); daysGrid.addKeyListener(this); for (int i = 0; i < 7; i++)
for (int j = 0; j < 7; j++)
daysGrid.add(days[i][j]);
daysGrid.setBackground(Color.white);
daysGrid.setBorder(BorderFactory.createLoweredBevelBorder()); JPanel daysPanel = new JPanel(); daysPanel.add(daysGrid);
daysPanel.setBackground(new Color(204, 221, 239)); JPanel buttons = new JPanel(); buttons.add(ok); buttons.add(cancel);
buttons.setBackground(new Color(204, 221, 239)); Container dialog = getContentPane(); dialog.add(\"North\dialog.add(\"Center\
34
苏州科技学院本科生毕业设计(论文)
}
dialog.add(\"South\pack();
setBackground(new Color(204, 221, 239));
// setBorder(BorderFactory.createTitledBorder(\"日期选择\"));//加边框 setBounds(174, 300, 320, 230); setResizable(false);
private void setSelected(int newDay) { }
private void update() {
int iday = getSelectedDay(); for (int i = 0; i < 7; i++) { }
calendar.set(Calendar.DATE, 1);
calendar.set(Calendar.MONTH, month.getSelectedIndex()
+ Calendar.JANUARY); days[1][i].setText(\" \"); days[5][i].setText(\" \"); days[6][i].setText(\" \");
setSelected(days[(newDay + offset - 1) / 7 + 1][(newDay + offset - 1) % 7]);
calendar.set(Calendar.YEAR, year.getSelectedIndex() + FIRST_YEAR); offset = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.SUNDAY; lastDay = calendar.getActualMaximum(Calendar.DATE); for (int i = 0; i < lastDay; i++)
days[(i + offset) / 7 + 1][(i + offset) % 7].setText(String
.valueOf(i + 1));
if (iday != -1) {
if (iday > lastDay)
iday = lastDay;
35
苏州科技学院本科生毕业设计(论文)
}
}
}
setSelected(iday);
5.3.5 日常管理
日常管理模块只要是对日常的人员和仓库进行基本管理,如增加、修改、删除和查询等基本操作,日常管理模块的主界面设计如图5.10所示:
图5.10 日常管理主界面
以仓库管理的操作为例,主要有增加、修改、删除、查找和退出的功能,界面设计如图图5.11所示:
图5.11 仓库管理界面图
36
苏州科技学院本科生毕业设计(论文)
5.4 数据库连接
用JDBC连接SQL Server 2000,步骤是:
(1) 向工程中添加数据库驱动包,即将JAR包导入到项目中;
(2) 载入JDBC驱动程序。如果要载入驱动程序,只需要在Class.forName方法中指定数据库驱动程序的类名:Class.forName(DriverName)。这样做就自动创建了驱动程序的实例,并注册到JDBC驱动程序管理器。这个参数接收一个表示完全限定类名(即包括包名的类名)的字符串,载入对应的类。这个调用可能会抛出ClassNotFoundException异常,因而必须放在try/catch块中。
因而,本系统实现JDBC驱动程序的方案为: com.microsoft.jdbc.sqlserver.SQLServerDriver 连接数据库驱动的代码如下: public void connectDatabase() {
try {
MainFrame.tableModel = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel1 = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel2 = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel3 = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel4 = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel5 = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel6 = new ResultSetTableModel(JDBC_DRIVER,
DATABASE_URL, \"sa\
MainFrame.tableModel7 = new ResultSetTableModel(JDBC_DRIVER,
37
苏州科技学院本科生毕业设计(论文)
DATABASE_URL, \"sa\
} catch (SQLException exception) {
String err = exception.getMessage(); System.err.println(err);
if (err.indexOf(\"kucunguanli\") == -1) {
JOptionPane.showMessageDialog(Login.this, \"数据库连接出错\\"数据
库错误\
}
(3) 建立连接。载入JDBC驱动程序后,必须连接URL指定数据库服务器的主机名、端口和数据库名。在本系统中连接数据库的语句是:
Final String JDBC_DRIVER = \"com.microsoft.jdbc.sqlserver.SQLServerDriver\";
final
String
DATABASE_URL
=
}
System.out.println(\"系统异常退出!\"); System.exit(1);
} catch (ClassNotFoundException exception) { }
System.err.println(exception.getMessage());
\"jdbc:microsoft:sqlserver://localhost:1433;DATABASENAME=kucunguanli\";
数据库连接成功,在登录系统时会提示操作员或管理员成功登陆,若数据库连接失败,则登录时系统会抛出异常,并提示数据库连接失败的错误,操作员或管理员进入不了系统。
38
苏州科技学院本科生毕业设计(论文)
第6章 系统测试及结果分析
6.1 测试综述
为了确保本系统的质量和可靠性,要对系统进行全面的测试和调试,主要是软件测试和数据库测试,下面分别对它们进行了介绍。 6.1.1 软件测试综述
软件测试阶段的主要任务是发现并排除在分析、设计、编程阶段中产生的各种类型的错误,以得到可使用的软件系统。从用户和软件开发人员不同的角度看,进行软件测试的目的是完全不同的。用户往往是通过测试暴露出软件所存在的错误和缺陷,以考虑是否能接受该产品;而软件开发人员则希望通过测试来证实软件产品不存在任何错误和缺陷,验证该软件已满足了用户的需求,从而提高用户使用该软件产品的信心。因此,软件开发人员往往会选择那些导致程序失败概率小的测试数据去测试软件。显然,这样的测试对完善和提高软件质量毫无价值。因此,测试的目的应该是从软件包含有错误这一前提出发,通过测试查出并改正尽可能多的错误,不断提高软件的质量和可靠型
软件测试分为动态测试和静态测试。按产生测试数据的不同方式,动态测试可分为功能测试和结构测试,即黑盒测试和白盒测试。本系统采用的是黑盒测试。所谓黑盒测试是把测试对象视为一个黑盒子,测试人员只着眼于软件的外部特性,而不考虑软件的内部的逻辑结构,是在软件接口上进行的测试。 6.1.2 数据库测试
测试系统与数据库是否连接上可以在包里写一个测试类TestSQL,代码如下: import java.sql.Connection; import java.sql.DriverManager; public class TestSQL {
public static void main(String[] args) {
39
苏州科技学院本科生毕业设计(论文)
String url=\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=kucunguanli\";
String username=\"sa\"; String pwd=\"\";
String driver=\"com.microsoft.jdbc.sqlserver.SQLServerDriver\"; Connection conn=null; try{
Class.forName(driver);
System.out.println(\"数据库驱动程序注册成功!\"); Conn=DriverManager.getConnection(url,username,pwd); System.out.println(\"数据库连接成功\"); } catch (Exception e) { e.printStackTrace ();
System.out.println(\"数据库连接失败\"); } } }
根据以上编写的数据库连接测试代码,运行系统,以用户名“sa”,密码为空登录,若数据库连接成功,则进入系统并在运行结果窗口有“数据库连接成功”的提示;若数据库连接失败,则在运行结果窗口有“数据库连接失败”的提示。
6.2 测试实例
本系统的测试实例如下:在商品进货管理的进货入库的窗口中添加入库商品信息,输入商品编号为010122,商品名称为联想电脑,商品类别选择电脑,单位选择台,入库数量为30,入库单价为4000元,颜色选择黑色,供货商为联想集团,存放仓库为电子产品一库,厂商为联想电脑公司,采购员为陈晶晶,校验员为Roy,除了备注,其他的都必须填写,否则会提示添加有错误,填好后,单击确定,一批进货完成,入库商品信息被保存经过多次测试,系统基本上没有什么错误了。
40
苏州科技学院本科生毕业设计(论文)
结 论
经过一个多月的努力,完成了本次毕业设计。在系统开发之前,指导老师就建议我们去公司实习或做一些调查,以便我们对本次系统有更合理、实用的设计,而不是只靠自己的意想当然去设计,在做了详细的调查,搜集大量的相关资料,并咨询了很多专业人士后,开始进行该系统设计。设计时,严格按照软件工程的思想,从需求分析、可行性分析、总体设计、最后到详细设计。本系统我认为比较出色的地方就是采用类控件设计,数据库的操作也是写在java包里,不需要另外写存储过程和触发器;在主界面的设计上也别出心裁,每个按钮都用合适的图片覆盖上,使界面看起来很舒服美观。本系统是用Java写的基于桌面的一个系统,虽然没有达到网络化的要求,但基本的库存管理功能和大数据量的查询工作都基本可以满足,包括按选择的日期范围查询,根据市场的情形,就只实现单机系统也就足够了。
在设计过程中,我遇到了很多技术上的问题,平时在学习过程中,即使上机实验也都是些小的、较为简单的程序设计,都称不上为系统,因此,在开发系统的过程中碰到了很多棘手的问题,对于很多新的知识都是一知半解,只有在网上或图书馆搜集资料多加理解,然后再向同学和老师请教,慢慢尝试,多多练习,一点点改进,尽量实现所有设计的功能模块。在连接数据库时查阅了大量的资料。最后采用JDBC的方式连接SQL Server 2000数据库,经过几番调试后,系统和数据库成功连上。
本次毕业设计花费了我大量的精力和时间,但我觉得是值得的,以前我不喜欢动手去操作,不喜欢写程序,导致我的动手编程能力很差,思维的严密性和灵活性都不够好,处理问题的方式也不够好,甚至有点害怕编程,经过本次毕业设计,很多方面都有较大进步,动手能力强了,且对一个项目进行开发时能按照软件设计的思想逐一分析、设计,能合理安排工程进度。通过这次毕业设计使我把以前所学的零散的知识进行了一次大综合,对软件开发也有一个总体的认知,让我不在害怕编程,为以后的软件开发打下了坚实的基础。本次毕业设计过程中,我查阅了很多的资料,所以又进一步掌握更多的专业知识,技能水平也有很大的提高,总之,上机实践对于所有计算机专业的学生来说都是最重要的,要勤于动手动脑,多想多试才有创新,才有进步,才有收获。
41
苏州科技学院本科生毕业设计(论文)
参 考 文 献
[1] 顾绍元,李庆华.库存管理信息系统的设计与实现[J] .上海铁道大学学报:自然科学版,
1999,17(4).
[2] 叶志军.由浅入深——Java 2自学教程 [M] .北京:人民邮电出版社,2004.10 [3] 袁鹏飞,孙军安.SQL server2000数据库管理[M].北京:人民邮电出版社,2001 [4] 明日科技,刘彬彬,马.Eclipse应用开发完全手册 [M].北京:人民邮电出版社,2007.9 [5] 刘大玮,马传宝,孙颖洁.SQL Server 数据库项目开发案例导航 [M].北京:清华大学出
版社,2005.7
[6] 夏邦贵等.SQL 数据库开发经典实例解析 [M].北京:机工出版社,2006. [7] 丁宝康,董健全.数据库实用教程(第二版)[J].北京:清华大学出版社,2003. [8] 强锋科技,陈刚.Eclipse从入门到精通 [M] .北京:清华大学出版社,2005.6 [9] 思维科技,叶达峰.Eclipse编程技术与实例 [M] .北京:人民邮电出版社,2006.1 [10] 黄强,狄瑞坤,傅建中.基于Intranet的库存管理信息系统的设计与实施[J]. 计算机工程
与应用,2000
[11] 张海藩.软件工程导论 [M].北京: 清华大学出版社, 2007.8
[12] Otey M,Conte P.SQL Server 2000开发指南[M]. 北京:清华大学出版社,2002. [13] Cay S.Horstmann,Gary Cornell,Java 2核心技术[M]. 北京:机械工业出版社,2000,29-67 [14] George Reese. JDBC与java数据库编程[M]. 中国:电力出版社, 2002 [15] http://jzgl-javaeye.javaeye.com/blog/390668
42
苏州科技学院本科生毕业设计(论文)
致 谢
本次毕业设计从选题、设计到确定课题经历了较长时间。在这段时间得到了老师、同学以及朋友的帮助和支持,在此深表感谢!感谢他们的耐心指导和热心帮助,很多问题和困难在他们的帮助下迎刃而解,也从他们那里学到了很多,自己也加强了动手的能力。
首先感谢我的导师教授,在百忙之际仍然尽力帮我们解决遇到的问题,给我们讲解专业方面的很多知识,并教我们学习的方法,他严谨的工作作风同样也影响着我们,使我们也养成了严谨的学习态度。在毕业设计期间,从开题报告到毕业论文,都给了我们很多好的建议,有表扬,有批评,根据我们每个人系统的特点提出可以改进和完善的地方,让我们在不断学习中日益进步,也锻炼了我们联系实际的能力,让我思考问题也更加多元化,让我们了解到自己所做的系统不仅仅是用来看的,而更要注重它的可操作性和实用性。从他那里我学到了更多的是做事和学习的态度问题,以及思考问题的全面性和严谨性,这对以后不论是在学校还是在工作岗位上都有很大的帮助。
其次要感谢我同组的同学们,因为自己在专业课方面缺乏动手能力,学到的理论知识与实际操作有很大的不同,经常会因微小的问题而不知所措,在他们的耐心帮助下,动手能力明显增强。因为和陈会能同学都是用的Java语言做的系统,他又比较精通此语言,所以给了我很大帮助,很多Java方面的不懂的问题都会请教他,在他的帮助下对Java也慢慢精通些,在这里非常感谢他在技术上给我指导。还有其他的朋友,平时在相互交流中,大家也取长补短,学到了很多,也得到了很多的帮助,感谢他们。
“不积跬步无以至千里”,这次毕业设计能够最终顺利完成,归功于各位老师四年间的认真教诲和谆谆教导,使我能够很好的掌握专业知识,并在毕业设计中得以体现。最后,我向计算机与通信学院的全体老师们再次表示衷心感谢:谢谢你们。
学生签名: 日 期:
43
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务