某公司的工资管理系统设计论文_第1页
某公司的工资管理系统设计论文_第2页
某公司的工资管理系统设计论文_第3页
某公司的工资管理系统设计论文_第4页
某公司的工资管理系统设计论文_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . . I / 56摘 要我们小组的课程设计是某公司的工资管理系统。在这个计算机快速发展的世界里,计算机为信息处理提供了物美价廉的手段,对于推动我国管理信息处理现代化起到了重要作用。工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,既方便又快捷地完成员工工资的发放。我们组在课程设计过程中根据设计中的需求与对工资管理系统采用了模块化的设计思想,在

2、机房我们在 Windows XP 操作系统环境下,采用 myeclipse7作为开发工具,主要连接 Access 数据库来实现公司的工资管理系统的主要功能。在设计过程中,我们首先小组首先对整体的思路进行分析,然后进行分工。对数据库和类进行设计,实现了工资管理系统的功能。其功能主要包括公司用户管理、人员管理、部门管理、工资管理等功能。本系统运用了数据库技术,可以大量的存储信息。又实现了人机交互,不但缩短工资发放的时间,又避免了传统时代的人工计算错误。总而言之,该系统在工资管理方面考虑周全,功能齐全,极提高了公司对员工工资管理的效率。关键词 工资管理系统,Access 数据库,Java. . .

3、. II / 56目 录摘要 I目录 II第 1 章绪论 11.1 项目背景 11.2 项目开发环境 11.2.1 硬件环境 11.2.2 软件环境 1第 2 章相关技术 12.1 系统所涉与到的语言 12.1.2 Java12.2 开发工具 12.2.1 MyEclipse12.2.1 Access2第 3 章系统分析与组分工 13.1 需求概述 13.2 需求分析 13.2.1 理解需求 13.2.2 分析需求 13.2.3 可行性分析 23.3 设计思想 23.4 系统功能结构图 33.5 组分工 4第 4 章数据库设计 54.1 数据库需求分析 54.2 数据流图 54.2 数据字典

4、64.3 概念结构设计 94.3.1 概念结构设计方法 94.3.2 概念模型设计 9第 5 章系统详细模块设计与实现 105.1 用户登录与主界面 105.2 用户管理功能实现 185.3 人员管理功能实现 245.4 部门管理功能实现 395.5 工资管理功能实现 455.6 帮助功能实现 505.7 退出系统功能实现 51. . . . III / 56结论 52致 53参考文献 54. . . . 1 / 56第 1 章 绪论1.1 项目背景借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。党和政府根据知识经济时代的特点,对国民经济建设提出了“用信息化带动工业化”的

5、指导思想。对企业而言,全面开发和应用计算机管理信息系统就是近期不能回避的问题。在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线” ,因此人事管理是企业的计算机管理信息系统重要组成部分。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。工资管理信息系统的实现可以减轻比较繁琐的手工工资管理。同时计算机具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低、打印方便等。这些优点能够极提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此工资管理系统在企业中占

6、重要地位。现在应用在大中型企业的管理信息系统中,几乎都包括了工资管理模块。有些环境中是由作为大型 ERP 软件中的一个模块引进的,有些是作为企业的财务系统的一部分。这些根据规的西方的管理制度设计的工资管理软件,在很多时候还不能完全解决中国特色的中小企业的问题,我们组介绍的工资管理系统就是要为这些具有中国特色的中小企业解决他们在工资管理方面的问题。本系统功能齐全,实现了用户管理、人员管理、部门管理、工资管理。并在各个功能下面实现了查询、添加、修改、删除等功能,使系统功能更加完善。更适合企业管理人员对员工工资进行管理。1.2 项目开发环境1.2.1 硬件环境PC 机1.2.2 软件环境(1) 操作

