已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕 业业 论论 文文 基于 Java 的企业进销存管理系统 The Enterprise Purchase-sell-stock Management System Based on Java 系(院)名称: 专 业 班 级: 学 生 姓 名: 学 生 学 号: 指导教师姓名: 指导教师职称: 2012 年 5 月 毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明 原创性声明原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下 进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方 外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安 阳工学院及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮 助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名: 日 期: 指导教师签名: 日 期: 使用授权说明使用授权说明 本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定, 即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕 业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用 影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学 校可以公布论文的部分或全部内容。 作者签名: 日 期: 基于基于 Java 的企业进销存管理系统的企业进销存管理系统 摘要:在市场经济中,销售是企业运作的重要环节。为了更好地推动销售,不少企业建 立分公司或代理制,通过分公司或代理把产品推向最终用户。这些分公司或代理商大部 分分布在不同的地理位置,跨空间、跨时间的频繁业务信息交流是这些企业业务活动的 主要特点。在这种形势下,传统的依靠管理人员人工工作传递信息和数据的管理方式就 无法满足企业日益增长的业务需求了。 本系统即为一个基本的进销存管理系统,就是利用信息化手段把先进的企业管理方法引 入企业的实践,为企业的管理改革提供切实易行的途径。系统对企业中常见的采购、库 存、销售等商业活动以及相关的供应商和客户等基本信息进行管理。 本论文以商品进销存管理系统的分析和设计为出发点,详细介绍了开发本系统的各个步 骤:系统分析、系统设计、系统实现、系统维护。本系统主要介绍了在基础信息模块的 功能,弥补了在其他系统中难以对客户信息、供应商信息和商品信息的修改及删除。在 系统的实现中,给出了实现窗体中相应功能控件的示例和源代码,以及菜单实现的方法。 论文中列出了本系统的主要功能运行界面图。本系统采用目前流行的 Java Swing 进行开 发,后台数据库使用功能更强大操作便捷的 Oracle 数据库。 关键词:进销存管理系统;Java Swing;Oracle;数据库 The Enterprise Purchase-sell-stock Management System Based on Java Abstract:Sailing is an important part of enterprise management in market economy. In order to promote sale,many of them set up sub-company or agent system.They promote product to customers through those sub-companies or agents.Most of them lie in different places.The frequent communication of information beyond space and time is the major feature.In this case,the traditional management conveying information and data by management personnels cant satisfy the need of increasing business. The system is a basic in sailing and accounting management.It introduces advanced management by utilizing information method.It offers practical access to the reform of enterprises management.This system manage business activities,such as buying,storing and sailing,and the basic information of suppliers and customers.It use visual basic which is very popular currently to develop.Background database makes use of Oracle 10g,having strong function and convenient operation. This thesis with commodity purchase-sell-stock management system analysis and design is introduced, the system of exploitation of each step: system analysis, system design, system achieve, system maintenance.This system mainly introduces the basic information of the module, to make up for the other systems which is difficult to modification and deletion customer information, supplier information and commodity information.In the realization of the system, the realization form are appropriate functions of control and source code examples, and the method to realize the menu. This paper lists the main functions of the system operation interface diagram.This system uses currently popular Java Swing development, backed database using more powerful convenient operation of the Oracle database。 Key word:Sailing and accounting Manage System;Java Swing;Oracle;database 目 录 引 言 1 第 1 章 概述 2 1.1 研究课题的背景 2 1.2 研究课题的目的和意义 2 1.3 本课题的主要内容及组织结构 3 1.3.1 主要内容.3 1.3.2 组织结构.3 第 2 章 系统开发环境的选择与配置 4 2.1 硬件环境 4 2.2 系统开发工具的选择 4 2.2.1 使用 Java + Oracle 10g 进行程序设计和数据库设计.4 2.2.2 Java 环境的配置5 第 3 章 需求分析与系统设计 6 3.1 需求分析 6 3.2 概要设计 6 3.3 详细设计 7 3.4 本章小结 9 第 4 章 数据库的设计 .10 4.1 数据库介绍 10 4.2 E-R 图 .10 4.3 数据表概要说明 12 4.4 主要数据表的结构 13 第 5 章 主要模块设计与实现 .17 I 5.1 系统登录模块设计与实现 17 5.2 基础信息模块设计与实现 23 5.3 销售单功能设计与实现 25 5.4 销售退货管理模块设计与实现 28 5.5 查询统计模块设计与实现 29 5.6 库存管理模块的设计与实现 30 5.7 本章小结 32 第 6 章 系统测试 .33 6.1 系统软件测试 33 6.1.1 测试的原则.33 6.1.2 单元测试.33 6.1.3 集成测试.33 6.2 测试总结 34 6.3 系统实施与维护 34 结 论 .35 致 谢 .36 参考文献 37 0 引 言 在信息技术的催化之下,世界经济的变革已经进入了加速状态。世界经济一体化,企业 经营全球化,以及高度竞争造成的高度个性化与迅速改变的客户需求,令企业与顾客、 企业与供方的关系变得更加密切和复杂。强化管理、规范业务流程、提高透明度、加快 商品资金周转,以及为流通领域信息管理全面网络化打下基础,是销售公司乃至众多商 业企业梦寐以求的愿望。 进销存软件概念起源于上世纪 80 年代,由于电算化的普及,计算机管理的推广,不少 企业对于仓库货品的进货、存货、销售管理有了强烈的需求,进销存软件的发展从此开 始。 进入 90 年代以后,随着进销存软件的应用面越来越广,出现了许多从功能上、从用途 上更为全面的进销存系统,从单纯的货品数量管理,扩展为货品的流程管理,进销存软 件对每一批货品的来源、存放、去向,都作仔细的记录,随后并延伸为财务进销存一体 化的管理模式。 进入 21 世纪以后,各种各样的进销存软件产品应运而生,在仓库进销存管理的基础上, 集合了财务管理、客户管理、业务管理等相关内容,成为进销存财一体化的管理系统。 企业进销存管理系统的不断完善,为企业管理现代化和运营信息化提供了有力的支持。 1 第 1 章 概述 1.1 研究课题的背景 在全球经济趋向信息化的时代背景下,从我国企业信息化的意义、内容及目前发展状况, 深入分析现阶段我国企业信息化建设中存在问题,进而提出解决问题的对策。政府和企 业合力,以达到加快我国企业信息化建设发展的步伐。 信息化革命正在打破并重组现存的国际经济秩序和结构,并促使其由物质型向信息型经 济转变。并且随着经济的全球化趋势,如果没有信息化,企业的改造、重构、工业化的 进程就会怠慢,企业的生存和发展就会成为大问题。从当前来讲,先行一步的企业常会 成为赢家,而那些不能及时做出应对的企业,即使幸免被淘汰,也只能被挤到低增长的 经营领域中分得残羹冷炙。 企业信息化包括销售、生产、服务等方面内容,而实质是企业管理的信息化,是企业将 融合世界先进管理思想的信息技术进一步应用于管理,提高企业管理的效率和效益。企 业管理的信息化在某种意义上意味着企业的全面信息化。它包括着企业内部管理信息化 和企业的外部沟通信息化。 1.2 研究课题的目的和意义 进销存管理系统主要是充分发挥信息技术的优势,通过集中式的信息数据库,将企 业的进、销、存等经营业务有机地结合起来,达到数据共享、降低成本、提高效率、改 进服务的目的,进而提供企业的生产效率和管理水平。 随着因特网技术的飞速发展,网上商品网上交易日益普及,企业进销存管理系统是 目前公司或是其企业对进销存管理系统的中的典型代表,涉及到了商品或货物管理中主 要的几个方面,即进货管理、销售管理、库存管理、信息查询、基础信息、系统管理等 无论公司还是企业对于货物都实行了信息化管理,以提高管理水平额工作效率,同时也 最大限度的减少手工操作带来的失误。于是进销存管理系统便应运而生。在工厂中,产 品的进销存涉及原料的采购、库存、投入生产,甚至有时涉及到出库,对于产品也有相 应的生产、库存和统计等类似环节。在其它非生产性单位,如超市、商店等,则主要涉 及到入库、库存、出库统计等方面。进销存管理系统具有广阔的开发前景。 针对我的实际情况,结合我对计算机软件的熟练程度以及对数据库的了解,经过与指导 老师马老师的协商,我选择了基于 Java 的企业进销存管理系统这个课题。本系统界 2 面设计美观、大方、方便、快捷、操作灵活。实现强大的进销存管理,包括基础信息、 进货、销售和库存管理等。能够在不同的操作系统下运行,不局限于特定的平台,并提 供库存盘点等。 1.3 本课题的主要内容及组织结构 1.3.1 主要内容 在这个进销存管理系统中,介绍了如何开发系统的过程以及主要模块的设计与实现步 骤,其中主要包含了以下几个功能: (1)进货单的生成; (2)销售单的生成; (3)根据进货信息和销售信息对库存定期进行盘点; (4)历史进货和销售记录的查询; (5)商品信息、客户信息和供应商信息的维护。 通过发上几个功能的实现,基本能够满足一般企业的进销存管理需要,为企业的管理 现代化和运营信息化提供缋有力的支持。 1.3.2 组织结构 本课题的组织框架结构如下: 前两章主要讲述了本课题的前景、目的及开发的环境配置等问题; 第 3 章简要说明了本课题的需求分析以及概要设计; 第 4 章主要说明了数据库的设计; 第 5 章讲解了系统主要模块的设计与实现; 第 6 章为系统测试; 第 7 章为本课题的结论。 3 第 2 章 系统开发环境的选择与配置 2.1 硬件环境 开发本系统对硬件的要求不是很高,随着科技的飞速发展,现在一般机器的配置都能达 到开发本系统的要求。具体开发环境如下: 显示器:液晶 19 英寸 分辨率:1024*768 像素 CPU:AMDAthlon2.91GHz 内存:1024MB 以上 硬盘空间:320G 光驱:DVD16X 鼠标:光电鼠标 键盘:防水键盘 2.2 系统开发工具的选择 2.2.1 使用 Java + Oracle 10g 进行程序设计和数据库设计 Java 是一种简单、面向对象、分布式、解释型、健壮安全、结构中立、可移植、性能 优异、多线程的动态语言。Java 语言的优良特性使得 Java 应用具有无比的健壮性和可靠 性,这也减少了应用系统的维护费用。Java 对对象技术的全面支持和 Java 平台内嵌的 API 能缩短应用系统的开发时间并降低成本。Java 的编译一次,到处可运行的特性使得 它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是 Java 企业应用编程接口(Java Enterprise API)为企业计算及电子商务应用系统提供了 有关技术和丰富的类库。 Oracle 在其技术白皮书上阐明,Oracle 10g 数据库关键目标有二:1 降低管理开销, 2 提高性能。Oracle 10g 的增强有对高可用性的增强、新的 Flashback 能力、支持回滚 更新操作;对安全性的增强,便于管理大量的用户;BI 方面的增强,包括改进的 SQL 能力、分析功能、OLAP 、数据挖掘的能力等;对非关系型数据存储的能力得到了改进; XML 的能力;对开发能力支持的加强,对生物信息学( Bioinformatics )的支持。 4 2.2.2 Java 环境的配置 一台计算机上安装了 JVM,该台机器就可运行 Java 程序;而要开发 Java 程序,计算机 上仅仅有 JVM 还是不够的,需要建立 Java 开发环境才行。 本系统使用 J2SE 来进行 Java 程序设计,因此需要下载和安装 JavaSE 开发包。 JavaSE 是一个包含 Java 开发环境和运行环境的套件该套件由如下三项集成: (1)Java Development Kit(JDK),Java 程序开发环境。 (2)Java Runtime Environment(JRE),Java 应用程序运行环境。 (3)Java Plug-in,使 Java Applet 可在网页中运行的插件。 有关 Java 平台方面的软件都是免费开放的,可直接从 Sun 公司的 Java 技术支持网站 ()上下载,网站上提供了众多不同标准和版本的 Java /javase/downloads/index.jsp 亦可。 安装完毕需要设置 path 和 classpath 两个环境变量,这对于以后程序能否编译,编译 成功的程序能否运行都是很关键的一个环节。这在 Windows XP 下可通过右击桌面中的 “我的电脑” ,在弹出的快捷菜单中选择“属性”命令即可,再单击左栏任务下的最后一 项“高级系统设置”即弹出属性窗口。然后在属性窗口的“高级”选项卡下,单击“环 境变量”按钮就会弹出“环境变量”设置窗口。 path 用于设置 Java 编译、解释等工具的路径,这些工具文件在 Java 安装目录下的 bin 目录中。classpath 用于设置应用程序类路径和扩展的应用程序类路径,通常需要指定两 项 Java 安装目录下的 lib 目录和当前运行的 class 所在目录(用指定) 。 5 第 3 章 需求分析与系统设计 3.1 需求分析 需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对现实问 题的理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本 质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产 品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是 指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能, 达到什么性能。通常需求分为两种类型:一种是功能性需求,一种是非功能性需求,这 一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对 数据的处理要求,这是一类最主要的需求。非功能性需求是指实际使用环境所要求的需 求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等。 根据市场的需求,要求系统具有以下功能: (1)系统操作简单,界面友好; (2)规范、完善的基础信息设置; (3)支持多人操作,要求有权限分配功能; (4)为了方便用户,要求系统支持多条件查询; (5)对销售信息提供销售排行; (6)支持销售退货和入库退货功能; (7)支持库存价格调整功能等。 3.2 概要设计 企业进销存管理系统必须提供商品信息、供应商信息和客户信息的基础设置;提供强大 的多条件搜索功能和商品的进货、销售和库存管理功能;可以分不同权限、不同用户对 该系统进行操作。另外,该系统还必须保证数据的安全性、完整性和准确性。 企业进销存管理系统的目标是实现企业的信息化管理,减少盲目采购、降低采购成本、 合理控制库存、减少资金占用并提升企业市场竞争力。 项目主要以企业的进货、销售和查询统计功能为主,对于库存、销售和进货的记录信息 应该及时、准确的保存,并提供相应的查询和统计。由于库存商品数量太多,不易盘点, 传统的盘点方式容易出错,系统中的库存盘点功能要准确的计算出每种商品的损益数量, 6 减少企业不必要的损失。 根据需求分析,设计的进销存管理系统的模块组织结构如图 3-1 所示。 图 3-1 进销存管理系统模块组织结构图 3.3 详细设计 下面对各模块的设计功能进行详细说明。 进货单:日常业务中需要频繁使用的功能,主要是对每笔采购入库业务进行记录, 自动生成对应的采购凭证。进货单中的商品名称、供应商和经手人字段分别对应 tb_spinfo 数据表、tb_gysinfo 数据表和 tb_userlist 数据表中的相关字段,所以这 里需要检验用户输入的合法性。为了管理的方便的规范。每笔采购单对应唯一进货单票 号。 销售单:日常业务中需要频繁使用的功能,主要是对每笔销售出库业务进行记录, 自动生成对应的销售凭证。销售单中的商品名称、客户和经手人字段分别对应 tb_spinfo 数据表、tb_khinfo 数据表和 tb_userlist 数据表中的相关字段,所以这里 7 需要检测用户输入的合法性。为了管理的 方便和规范,每笔销售单对应一个唯一销 售 单票号。 库存盘点:库存管理中的重要业务活动,主要是根据采购记录和销售记录对库存商 品盘点,更新每种商品的库存量,为制定采购计划提供依据。计算库存时需要检索每一 种商品的采购记录,汇总得到此种商品总共的采购数量,然后检索这种商品的销售记录, 汇总得到此种商品总的销售数量,最后用总采购数量和总销售数量相减即可。 产品管理:库存管理中的辅助业务,主要是当有产品或者商品的属性数据改变时, 需要在这里进行更新。 库存查询:统计查询功能中的一个模块,提供了对库存商品按照多种字段模糊查询 的功能。 采购查询:统计查询功能中的一个模块,提供了对采购记录的多种字段的复合式查 询功能。 销售查询:统计查询功能中的一个模块,提供了对销售记录的多种字段的复合式查 询功能。 供应商管理:基础信息维护中的一个模块,主要用于对供应商信息进行查询和维护。 为了方便对多个供应商的管理和比较,本系统中将此功能用 Tab 页的形式实现,既方 便对单个供应商信息的查看和编辑,又利于对供应商总体的评价和比较。 客户管理:基础信息维护中的一个模块,主要用于对企业客户信息的查询和维护。 为了方便对多个客户的管理和比较,本系统中也将此功能用 Tab 页的形式实现,既方 便对单个供应商信息的查看和编辑,又利于对供应商总体的评价和比较。 密码设置:系统设置中的一个模块,主要用于为系统中现有的用户提供密码更改功 能。 退出系统:用于退出本系统。为了防止用户的误操作,退出系统之前需要用户确认 退出的操作。 整个系统从运行开始,管理员或者操作员登录。操作员可以实现基础信息管理、进 货管理、销售管理、查询统计、库存管理的所有操作。管理员可以拥有操作员的所有操 作,并且其具有系统管理的功能,以实现对操作员的权限等的管理。 整个系统运行的业务流程图大致如图 3-2 所示。 8 图 3-2 系统流程图 3.4 本章小结 本章主要介绍了该进销存管理系统中的需求分析、概要设计以及详细设计的内容,通过 本章让我们更了解企业进销存系统的核心所在,该系统的关键在于数据库的管理和操作, 所以本论文的重点也在第四章的数据库设计,让我们更加清楚的学习该系统表与表之间 是如何操作的。 9 第 4 章 数据库的设计 4.1 数据库介绍 所谓数据库(Database)就是指按一定组织方式存储在一起的,相互有关的若干个数据 的结合,数据库管理系统(Database Management System)就是一种操纵和管理数据库 的大型软件,简称 DBMS,他们建立在操作系统的基础上,对数据库进行统一的管理和控制, 其功能包括数据库定义,数据库管理,数据库建立和维护,于操作系统通信等。DBMS 通 常由数据字典,数据描述语言及其编译程序,数据操纵(查询)语言及其编译程序,数 据库管理例行程序等部分组成。 关系数据库是以关系模型为基础的数据库,是根据表、记录和字段之间的关系进行组织 和访问的一种数据库,它通过若干个表(Table)来存取数据,并且通过关系 (Relation)将这些表联系在一起,关系数据库提供了成为机构化查询语言(SQL)标准 接口,该接口允许使用多种数据库工具和产品,关系数据库是目前最广泛应用的数据库。 数据库是一个逻辑上的概念,通过一组系统文件将相互关联的数据表及其数据库对象组 织起来,成为扩展名为.dbf 的数据库文件、扩展名为.bkp 的数据库备注文件和扩展名为. inx 的数据库索引文件,三个文件一般不能直接使用。 4.2 E-R 图 进销存系统的 E-R 图,进销存系统主要实现从进货、库存到销售的一体化管理,涉及商 品信息、商品的供应商、购买商品的客户等多个实体。下面简单介绍几个关键的实体和 系统的综合 E-R 图。 1. 供应商实体属性图 供应商实体包括:编号、名称、简称、地址、电话、邮政编码、传真、联系人、联系人 电话、开户行和 E-mail 属性,如图 4-1 所示。 供应商 编号 名称简称地址 邮政编码 电话 传真 联系人联系人电话开户行 Email E-mail 10 图 4-1 供应商实体属性图 2. 商品实体属性图 商品实体包括:编号、商品名称、商品简称、产地、单位、规格、包装、批号、批准文 号、商品简介和供应商属性。如图 4-2 所示。 商品 编号 名称简称产地 规格 单位 包装 批号批准文号简介 供应商 图 4-2 商品实体属性图 3. 客户实体属性图 客户实体包括:客户编号、客户名称、简称、地址、电话、邮政编码、联系人电话、传 真、开户行和账号属性。如图 4-3 所示。 客户 编号名称简称地址 邮政编码 电话 传真联系人联系人电话开户行 Email 帐号 E-mail 账号 图 4-3 客户实体属性图 4. 销售实体属性图 销售实体分为销售主表和销售明细表两个实体,它们是一对多的关系。其中销售主表 包括:销售票号、品种数、金额、验收结论、客户名称、经手人、结算方式、操作员和 销售日期属性。销售明细表包括:编号、销售票号、商品编号、数量和单价属性。如 图 4-4 所示。 销售主表 品种数金额验收结论 销售日期 客户名称 操作员结算方式经手人 销售详细表编号 销售票号商品编号 单价数量 销售票号 归属 N1 图 4-4 销售实体属性图 11 4.3 数据表概要说明 主要数据库表的概要说明及各个表的生成图,如图 4-5 所示。 图 4-5 数据库表概要说明 主要数据库中表之间的关联图,如图 4-6 所示。 12 图 4-6 数据库表之间关联图 4.4 主要数据表的结构 数据库在整个管理系统中占据非常重要的地位,数据库结构设计的好坏直接影响着系统 的效率和实现效果。进销存管理系统采用 Oracle 10g 版本的数据库,数据库名称为 ORACLE,因篇幅所限,本论文只给出几个重要数据表的表结构。 1. 供应商信息表 供应商信息表的名称为 tb_gysinfo,主要用于存储供应商的详细信息,结构如 表 4-1 所示。 13 表 4-1 供应商信息表 字 段 名 称数 据 类 型字 段 大 小是 否 主 键 idvarchar10主键 namevarchar10 jcvarchar10 addressvarchar10 bianmavarchar10 telvarchar20 faxvarchar20 lianvarchar10 ltelvarchar20 yhvarchar10 mailvarchar20 2. 入库主表 入库主表的名称为 tb_ruku_main,主要用于存储入库的单据信息,结构如表 4-2 所示。 表 4-2 入库主表 字 段 名 称数 据 类 型字 段 大 小是 否 主 键 rkIDvarchar20主键 pzsnumber jenumber ysjlvarchar30 gysnamevarchar20 rkdatevarchar20 czyvarchar10 jsrvarchar10 jsfsvarchar10 3. 入库明细表 入库明细表的名称为 tb_ruku_detail,主要用于存储入库的详细信息,结构如表 4-3 所示。 14 表 4-3 入库明细表 字 段 名 称数 据 类 型字 段 大 小是 否 主 键 idvarchar10主键 rkidvarchar20 spidvarchar10 djnumber slnumber 4. 销售主表 销售主表的名称为 tb_sell_main,主要用于存储销售单据的信息,结构如表 4-4 所示。 表 4-4 销售主表 字 段 名 称数 据 类 型字 段 大 小是 否 主 键 sellidvarchar20主键 pzsnumber jenumber ysjlvarchar30 khnamevarchar20 xsdatevarchar20 czyvarchar10 jsrvarchar10 jsfsvarchar10 5. 客户信息表 客户信息表的名称为 tb_khinfo,主要用于存储客户的信息,结构如表 4-5 所示。 表 4-5 客户信息表 字段名称数据类型字 段 大 小是否主键 idvarchar10主键 khnamevarchar20 jianvarchar10 addressvarchar20 bianmavarchar10 telvarchar20 faxvarchar20 lianvarchar10 ltelvarchar20 mailvarchar20 xinhangvarchar10 haovarchar18 15 6. 库存表 库存表的名称为 tb_kucun,主要用于存储库存信息,结构如表 4-6 所示。 表 4-6 库存表 字段名称数据类型字 段 大 小是否主键 idvarchar10主键 spnamevarchar10 cdvarchar10 ggvarchar10 bzvarchar10 dwvarchar20 djnumber kcslnumber jcvarchar10 16 第 5 章 主要模块设计与实现 5.1 系统登录模块设计与实现 登录界面必须有输入用户名和密码的文本框、负责登录和退出的按钮,另外考虑到美观性, 登录模块创建了带背景的面板容器来美化登录界面。进销存管理系统中的登录界面如图 5-1 所 示。 图 5-1 登录界面 下面介绍登录界面的开发步骤。 1. 创建 LoginPanel 类,该类继承 JPanel 类并覆盖该类的 paintComponent()方法,重 新绘制自己的外观,实现带背景图片的面板容器。关键代码如下: public class LoginPanel extends JPanel protected ImageIcon icon = new ImageIcon(“res/login.jpg“); public int width = icon.getIconWidth(), height = icon.getIconHeight(); public LoginPanel() super(); setSize(width, height); protected void paintComponent(Graphics g) super.paintComponent(g); Image img = icon.getImage(); g.drawImage(img, 0, 0, getParent(); 2. 创建 Login 类,该类继承 JFrame 类实现一个窗口界面,并且将步骤(1)所创建的 17 面板容器添加到窗口中,然后初始化窗口中的各个组件大小、位置、窗口标题等基本属 性。关键代码如下: public class Login extends JFrame private JLabel userLabel; private JLabel passLabel; private JButton exit; private JButton login; private Main window; private static TbUserlist user; /将当前用户对象定义为类属性 public Login() setIconImage(new ImageIcon(“res/main1.gif“).getImage(); setTitle(“登录企业进销存管理系统“); final JPanel panel = new LoginPanel(); panel.setLayout(null); getContentPane().add(panel); setBounds(300, 200, panel.getWidth(), panel.getHeight(); userLabel = new JLabel(); userLabel.setText(“用户名:“); userLabel.setBounds(100, 110, 200, 18); panel.add(userLabel); final JTextField userName = new JTextField(); userName.setBounds(150, 110, 200, 18); panel.add(userName); passLabel = new JLabel(); passLabel.setText(“密 码:“); passLabel.setBounds(100, 140, 200, 18); panel.add(passLabel); 3. 在输入密码的文本框中添加一个按键监听器,如果用户在密码框中按下回车键,该 按键监听器将拦截该按键事件,并执行“登录”按钮的单击事件去完成系统登录。 final JPasswordField userPassword = new JPasswordField(); userPassword.addKeyListener(new KeyAdapter() public void keyPressed(final KeyEvent e) if (e.getKeyCode() = 10) login.doClick(); userPassword.setBounds(150, 140, 200, 18); panel.add(userPassword); 18 4. 为“登录”按钮添加动作监听器,当用户单击该按钮或者在按钮上按下回车键时, 监听器将拦截该事件并执行 actionPerformed()方法,在该方法中通过调用 Dao 数据库操 作类的 getUser()方法获取用户信息,并完成用户验证和主窗体显示。 login = new JButton(); login.addActionListener(new ActionListener() public void actionPerformed(final ActionEvent e) user = Dao.getUser(userName.getText(), userPassword. getText (); if (user.getUsername() = null | user.getName() = null) userName.setText(null); userPassword.setText(null); return; setVisible(false); window = new Main(); window.frame.setVisible(true); login.setText(“登录“); login.setBounds(180, 170, 60, 18); panel.add(login); 其中,数据库连接的关键函数代码如下所示。 protected static String dbClassName = “oracle.jdbc.driver.OracleDriver“; protected static String dbUrl = “jdbc:oracle:thin:localhost:1521:ORACLE“; protected static String dbUser = “jxc“; protected static String dbPwd = “jxc“; public static Connection conn = null; static try if (conn = null) Class.forName(dbClassName).newInstance(); System.out.println(“regist success!“); conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); System.out.println(“connection success!“); 19 catch (Exception ee) ee.printStackTrace(); 数据库用户登录验证 Dao.getUser 函数的实现如下。 public static TbUserlist getUser(String name, String password) TbUserlist user = new TbUserlist(); ResultSet rs = findForResultSet(“select * from tb_userlist where username=“ + name + “); try if (rs.next() user.setUsername(name); user.setPass(rs.getString(“pass“); if (user.getPass().equals(password) user.setName(rs.getString(“name“); user.setQuan(rs.getString(“quan“); catch (SQLException e) e.printStackTrace(); return user; 5. 在用户单击“退出”按钮时,该按钮的监听器会执行 System.exit(0)命令去终止整 个 Java 虚拟机,从而关闭进销存管理系统。 exit = new JButton(); exit.addActionListener(new ActionListener() public void actionPerformed(final ActionEvent e) System.exit(0); ; 20 exit.setText(“退出“); exit.setBounds(260, 170, 60, 18); panel.add(exit); setVisible(true); setResizable(false); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); 6. 编写封装和访问当前用户对象的方法,并且将这些方法声明为类的静态方法,这样 其他窗口对象可以随时获取当前登录的用户信息。 public static TbUserlist getUser() return user; public static void setUser(TbUserlist user) Login.user = user; 主窗口界面包括菜单栏、工具栏、窗口界面。其中每个菜单对应着系统的各个功能模块。 进销存管理系统程序主界面的运行效果如图5-2 所示。 图 5-2 主窗口界面 21 程序主界面的开发首先要创建Main类,在类中定义各个基本组件(包括标签、窗体、文 本框等) 、窗体的集合对象、动作集合对象和当前登录的用户对象,然后调用 initialize()方法初始化窗口和所有基本组件,并调用登录窗口启动并运行程序。 初始化程序主界面的 initialize()方法,该方法主要实现进销存管理系统主界面的初始 化,初始化的界面组件包括:菜单、工具栏、窗体以及它们的布局管理等。 窗体的初始化包括窗体标题、图标、布局管理器、窗体的关闭方式、位置、大小等属性 和窗体事件监听器。其中窗体的 ComponentListener 事件监听器在用户改变窗体大小时 改变背景图片的大小,背景图片是本实例提供的 800600 和 1024768 两种大小的背景 图片。 菜单栏中分别由不同的方法创建各个模块的菜单和菜单项。 工具栏由 defineToolBar()方法添加工具按钮。 initialize()方法的关键代码如下: frame = new JFrame(“企业进销存管理系统“); frame.addComponentListener(new ComponentAdapter() public void componentResized(final ComponentEvent e) if (backLabel != null) int backw = (JFrame) e.getSource().getWidth(); ImageIcon icon = backw rkDetails = sellMain.getTbSellDetails(); for (Iterator iter = rkDetails.iterator(); iter .hasNext();) TbSellDetail details = iter.next(); / 添加销售详细表记录 ResultSet set = Dao.query(“select max(id) from tb_sell_detail“); String id = null; try if (set != null if (sid = null) id = “xsD1001“; else String str = sid.substring(3); id = “xsD“ + (Integer.parseInt(str) + 1); 27 catch (SQLException e1) e1.printStackTrace(); insert(“insert into tb_sell_detail values(“+id+“,“ + sellMain.getSellId() + “,“ + details.getSpid() + “,“ + details.getDj() + “,“ + details.getSl() + “)“); / 修改库存表记录 Item item = new Item(); item.setId(details.getSpid(); TbSpinfo spInfo = getSpInfo(item); if (spInfo.getId() != null if (kucun.getId() != null update(“update tb_kucun set kcsl=“ + sl + “ where id=“ + kucun.getId() + “); mit(); conn.setAutoCommit(autoCommit); 初始化销售单窗体的 initTasks 类,该类继承了Inte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学课件修改教学课件
- 流感演练课件教学课件
- 2024光学仪器研发与制造合作合同
- 2024年太阳能光伏发电项目开发合作协议
- 2024专利实施许可合同实施范围与许可条件
- 2024年度影视制作合同(含制作项目、投资额)
- 2024年度物流服务合同标的货物运输与服务内容
- 2024乙方向甲方提供品牌授权使用合同
- 2024年度特许经营合同标的为连锁餐饮品牌
- 2024年度网络安全风险评估与管理服务合同
- 2024二十届三中全会知识竞赛题库及答案
- 预防接种工作规范(2023年版)解读课件
- 医院检验外包服务项目招标文件
- 档案整理及数字化服务方案
- 正高级会计师答辩面试资料
- 布鲁纳《教育过程》
- 样品承认书标准版
- 田间生产管理记录档案
- 道路桥涵工程施工方案(完整版)
- 智慧城市建设论文5篇
- 人教版八年级地理(上册)期中试卷及答案(完整)
评论
0/150
提交评论