7、系统:Windows XP(2) 开发工具:MyEclipse 7.0(3)数据库:Access. . . . 1 / 56第 2 章 相关技术2.1 系统所涉与到的语言2.1.1 Java 语言Java 的诞生是对传统计算机模式的挑战,对计算机软件开发行业产生了深远的影响:(1) 软件 4A 目标要求软件能达到任何人在任何地方在任何时间对任何电子设备都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等分布式计算模式的需求。 (2) 基于构建开发方法的崛起,引出了 CORBA 国际标准软件体系结构和多层应用体系框架。在此基础上形成了 Java.2 平台和.NET 平台两大

8、派系,推动了整个 IT 业的发展。 (3) 对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商,服务器软件以与咨询服务商出现。企业必须重塑自我,B2B 的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长,新的商机,新的管理。 (4) 对软件开发带来了新的革命,重视使用第三方构件集成,利用平台的基础设施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创作,责任,诚信是人才的基本素质。 总之,目前以看到了 Java 对信息时代的重要性,未来还会不断发展,Java 在应用方面将会有更广阔的前景。2.2 开发工具2.2.

9、1 MyEclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 E

10、clipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以与给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffel 等. . . . 2 / 56编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如容管理系统。简单而言,MyEclipse 是 Eclipse 的插件,

11、也是一款功能强大的 J2EE 集成开发环境,支持代码编写、配置、测试以与除错。Genuitec 发布了 MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的 J2EE 工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是 J2EE IDE 市场一个重量级的选手。通过增加 UML 双向建模工具、WYSIWYG 的 JSP/Strutsdesigner、可视化的 Hibernate/ORM 工具、Spring 和 Web services 支持,以与新的 Oracle 数据库开发,MyEclipse 5.0 继续为业界提供

12、全面的产品。 Genuitec 总裁 Maher Masri 说, “今天,MyEclipse 已经提供了意料之外的价值。其中的每个功能在市场上单独的价格都比 MyEclipse 要高。但是,我们承诺为顾客提供全面并且可以买得起的解决方案。按照这个传统,我们的顾客将继续享受年度订购活动的好处,该活动提供了所有发布功能的入口以与伴随 MyEclipse5.0 一起的专业技术支持”。2.2.2 AccessMicrosoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine

13、和 图形用户界面两项特点,是 Microsoft Office 的成员之一。其实 Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以与其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。另外,Access 还是 c 语言的一个函数名和一种交换机的主干道模式。Microsoft Access 在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的 WEB应用程序这些应用程序都利用 ASP 技术在 Internet Information Servi

14、ces 运行比较复杂的 WEB 应用程序则使用 PHP/MySQL 或者 ASP/Microsoft SQL Server。Access 管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。Access 是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极简化了用户的开发工作。同时

15、,这种基于面向对象的开发方式,使得开发应用程序更为简便。Access 基于 Windows 操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。. . . . 3 / 56Access 支持 ODBC(开发数据库互连,Open Data Base Connectivity) ,利用 Access强大的 DDE(动态数据交换)和 OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel 表格、Word 文档,还可以建立动态的数据库报表和窗体等。Access 还

16、可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成 HTML 文件,轻松构建 Internet/Intranet 的应用。. . . . 1 / 56第 3 章 系统分析与组分工3.1 需求概述工资管理系统系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。因此,工资管理系统为公司和员工带来极大的方便。通过我们组员之间的分析与研究,要求系统具有如下功能:(1)提供用户登录、用户查询功

17、能(2)提供员工信息查询、添加、删除等功能(3)提供部门信息查询、添加、删除等功能(4)提供工资信息查询、添加、修改、删除等功能(5)管理员对各个部分信息的管理功能3.2 需求分析3.2.1 理解需求工资管理系统在用户登录时分两个部分:管理员和普通用户。普通用户可以进入用户界面查询各个信息,但只有查询功能。管理员的权限除了普通用户的权限外,还有对各个部分的信息进行添加、修改、删除等功能。所有的功能管理员都能实现。下面是系统所要达到的几条要求:(1)要求系统准确的记录各种信息。(2)系统要提供丰富的查询功能。(3)系统可以对基础数据进行维护。(4)系统运行在 Windows 平台下,需要有良好的

18、图形用户界面。(5)系统具有良好的可扩展性,良好的可移植性。3.2.2 分析需求分析需求就是描述系统的需求,通过定义系统中的关键域建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。因此,工资管理系统的需求分析应该是开发人员和用户一起完成的。分析需求的第一步描述工资管理系统的功能,即定义用例,以此确定系统的功能需求。工资管理系统的分析主要涉与规格说明的阅读和分析,需要和工资管理系统潜行讨论。. . . . 2 / 56工资管理系统的角色是管理员和公司员工。公司员工即普通用户可以对系统中的各个部分进行查询。管理员登陆时有权限限制的,普通用户是不可登陆的。他可以对用户信息

19、进行添加、修改、查询、删除等,还可以对系统中的其他信息进行管理。3.2.3 可行性分析(1) 技术可行性分析技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,作为计算机软件开发与技术专业的学生,经过几年的学习,在数据库和编程方面都有一定的基础。所以对于这个系统的开发还是有能力做好的。我们掌握了数据库与其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护与局域网的组成有了深刻的认识与一定的动手实践能力。从一定程度上具备了开发一个小型系统的能力。(2) 经济可行性主要从对项目的经济上进行分析评价,一

20、方面是支出的费用,另一方面是取得的收益。我们这个是一个小型的公司工资管理系统,从投入的人力,财力与物力来讲是非常之小的,只要有电脑就可以了。从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作,可以给工资管理提高一个层次。(3) 运行可行性不同的企业正在迅猛发展,而且在企业中各个公司的员工流动性越来越大,所以工资管理系统在公司起到了极其重要的作用。随着计算机硬件的快速发展,计算机的价格在不断地降低,工资管理系统对客户端要求极低,只需要有一个浏览器能上网就能进行信息的查询。网络的越来越普与,人们都喜欢上网查询信息既方便又快捷。因此系统在实践上具备了可行性。(4) 法律可行性本系

21、统纯为私人设计,在开发过程中没有涉与合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。由此可知,工资管理系统在市场上具有可行性。3.3 设计思想本系统开发设计思想有以下几点:(1)充分利用现有资源,提高系统开发水平和应用效果的目的。(2)系统应符合管理人员的具体要求,满足日常的管理工作需要,而且要达到使用中的直观、快捷、实用、安全、稳定等要求。(3)系统采用模块化的程序设计方法,既便于系统功能的添加、修改等。. . . . 3 / 56(4)系统应具备数据库维护功能,与时根据用户需求进行数据的添加、删除修改等功能。3.4 系统功能结构图针对实际生活中工资管理的需要,我们组的公司工资

22、管理系统能够实现的主要功能模块如下: 用户管理模块:制定用户的管理级别,管理级别分为管理员和普通用户两类。他们的操作权限不同,管理员是公司的管理员,可以对系统进行一切操作,包含添加用户、修改用户信息、修改口令等。普通用户只能进行信息查询。人员信息管理模块:实现对员工基本信息的添加、修改、删除、查询等。按照公司规定对员工进行管理。部门信息管理模块:实现对部门的信息添加、修改、删除、查询等。工资信息管理模块:实现工资表的生成、个人工资查询、工资修改、工资结算、工资统计以与工资表打印等功能。其中按月生成工资表,保存在数据库中。而工资标准的依据恰好与员工的基本信息相一致,形成对应关系。工资管理系统的组

23、成与系统功能结构图,如图 3.1 所示。图 3.1 系统功能图工资管理系统用户管理员工管理部门管理工资管理帮助用户信息员工信息查询添加员工信息部门信息添加部门信息工资查询添加工资信息关于注销. . . . 4 / 563.5 组分工我们组的组分工,如表 3.1 所示。表 3.1 组分工明细表任务成绩组长泉主要负责主登陆界面、主功能界面和退出界面的实现。用户管理功能的实现包括用户信息添加、修改、删除与数据库的连接。帮助功能。报告第 4 部分的撰写与报告修改整理。王丹主要负责工资管理,包括工资信息的添加、修改、查询、删除功能的实现。报告第 5 部分、摘要的撰写。甘霖主要负责人员管理,包括人员信息的

24、添加、修改、查询、删除功能的实现。报告第 3 部分、结论的撰写。组员芳主要负责部分管理,包括部门信息的添加、修改、查询、删除功能的实现。报告第 1、2部分、致的撰写。. . . . 5 / 56. . . . 6 / 56第 4 章 数据库设计4.1 数据库需求分析需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。因此,数据库结构设计的一个非常重要的阶段就是数据库需求分析阶段。在这个阶段主要是收集基本数据以与数据处理流程,为以后进一步设计打下基础。需求分析主要解决两个问题

25、:容要求:调查应用系统用户所操作的数据,决定的数据库中存储什么数据。处理要求:调查应用系统用户要求对数据进行什么样的处理,处理数据库中的各种数据之间的关系如何。解决这两个问题的时候,程序设计人员需要向应用系统的用户做详细调查,保证信息收集的完整性,否则有可能后面所做的所有工作都白白浪费。工资管理系统,包括系统功能设计、工资管理数据库与数据表的创建、创建系统启动和操作的各个界面、以与各个子系统的界面设置与功能实现等容,主要实现对企业工资管理信息的规化、系统化的管理。通过各方面的调查和分析,工资管理系统需要实现的主要功能如下:(1)提供用户登陆、用户查询功能(2)提供员工信息添加、查询、删除功能(

26、3)提供部门信息查询、添加、删除等功能(4)提供工资信息查询、添加、修改、删除等功能(5)提供管理员对系统的管理功能4.2 数据流图从硬件方面来说,数据流图(Data Flow Diagram,DFD)是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中的流动和处理情况。数据流图是结构系统分析的主要工具,它表示了系统部信息的流向,并表示了系统的逻辑处理的功能,是一种功能模型。数据流图具体功能分析如下:数据源点和数据终点:数据源点和数据终点用方框表示,它是系统之外的实体,可以是人、事、物、部门或其他系统。加工(数据处理变换):加工用圆框表示,是对数据进行处理的逻辑单元,它接受若干输入数据流

27、,通过加工,部产生规定的输出数据流。数据流:数据流用带数据流标识的箭头表示,表示系统处理的数据对象和数据流动的方向。数据流的方向可以是:从一加工流向另一加工、从加工流向. . . . 7 / 56部门职工招聘工资登记注册录取信息职工基本表审核计算实际工资工资表部门信息用户用户表 动态维护维护指令录入信息用户查询用户名密码查询结果录入信息工资表职工查询查询信息部门号职工名职工编号负则操作提供信息职工分配工资用户管理工资计算进行管理录入信息进行分配领取工资获得信息工资发放数据存储或数据存储流向加工、从源点流向加工或从加工流向终点。数据存储文件:数据存储文件在数据流图中起着保存数据的作用,它可以是数

28、据库、文件或任何其它形式,指向存储的数据流可理解为数据写入,从存储引出的数据流可理解为数据读出。公司工资管理系统数据流图如图 4.1 所示。图 4.1 系统数据流图4.2 数据字典从软件方面来说,需要安装 JDK 和 Web 服务器以与数据库管理系统数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字. . . . 8 / 56典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑容。数据项数据项是不可再分的数据单位。可以用关系规化理论为指导,用数据依赖的概念分析和表示数据项之间的联系。即按实际语义,

29、写出每个数据项之间的数据依赖,它们是数据库逻辑设计阶段数据模型优化的依据。对数据项的描述通常包含以下容:数据项描述=数据项名,数据项含义说明,别名,数据类型,长度对于本系统所包含的各个数据项的具体描述如表 4.1 至表 4.4 所示。表 4.1 管理员信息的数据项数据项名别名数据类型长度数据项含义说明备注管理员UserVCHAR8管理员的唯一标识主键,值不为空密码UpasswordVCHAR15登录密码值不为空表 4.2 员工信息的数据项数据项名别名数据类型长度数据项含义说明备注员工编号PnoVCHAR8员工的唯一标识主键,值不为空员工PnameVCHAR8员工的值不为空性别SexVCHAR4

30、员工的性别可有可无年龄AgeVCHAR4员工的年龄可有可无职位PostVCHAR8员工的职位可有可无所在部门DepartmentVCHAR8员工所在部门可有可无工资WageVCHAR10员工工资可有可无工资类型WagetypeVCHAR8员工工资类型可有可无表 4.3 部门信息的数据项数据项名别名数据类型长度数据项含义说明备注部门编号Dtmt-idVCHAR10部门信息唯一标识主键,值不为空 部门名称Dtmt-nameVCHAR10部门名称值不为空表 4.4 工资信息的数据项数据项名别名数据类型长度数据项含义说明备注工资号noVCHAR8员工的唯一标识主键,值不为空工资类型WagetypeVC

31、HAR4工资类型可有可无基本工资BaswageVCHAR4员工的基本工资可有可无奖金BonusVCHAR8员工的奖金可有可无应减工资MinwageVCHAR8员工所可有可无. . . . 9 / 56实际工资FactwageVCHAR10员工工资可有可无工资日期WagedateVCHAR8员工工资日期可有可无数据结构数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下容:数据结构描述=数据结构名,含义说明,组成:数据项或数据结构本系统的数据结构描述,如表 4.5 所示。表 4.5 数据

32、结构说明数据结构名含义说明组成管理员信息管理员的基本信息管理员、密码员工信息员工的基本信息员工编号、 、性别、年龄、职位、所在部门、工资、工资类型部门信息部门的基本信息部门编号、部门名称工资信息工资信息员工编号、基本工资、奖金、应减工资、实际工资等数据流数据流是数据结构在系统传输的路径。对数据流的描述通常包括以下容:数据流描述=数据流名,说明,数据流来源,数据流去向,组成:数据结构其中, “数据流来源”是说明该数据流来自哪个过程;“数据流去向”是说明该数据流将到哪个过程去。数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以手工文档或手工凭单,也可以是计算机文档。本系

33、统中对数据存储的具体描述。处理过程处理过程的具体处理逻辑一般用判定表或判定树来描述。数字字典中只需要描述处理过程的说明信息,通常包括以下容:处理过程描述=处理过程名,说明,输入:数据流,输出:数据流。4.3 概念结构设计4.3.1 概念结构设计方法设计概念结构通常有四类方法如下: 自顶向下。即首先定义全局概念结构的框架,然后逐步细化;. . . . 10 / 56部门员工工资管理员属于拥有管理mn11n1部门编号部门名称所在部门员工号密码工资工资类型性别年龄职位姓名基本工资工资日期奖金实际工资应减工资密码姓名工资号 自底向上。即首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构

34、; 逐步扩。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构; 混合策略。即将自顶向下和自地向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成自底向上策略中设计的各局部概念结构。4.3.2 概念模型设计在概念模型设计中,主要是对 E-R 图进行设计。在 E-R 图设计中,首先要设计分 E-R 图,然后再对总 E-R 图进行设计。由于各个局部所面向的问题不同,这就导致各个分 E-R 图之间必定会存在许多不一致的问题,称之为冲突。因此合并分 E-R 图并不能简单地将各个分 E-R 图画到一起,而是必须合理消除各分E-R 图中的不一致

35、,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型,是合并 E-R 图的主要工作和关键。由分 E-R 图合成总体 E-R 图的规则,画出完整的工资管理系统的完整 E-R 图,如图 4.2 所示。图 4.2 完整 E-R 图. . . . 11 / 564.4 逻辑结构设计4.3.2 逻辑结构设计思想从理论上讲,设计逻辑结构应该选择最适于相应概念结构的数据模型,然后支持这种数据模型的各种 DBMS 进行比较,从中选出最合适的 DBMS。但实际情况往往是已给定了某种 DBMS,设计人员没有选择的余地。目前 DBMS 产品一般支持关系、网状、层次三种模型中的某一种,对某一种数据模型,各个

36、机器系统又有许多不同的限制,提供不同的环境与工具。所以设计逻辑结构时一般要分三步进行,如图 4.3 所示:将概念结构转换为一般的关系、网状、层次模型;将转换来的关系、网状、层次模型向 DBMS 支持下的数据模型转换;对数据模型进行优化。图 4.3 逻辑结构设计时的三个步骤逻辑结构设计采用关系模型转换概念结构,将 E-R 图依照规则转换为关系模型,为了进一步提高数据库应用系统的性能,再将转换后的关系模型进行优化,确定是否要对某些模式进行合并或分解,为物理设计提供最优的处理。 4.3.3 E-R 图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。E-R 图则是由实体,实体的属性和实体间的联

37、系三个要素组成。所以将 E-R 图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:(1)实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性就是关系模式的属性,实体的码就是关系的码。(2)联系类型的转换,根据不同的情况做不同的处理。概念结构基本 E-R 图转换规则DBMS的特点和限制优化方法一般数据模型关系、网状、层次特定的 DBMS 支持下的数据模型优化的数据模型. . . . 12 / 56若实体间的联系是 1:1 的,可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以

38、与联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。若实体间的联系 1:N 的,可以转换为一个独立的关系模式,也可以与 N 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以与联系本身的属性均转换为关系的属性,而关系的码为 N 端实体的码。如果与 N 端对应的关系模式合并,则将一方的码传到多方去作为多方的一个非主属性。若实体间的联系是 M:N 的,可转换为一个独立的关系模式,与该联系相连的各实体的码以与联系本身的属性均转换为关系的属性,而关系的码为

39、各实体码的组合。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以与联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。(3)依照该规则将工资管理系统的 E-R 图转换为关系模型如下:将每一个实体转换成一个关系模式(实体的属性就是关系的属性,实体的码就是关系的码)带下划线的为主码。管理员(,密码)管理(员工号, )员工(员工号, ,性别,所在部门,年龄,密码,职位,工资,工资类型)工资(工资号,基本工资,奖金,应减工资,实际工资,工资日期)拥有(员工号,工资号)部门(部门编号,部门名称)属于(员工号,部门编号). . . . 13 / 56第 5

40、 章 系统详细模块设计与实现5.1 用户登录与主界面工资管理系统第一个界面就是用户登录界面,该界面是用户想要登录本系统必须有的步骤,当运行时,弹出界面,该界面登录时用户受权限限制,有管理员登陆和员工登陆。员工登录时只有里面各项的查询功能。管理员则有对里面各项的一切操作功能。这里介绍管理员的登录与管理员的其他功能。按钮选中管理员后,输入正确的管理员用户名和密码后,按登录按钮就可进入系统主界面。如果用户名或密码输入错误会出相应的提示信息。运行时登录界面,如图 5.1 所示。图 5.1 登陆界面用户登录的代码如下:public login1() /登陆界面setTitle(用户登录);setSize

41、(WIDTH, HEIGHT);setLocation(screenWidth - WIDTH) / 2, (screenHeight - HEIGHT) / 2);setLayout(new BorderLayout();JPanel check = new JPanel();check.setBackground(new Color(230,235,250);caozuo = new ButtonGroup();r1 = new JRadioButton(管理员, true);r1.setBackground(new Color(230,235,250);caozuo.add(r1);r2

42、 = new JRadioButton(职工, false);caozuo.add(r2);r2.setBackground(new Color(230,235,250);check.add(r1);. . . . 14 / 56check.add(r2);add(check, BorderLayout.NORTH);JPanel p1 = new JPanel();p1.setLayout(new BorderLayout();add(p1, BorderLayout.CENTER);JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPan

43、el p4 = new JPanel();p1.add(p2, BorderLayout.NORTH);p1.add(p3, BorderLayout.CENTER);p1.add(p4, BorderLayout.SOUTH);p2.setBackground(new Color(230,235,250);p3.setBackground(new Color(230,235,250);p4.setBackground(new Color(230,235,250);JLabel lno = new JLabel(用户名:);JLabel lpassword = new JLabel(密 码:

44、);tname = new JTextField(10);tpassword = new JPasswordField(10);utton enter = new utton(登录);utton exit = new utton(退出);p2.add(lno);p2.add(tname);p3.add(lpassword);p3.add(tpassword);p3.setPreferredSize(new Dimension(300, 30);p4.setPreferredSize(new Dimension(300, 50);p4.add(enter); p4.add(exit);this.

45、setVisible(true);enter.addActionListener(this);exit.addActionListener(this);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););public void actionPerformed(ActionEvent e) /验证登录信息正确性. . . . 15 / 56ResultSet rs = null;sqlconn sqlconn = new sqlconn();name = t

46、name.getText();String password = tpassword.getText();String sql = ;try if (e.getActionCommand().equals(登录)if (password.length() != 0)if (r1.isSelected() sql = Select * from users where name= +name+ and password= + password + ;type=0;elsesql = Select * from employees where name= + name+ and password=

47、 + password + ;type=1;rs = sqlconn.getRs(sql);if (rs.next() if (type = 0)mainFrame A = new mainFrame(); A.setVisible(true);else if (type = 1)mainFrame1 B=new mainFrame1(); B.setVisible(true);this.dispose(); else JOptionPane.showMessageDialog(null,用户名称与密码有误,请重新输入!);. . . . 16 / 56tname.setText();tpas

48、sword.setText(); elseJOptionPane.showMessageDialog(null, 密码不能为空,请正确输入!);else if (e.getActionCommand().equals(退出) this.dispose(); catch (SQLException ex) System.out.println(sql error!);public static void main(String args) login1 log= new login1();当在登陆界面中输入正确信息,按“登录”按钮登陆成功后,则开始调用主界面函数,进入系统主界面,主界面中有用户管

49、理、人员管理、部门管理、工资管理、帮助五个菜单选项,选择某菜单,则就进入对应的功能管理部分,主界面如图 5.2 所示。. . . . 17 / 56图 5.2 系统主界面系统主界面的核心代码如下:class mainFrame extends Frame implements ActionListener/实现功能的主界面Image img;/菜单条式菜单MenuBar mb=new MenuBar();Menu usersM=new Menu(用户管理);Menu employeeM=new Menu(人员管理);Menu dtmtM=new Menu(部门管理);Menu wageM=ne

50、w Menu(工资管理);Menu helpM=new Menu(帮助);MenuItem uInfoMi =new MenuItem(用户信息);/下拉菜单中的选项MenuItem emQueryMi=new MenuItem(员工信息查询);MenuItem addEmMi=new MenuItem(添加员工信息);MenuItem wQueryMi=new MenuItem(工资查询);MenuItem addWageMi=new MenuItem(添加工资信息);MenuItem dtmtInfoMi=new MenuItem(部门信息);MenuItem addDtmtMi=new

51、MenuItem(添加部门信息);MenuItem aboutMi=new MenuItem(关于.);MenuItem logoutMi=new MenuItem(注销);/弹出式菜单PopupMenu popM=new PopupMenu();MenuItem aveWageMi=new MenuItem(平均工资);public mainFrame()setTitle(欢迎使用工资管理系统.);setSize(800,507);setLayout(null);setBackground(Color.LIGHT_GRAY);img=getToolkit().getImage(getClas

52、s().getResource(xy.jpg);/设置主窗口中的图片 Dimension scr=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frm=this.getSize(); setLocation(int)(scr.getWidth()-frm.getWidth()/2, (int)(scr.getHeight()-frm.getHeight()/2-40);mb.add(usersM);/加入选项mb.add(employeeM);mb.add(dtmtM);mb.add(wageM);. . . . 18 / 56m

53、b.add(helpM);usersM.add(uInfoMi);employeeM.add(emQueryMi);employeeM.add(addEmMi);wageM.add(wQueryMi);wageM.add(addWageMi);dtmtM.add(dtmtInfoMi);dtmtM.add(addDtmtMi);helpM.add(aboutMi);helpM.add(logoutMi);popM.add(aveWageMi);aveWageMi.addActionListener(this);this.add(popM);this.addMouseListener(new M

54、ouseAdapter()/鼠标按键松开事件弹出菜单public void mouseReleased(MouseEvent me)/检查鼠标事件是否由弹出菜单引发if(me.isPopupTrigger()/将弹出菜单显示在用户鼠标单击的位置popM.show(Component)me.getSource(),me.getX(),me.getY();,计算机文网 ,);usersM.addActionListener(this);/给下拉式菜单加入事件监听employeeM.addActionListener(this);wageM.addActionListener(this);dtmtM

55、.addActionListener(this);helpM.addActionListener(this);this.setMenuBar(mb);setVisible(true);/添加窗口关闭按钮的关闭功能addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)confirmExit conE =new confirmExit(););public void paint(Graphics g) g.setClip(new Rectangle2D.Float(0,0,800,600);. .

56、. . 19 / 56 g.drawImage(img,0,0,this);/将图片加入到窗口中 public void actionPerformed(ActionEvent ae)/事件监听if(ae.getActionCommand().equals(用户信息)userInfo user1=new userInfo();user1.show();if(ae.getActionCommand().equals(员工信息查询)uInfoQue uiq=new uInfoQue();uiq.show();if(ae.getActionCommand().equals(添加员工信息)addEmI

57、nfo aei=new addEmInfo();aei.show();if(ae.getActionCommand().equals(工资查询)wageQuery wq=new wageQuery();wq.show();if(ae.getActionCommand().equals(添加工资信息)addWage aw=new addWage();/实例化对应的对象,为函数调用建立接口aw.show();if(ae.getActionCommand().equals(部门信息)dtmtInfoQue diq=new dtmtInfoQue();diq.show();if(ae.getActio

58、nCommand().equals(添加部门信息)addDtmt ad=new addDtmt();ad.show();if(ae.getActionCommand().equals(关于.)about ab=new about();ab.show();if(ae.getActionCommand().equals(注销)logFrame logf1=new logFrame();. . . . 20 / 56dispose();5.2 用户管理功能实现用户管理功能是管理员对登录用户进行管理,包括对用户账号的添加、修改、删除等功能。登录用户信息的添加,输入要添加的账号和密码,按添加按钮就可以成

59、功添加。例如:添加账户为“liuquan”,密码为“123”如图 5.3所示。图 5.3 添加用户信息修改用户信息,将账户为“liuquan”的密码改为“liuquan” ,如图 5.4 所示。. . . . 21 / 56图 5.4 修改用户信息删除用户“liuquan”的信息,弹出确认对话框,按“是”确认后即删除。如图 5.5 所示。图 5.5 删除用户信息用户管理信息的功能实现的核心代码如下: public userInfo() super(系统用户管理); setSize(410,250); setResizable(false); this.setLocationRelativeTo

60、(this.getParent();/设置显示的位置 setLayout(null); public void initChoice() try conn=new sqlconn();/连接数据库 sql=select name from users;/sql 语句 rs=conn.getRs(sql); while(rs.next() userChoice.addItem(rs.getString(name); conn.dbClose(rs);. . . . 22 / 56 conn=null; catch(Exception e) public void actionPerformed(

温馨提示

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

评论

0/150

提交评论