J a v a
课 程 设 计 书
学院 计算机学院
专业 计算机科学与技术
班级 09级计科7班
题目 工资管理系统
教师 xxx 老师
学生
组内分工明细表
组长
姓名 黄晓翼
任务
主要负责主登陆界面、主功能界面和退出界面的实现。用户管理功能的实现包括用户信息添加、修改、删除及数据库的连接。帮助功能。报告第1、2、5部分的撰写及报告修改整理。
组员
陈德珍
主要负责需求分析、需求设计、设计思想、系统功能结构图。报告第2、3部分、摘要的撰写。
马超群
主要负责部分管理,数据字典、概念/逻辑结构设计功能的实现。报告第1、4部分、的撰写。
四川理工学院课程设计报告
目 录
摘 要 .............................................................................................................................. 2 第1章 绪 论 ................................................................................................................ 3 1.1 项目背景 ............................................................................................................. 3 1.2 项目开发环境 ..................................................................................................... 3 1.2.1 硬件环境 ....................................................................................................... 3 1.2.2 软件环境 ....................................................................................................... 3 第2章 相关技术 .......................................................................................................... 4 2.1系统所涉及到的语言 .......................................................................................... 4 2.1.2 Java ................................................................................................................ 4 2.2开发工具 .............................................................................................................. 4 2.2.1 MyEclipse ...................................................................................................... 4 2.2.1 Access ............................................................................................................ 5 第3章 系统分析 .......................................................................................................... 6 3.1需求概述 .............................................................................................................. 6 3.2需求分析 .............................................................................................................. 6 3.2.1 理解需求 ....................................................................................................... 6 3.2.2 分析需求 ....................................................................................................... 6 3.3系统功能结构图 .................................................................................................. 7 第4章 数据库设计 ...................................................................................................... 8 4.1数据库需求分析 .................................................................................................. 8 4.2数据流图 .............................................................................................................. 8 4.3数据字典 .................................................................................................................................. 10 4.4 概念结构设计 ................................................................................................... 11 4.4.1概念结构设计方法 ...................................................................................... 12 4.4.2概念模型设计 ............................................................................................ 112 4.5 逻辑结构设计 ................................................................................................... 13 4.5.1逻辑结构设计思想 .......................................................................................... 13 4.5.2 E-R图向关系模型的转换 ................................................................................. 14 第5章 系统详细模块设计与实现 ............................................................................ 15
5.1
用户登录界面 ................................................................................................. 15 5.2主界面 ............................................................................................................. 16 结论 .............................................................................................................................. 22 致谢 .............................................................................................................................. 23 参考文献 ...................................................................................................................... 24
1
四川理工学院课程设计报告
摘 要
我们小组的课程设计是某公司的工资管理系统。在这个计算机快速发展的世界里,计算机为信息处理提供了物美价廉的手段,对于推动我国管理信息处理现代化起到了重要作用。工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,既方便又快捷地完成员工工资的发放。
我们组在课程设计过程中根据设计中的需求及对工资管理系统采用了模块化的设计思想,在机房我们在Windows XP操作系统环境下,采用myeclipse7作为开发工具,主要连接Access数据库来实现公司的工资管理系统的主要功能。在设计过程中,我们首先小组首先对整体的思路进行分析,然后进行分工。对数据库和类进行设计,实现了工资管理系统的功能。其功能主要包括公司用户管理、人员管理、部门管理、工资管理等功能。
本系统运用了数据库技术,可以大量的存储信息。又实现了人机交互,不但缩短工资发放的时间,又避免了传统时代的人工计算错误。总而言之,该系统在工资管理方面考虑周全,功能齐全,极大地提高了公司对员工工资管理的效率。
关键词 工资管理系统,Access数据库,Java
2
四川理工学院课程设计报告
第1章 绪论
1.1 项目背景
借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。党和根据知识经济时代的特点,对国民经济建设提出了“用信息化带动工业化”的指导思想。对企业而言,全面开发和应用计算机管理信息系统就是近期不能回避的问题。在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线”,因此人事管理是企业的计算机管理信息系统重要组成部分。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。工资管理信息系统的实现可以减轻比较繁琐的手工工资管理。同时计算机具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低、打印方便等。这些优点能够极大地提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此工资管理系统在企业中占重要地位。
现在应用在大中型企业的管理信息系统中,几乎都包括了工资管理模块。有些环境中是由作为大型ERP软件中的一个模块引进的,有些是作为企业的财务系统的一部分。这些根据规范的西方的管理制度设计的工资管理软件,在很多时候还不能完全解决中国特色的中小企业的问题,我们组介绍的工资管理系统就是要为这些具有中国特色的中小企业解决他们在工资管理方面的问题。本系统功能齐全,实现了用户管理、人员管理、部门管理、工资管理。并在各个功能下面实现了查询、添加、修改、删除等功能,使系统功能更加完善。更适合企业管理人员对员工工资进行管理。
1.2 项目开发环境
1.2.1 硬件环境
PC机 1.2.2 软件环境
(1) 操作系统:Windows XP (2) 开发工具:MyEclipse 7.0 (3) 数据库:Access
3
四川理工学院课程设计报告
第2章 相关技术
2.1系统所涉及到的语言
2.1.1 Java语言
Java的诞生是对传统计算机模式的挑战,对计算机软件开发行业产生了深远的影响: (1) 软件4A目标要求软件能达到任何人在任何地方在任何时间对任何电子设备都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等分布式计算模式的需求。
(2) 基于构建开发方法的崛起,引出了CORBA国际标准软件体系结构和多层应用体系框架。在此基础上形成了Java.2平台和.NET平台两大派系,推动了整个IT业的发展。
(3) 对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商,服务器软件以及咨询服务商出现。企业必须重塑自我,B2B的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长,新的商机,新的管理。
(4) 对软件开发带来了新的,重视使用第三方构件集成,利用平台的基础设施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创作,责任,诚信是人才的基本素质。
总之,目前以看到了Java对信息时代的重要性,未来还会不断发展,Java在应用方面将会有更广阔的前景。
2.2开发工具
2.2.1 MyEclipse
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
4
四川理工学院课程设计报告
Genuitec发布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EE IDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle数据库开发,MyEclipse 5.0继续为业界提供全面的产品。
Genuitec 总裁Maher Masri 说,“今天,MyEclipse已经提供了意料之外的价值。其中的每个功能在市场上单独的价格都比MyEclipse要高。但是,我们承诺为顾客提供全面并且可以买得起的解决方案。按照这个传统,我们的顾客将继续享受年度订购活动的好处,该活动提供了所有发布功能的入口以及伴随MyEclipse5.0一起的专业技术支持”。 2.2.2 Access
Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是Microsoft Office的成员之一。其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。另外,Access还是c语言的一个函数名和一种交换机的主干道模式。
Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在Internet Information Services运行.比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server。
Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。
Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
5
四川理工学院课程设计报告
第3章 系统分析及组内分工
3.1需求概述
工资管理系统系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。因此,工资管理系统为公司和员工带来极大的方便。通过我们组员之间的分析与研究,要求系统具有如下功能:
(1) 提供用户登录、用户查询功能员工考勤情况表
(2) 员工工种情况表,反映员工的工种、等级,基本工资等信息
(3) 员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等
(4) 员工基本信息表
(5) 员工月工资表
3.2需求分析
3.2.1 理解需求
工资管理系统在用户登录时分两个部分:管理员和普通用户。普通用户可以进入用户界面查询各个信息,但只有查询功能。管理员的权限除了普通用户的权限外,还有对各个部分的信息进行添加、修改、删除等功能。所有的功能管理员都能实现。
下面是系统所要达到的几条要求: (1) 要求系统准确的记录各种信息。 (2) 系统要提供丰富的查询功能。 (3) 系统可以对基础数据进行维护。
(4) 系统运行在Windows平台下,需要有良好的图形用户界面。 (5) 系统具有良好的可扩展性,良好的可移植性。 3.2.2 分析需求
分析需求就是描述系统的需求,通过定义系统中的关键域建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。因此,工资管理系统的需求分析应该是开发人员和用户一起完成的。
分析需求的第一步描述工资管理系统的功能,即定义用例,以此确定系统的功能需求。工资管理系统的分析主要涉及规格说明的阅读和分析,需要和工资管理系统
工资管理系统的角色是管理员和公司员工。公司员工即普通用户可以对系统中的各个部分进行查询。管理员登陆时有权限的,普通用户是不可登陆的。他可
6
四川理工学院课程设计报告
以对用户信息进行添加、修改、查询、删除等,还可以对系统中的其他信息进行管理。
本系统开发设计思想有以下几点:
(1) 充分利用现有资源,提高系统开发水平和应用效果的目的。
(2) 系统应符合管理人员的具体要求,满足日常的管理工作需要,而且要达到使用中的直观、快捷、实用、安全、稳定等要求。
(3) 系统采用模块化的程序设计方法,既便于系统功能的添加、修改等。 (4) 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除修改等功能。
3.3系统功能结构图
针对实际生活中工资管理的需要,我们组的公司工资管理系统能够实现的主要功能模块如下: 用户管理模块:制定用户的管理级别,管理级别分为管理员和普通用户两类。他们的操作权限不同,管理员是公司的管理员,可以对系统进行一切操作,包含添加用户、修改用户信息、修改口令等。普通用户只能进行信息查询。
人员信息管理模块:实现对员工基本信息的添加、修改、删除、查询等。按照公司规定对员工进行管理。
部门信息管理模块:实现对部门的信息添加、修改、删除、查询等。
工资信息管理模块:实现工资表的生成、个人工资查询、工资修改、工资结算、工资统计以及工资表打印等功能。其中按月生成工资表,保存在数据库中。而工资标准的依据恰好与员工的基本信息相一致,形成对应关系。
工资管理系统的组成及系统功能结构图,如图3.1所示。
工资管理系统
用户管 理员工管理部门管理帮助用户信息员工基本表员工月工资表员工工种表员工津贴表关于注销
图3.1系统功能图
7
四川理工学院课程设计报告
第4章 数据库设计
4.1数据库需求分析
需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。因此,数据库结构设计的一个非常重要的阶段就是数据库需求分析阶段。在这个阶段主要是收集基本数据以及数据处理流程,为以后进一步设计打下基础。需求分析主要解决两个问题:
内容要求:调查应用系统用户所操作的数据,决定的数据库中存储什么数据。 处理要求:调查应用系统用户要求对数据进行什么样的处理,处理数据库中的各种数据之间的关系如何。
解决这两个问题的时候,程序设计人员需要向应用系统的用户做详细调查,保证信息收集的完整性,否则有可能后面所做的所有工作都白白浪费。 工资管理系统,包括系统功能设计、工资管理数据库与数据表的创建、创建系统启动和操作的各个界面、以及各个子系统的界面设置及功能实现等内容,主要实现对企业工资管理信息的规范化、系统化的管理。
通过各方面的调查和分析,工资管理系统需要实现的主要功能如下: (1) 提供用户登陆、用户查询功能
(2) 提供员工信息添加、查询、删除功能
(3) 提供部门信息查询、添加、删除等功能
(4) 提供工资信息查询、添加、修改、删除等功能 (5) 提供管理员对系统的管理功能
4.2数据流图
从硬件方面来说,数据流图(Data Flow Diagram,DFD)是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中的流动和处理情况。数据流图是结构系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能,是一种功能模型。
数据流图具体功能分析如下: 数据源点和数据终点:数据源点和数据终点用方框表示,它是系统之外的实体,可以是人、事、物、部门或其他系统。
加工(数据处理变换):加工用圆框表示,是对数据进行处理的逻辑单元,它接受若干输入数据流,通过加工,内部产生规定的输出数据流。
数据流:数据流用带数据流标识的箭头表示,表示系统处理的数据对象和数据流动的方向。数据流的方向可以是:从一加工流向另一加工、从加工流向数据存储或数据存储流向加工、从源点流向加工或从加工流向终点。
数据存储文件:数据存储文件在数据流图中起着保存数据的作用,它可以是
8
四川理工学院课程设计报告
数据库、文件或任何其它形式,指向存储的数据流可理解为数据写入,从存储引出的数据流可理解为数据读出。公司工资管理系统数据流图如图4.1所示。
工资表 部门号职 工职 编工职工基本表部门信息部门号 名
录入信息招聘职工查询提供信息获得信息职工查询信息登记注册录取信息用户管理工资计算审核计算进行管理用户维护指令查询结果负则操作工资发放工资进行分配录入信息实际工资动态维护用户查询用户名密码录入信息分配工资用户表 领取工资工资表职工图4.1系统数据流图
9
四川理工学院课程设计报告
4.3数据字典
从软件方面来说,需要安装JDK和Web服务器以及数据库管理系统数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。 ⑴数据项
数据项是不可再分的数据单位。可以用关系规范化理论为指导,用数据依赖的概念分析和表示数据项之间的联系。即按实际语义,写出每个数据项之间的数据依赖,它们是数据库逻辑设计阶段数据模型优化的依据。对数据项的描述通常包含以下内容:
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度} 对于本系统所包含的各个数据项的具体描述如表4.1至表4.4所示。
表4.1管理员信息的数据项
数据项名 管理员姓名
密码
别名 User Upassword
数据类型 VCHAR VCHAR
长度 8 15
数据项含义说明 管理员的唯一标识
登录密码
备注 主键,值不为空 值不为空
表4.2员工信息的数据项
数据项名 员工编号 员工姓名 性别 年龄 职位 所在部门 工资 工资类型
别名 Pno Pname Sex Age Post Department Wage Wagetype
数据类型 VCHAR VCHAR VCHAR VCHAR VCHAR VCHAR VCHAR VCHAR
长度 8 8 4 4 8 8 10 8
数据项含义说明 员工的唯一标识 员工的姓名 员工的性别 员工的年龄 员工的职位 员工所在部门 员工工资 员工工资类型
备注 主键,值不为空 值不为空 可有可无 可有可无 可有可无 可有可无 可有可无 可有可无
表4.3部门信息的数据项
数据项名 部门编号 部门名称
别名 Dtmt-id Dtmt-name
数据类型 VCHAR VCHAR
长度 10 10
数据项含义说明 部门信息唯一标识
部门名称
备注 主键,值不为空 值不为空
表4.4工资信息的数据项
数据项名 工资号 工资类型
别名 no Wagetype
数据类型 VCHAR VCHAR
长度 8 4
10
数据项含义说明 员工的唯一标识 工资类型
备注 主键,值不为空 可有可无
四川理工学院课程设计报告 基本工资 奖金 应减工资 实际工资 工资日期
Baswage Bonus Minwage Factwage Wagedate
VCHAR VCHAR VCHAR VCHAR VCHAR
4 8 8 10 8
员工的基本工资 员工的奖金 员工所 员工工资 员工工资日期
可有可无 可有可无 可有可无 可有可无 可有可无
⑵ 数据结构
数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 本系统的数据结构描述,如表4.5所示。
表 4.5 数据结构说明
数据结构名 管理员信息 员工信息 部门信息 工资信息
含义说明 管理员的基本信息 员工的基本信息 部门的基本信息
工资信息
组成 管理员姓名、密码
员工编号、姓名、性别、年龄、职位、所
在部门、工资、工资类型 部门编号、部门名称
员工编号、基本工资、奖金、应减工资、
实际工资等
⑶ 数据流
数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构}} 其中,“数据流来源”是说明该数据流来自哪个过程;“数据流去向”是说明该数据流将到哪个过程去。
⑷ 数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以手工文档或手工凭单,也可以是计算机文档。本系统中对数据存储的具体描述。
⑸ 处理过程
处理过程的具体处理逻辑一般用判定表或判定树来描述。数字字典中只需要描述处理过程的说明信息,通常包括以下内容:
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}}。
11
四川理工学院课程设计报告
4.4 概念结构设计
4.4.1概念结构设计方法
设计概念结构通常有四类方法如下:
⑴ 自顶向下。即首先定义全局概念结构的框架,然后逐步细化;
⑵ 自底向上。即首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构;
⑶ 逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;
⑷ 混合策略。即将自顶向下和自地向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成自底向上策略中设计的各局部概念结构。 4.4.2概念模型设计
在概念模型设计中,主要是对E-R图进行设计。在E-R图设计中,首先要设计分E-R图,然后再对总E-R图进行设计。由于各个局部所面向的问题不同,这就导致各个分E-R图之间必定会存在许多不一致的问题,称之为冲突。因此合并分E-R图并不能简单地将各个分E-R图画到一起,而是必须合理消除各分E-R图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型,是合并E-R图的主要工作和关键。由分E-R图合成总体E-R图的规则,画出完整的工资管理系统的完整E-R图,如图4.2所示。 部门编号 部门名称
姓名密码管理员m性别管理职位姓名1nn员工1拥有1工资应减工资基本工资奖金年龄部门属于员工号工资工资日期实际工资所在部门密码工资类型工资号图4.2完整E-R图
12
四川理工学院课程设计报告
4.5 逻辑结构设计
4.5.1逻辑结构设计思想
从理论上讲,设计逻辑结构应该选择最适于相应概念结构的数据模型,然后支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。但实际情况往往是已给定了某种DBMS,设计人员没有选择的余地。目前DBMS产品一般支持关系、网状、层次三种模型中的某一种,对某一种数据模型,各个机器系统又有许多不同的,提供不同的环境与工具。所以设计逻辑结构时一般要分三步进行,如图4.3所示:
●将概念结构转换为一般的关系、网状、层次模型;
●将转换来的关系、网状、层次模型向DBMS支持下的数据模型转换; ●对数据模型进行优化。
概念结构 基本E-R图 一般数据模型 关系、网状、层次 特定的DBMS支持下的数据模型 优化的 数据模型 转换规则 DBMS 的特点和 优化方法
图4.3 逻辑结构设计时的三个步骤
逻辑结构设计采用关系模型转换概念结构,将E-R图依照规则转换为关系模型,为了进一步提高数据库应用系统的性能,再将转换后的关系模型进行优化,确定是否要对某些模式进行合并或分解,为物理设计提供最优的处理。
13
四川理工学院课程设计报告
4.5.2 E-R图向关系模型的转换
关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:
(1)实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性就是关系模式的属性,实体的码就是关系的码。
(2)联系类型的转换,根据不同的情况做不同的处理。
若实体间的联系是1:1的,可以转换为一个的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
若实体间的联系1:N的,可以转换为一个的关系模式,也可以与N端对应的关系模式合并。如果转换为一个的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。如果与N端对应的关系模式合并,则将一方的码传到多方去作为多方的一个非主属性。
若实体间的联系是M:N的,可转换为一个的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(3)依照该规则将工资管理系统的E-R图转换为关系模型如下:
将每一个实体转换成一个关系模式(实体的属性就是关系的属性,实体的码就是关系的码)带下划线的为主码。
管理员(姓名,密码) 管理(员工号,姓名)
员工(员工号,姓名,性别,所在部门,年龄,密码,职位,工资,工资类型)
工资(工资号,基本工资,奖金,应减工资,实际工资,工资日期) 拥有(员工号,工资号) 部门(部门编号,部门名称)
14
四川理工学院课程设计报告
属于(员工号,部门编号)
第5章 系统详细模块设计与实现
5.1 用户登录界面
工资管理系统第一个界面就是用户登录界面,该界面是用户想要登录本系统必须有的步骤,当运行时,弹出界面。按钮选中管理员后,输入正确的管理员用户名和密码后,按登录按钮就可进入系统主界面。如果用户名或密码输入错误会出相应的提示信息。运行时登录界面,如图5.1所示。
图5.1登陆界面
界面主要代码如下: public class Login1{ public static void main(String[] args){ Login mf = new Login(); } }
class Login{ JFrame login = new JFrame(); JButton b0 = new JButton(); JButton b1 = new JButton(); JTextField inputtext1 = new JTextField(15); JTextField inputtext2 = new JTextField(15); JLabel l1 = new JLabel(); JLabel l2 = new JLabel(); JLabel l3 = new JLabel();
15
四川理工学院课程设计报告
}
Login(){ login.setTitle(\"用户登录\"); login.setLayout(null); login.setBounds(150,80,320,250); login.setVisible(true); login.add(l3); l3.setBounds(80,-10,100,100); l3.setText(\"工资管理系统\"); l3.setFont(new Font(\"黑体\ login.add(l1); l1.setBounds(50,30,80,80); l1.setText(\"用户名:\"); login.add(inputtext1); inputtext1.setBounds(100,60,100,20); login.add(l2); l2.setBounds(50,60,80,80); l2.setText(\"密 码:\"); login.add(inputtext2); inputtext2.setBounds(100,90,100,20); login.add(b0); b0.setBounds(60,130,60,20); b0.setText(\"登录\"); b0.setMargin(new Insets(0,0,0,0)); login.add(b1); b1.setBounds(130,130,60,20); b1.setText(\"退出\"); b1.setMargin(new Insets(0,0,0,0)); }
16
四川理工学院课程设计报告
5.2 用户登录界面
主要代码如下: //系统主框架类
//导入系统的包 import java.awt.*;
import java.awt.event.*; import javax.swing.*;
//创建主框架类MainFrame
public class MainFrame extends JFrame implements ActionListener { //创建内容面板 JPanel contentPane; //创建菜单栏组件的对象 JMenuBar jMenuBar1=new JMenuBar();//菜单条 JMenu jMenu0=new JMenu(\"系统\");//菜单 JMenuItem jMenuItem0=new JMenuItem(\"退出\");//子菜单 JMenu jMenu1=new JMenu(\"员工管理\"); JMenuItem jMenuItem1=new JMenuItem(\"添加员工\"); JMenuItem jMenuItem2=new JMenuItem(\"修改员工\"); JMenuItem jMenuItem3=new JMenuItem(\"删除员工\"); JMenu jMenu2=new JMenu(\"工资管理\"); JMenuItem jMenuItem4=new JMenuItem(\"添加工资\"); JMenuItem jMenuItem5=new JMenuItem(\"修改工资\"); JMenuItem jMenuItem8=new JMenuItem(\"工资查询\");
17
四川理工学院课程设计报告
JMenu jMenu3=new JMenu(\"员工查询\");
JMenuItem jMenuItem6=new JMenuItem(\"按工号查询\"); JMenuItem jMenuItem7=new JMenuItem(\"按姓名查询\"); JMenu jMenu4=new JMenu(\"帮助\");
JMenuItem jMenuItem9=new JMenuItem(\"互动\"); //创建标签,用于显示信息
JLabel jLabel1=new JLabel(\"工资管理系统\"); JLabel jLabel2=new JLabel(\"2011年7月9日\"); //创建构造方法 public MainFrame() { try{ //关闭框架窗口时的默认事件方法 setDefaultCloseOperation(EXIT_ON_CLOSE); //调用初始化方法 jbInit(); } catch(Exception exception){ exception.printStackTrace(); } }
//界面初始化方法
private void jbInit() throws Exception { //创建内容面板 contentPane =(JPanel) getContentPane(); //设置内容面板的布局为空 contentPane.setLayout(null); //主框架的大小 setSize(new Dimension(400,360)); //主框架的标题 setTitle(\"工资管理小系统\"); //添加事件 jMenuItem0.addActionListener(this); jMenuItem1.addActionListener(this); jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuItem5.addActionListener(this); jMenuItem6.addActionListener(this); jMenuItem7.addActionListener(this); jMenuItem8.addActionListener(this); jMenuItem9.addActionListener(this); //添加菜单条到主框架
18
四川理工学院课程设计报告
setJMenuBar(jMenuBar1); //添加菜单到菜单条 jMenuBar1.add(jMenu0); jMenuBar1.add(jMenu1); jMenuBar1.add(jMenu2); jMenuBar1.add(jMenu3); jMenuBar1.add(jMenu4); //添加菜单项到菜单 jMenu0.add(jMenuItem0); jMenu1.add(jMenuItem1); jMenu1.add(jMenuItem2); jMenu1.add(jMenuItem3); jMenu2.add(jMenuItem4); jMenu2.add(jMenuItem5); jMenu2.add(jMenuItem8); jMenu3.add(jMenuItem6); jMenu3.add(jMenuItem7); jMenu4.add(jMenuItem9); //添加标签到主框架内容面板 contentPane.add(jLabel1); contentPane.add(jLabel2); //设置标签组件的大小和字体 jLabel1.setFont(new java.awt.Font(\"黑体\ jLabel1.setBounds(new Rectangle(65,70,275,55)); jLabel2.setFont(new java.awt.Font(\"黑体\ jLabel2.setBounds(new Rectangle(90,150,200,35)); }
//菜单项事件对应的处理方法
public void actionPerformed(ActionEvent actionEvent) { //点击“系统”菜单下的“退出”菜单项 if(actionEvent.getSource()==jMenuItem0) { System.exit(0); } //点击“职工管理”菜单下的“添加员工”菜单项 if(actionEvent.getSource()==jMenuItem1) { //创建“添加职工”面板对象 AddEmployee AddEmp=new AddEmployee(); //移除主框架上原有的内容 this.remove(this.getContentPane()); //加载“添加员工”面板的对象到主框架 this.setContentPane(AddEmp);
19
四川理工学院课程设计报告
//令界面可见 this.setVisible(true); }
//点击“员工管理”菜单下的“修改员工”菜单项 if(actionEvent.getSource()==jMenuItem2) { //创建“修改员工”面板对象 ModifyEmployee ModifyEmp=new ModifyEmployee(); this.remove(this.getContentPane()); //加载“修改员工”面板的对象到主框架 this.setContentPane(ModifyEmp); this.setVisible(true); }
//点击“员工管理”菜单下的“删除员工”菜单项 if(actionEvent.getSource()==jMenuItem3) { //创建“删除员工”面板对象 DeleteEmployee DeleteEmp=new DeleteEmployee(); this.remove(this.getContentPane()); //加载“删除员工”面板的对象到主框架 this.setContentPane(DeleteEmp); this.setVisible(true); }
//点击“工资管理”菜单下的“添加工资”菜单项 if(actionEvent.getSource()==jMenuItem4) { //创建工资添加的面板对象 AddSalary AddSal=new AddSalary(); this.remove(this.getContentPane()); //加载工资添加面板的对象到主框架 this.setContentPane(AddSal); this.setVisible(true); }
//点击“工资管理”菜单下的“修改工资”菜单项 if(actionEvent.getSource()==jMenuItem5) { //创建工资修改的面板对象 ModifySalary ModifySal=new ModifySalary(); this.remove(this.getContentPane()); //加载工资修改面板的对象到主框架 this.setContentPane(ModifySal); this.setVisible(true); }
//点击“工资管理”菜单下的“工资查询”菜单项
20
四川理工学院课程设计报告 }
}
if(actionEvent.getSource()==jMenuItem8) { //创建工资修改的面板对象 SalaryInquire SalaryInq=new SalaryInquire(); this.remove(this.getContentPane()); //加载工资修改面板的对象到主框架 this.setContentPane(SalaryInq); this.setVisible(true); }
//点击“职工查询”菜单下的“按工号查询”菜单项 if(actionEvent.getSource()==jMenuItem6) { //创建“按工号查询”面板对象 InquireOnGH OnGH=new InquireOnGH(); //移除主框架上原有的内容 this.remove(this.getContentPane()); this.setContentPane(OnGH); this.setVisible(true); }
//点击“职工查询”菜单下的“按姓名查询”菜单项 if(actionEvent.getSource()==jMenuItem7) { //创建“按姓名查询”面板对象 InquireOnName OnName=new InquireOnName(); //移除主框架上原有的内容 this.remove(this.getContentPane()); this.setContentPane(OnName); this.setVisible(true); }
//点击“帮助”菜单下的“互动”菜单项 if(actionEvent.getSource()==jMenuItem9) { //创建“帮助”面板对象 EmployeeHelp EmployeeH=new EmployeeHelp(); //移除主框架上原有的内容 this.remove(this.getContentPane()); this.setContentPane(EmployeeH); this.setVisible(true); }
21
四川理工学院课程设计报告
结 论
两周的时间很快就过去了,在这两周的短暂的Java课程设计过程中,我们在一起学习,加深我们对Java学科认识的深度,平时没怎么太在乎,以为开卷考试就有点放松自己。现在知道自己错了,因为在课设过程中,必须得对Java的知识特别了解,而且必须自己动手去做。
当拿到工资管理系统后,我们曾犹豫过应该做什么,经过我们共同研究讨论,最终确定了公司工资管理系统。之后我们就开始收集资料,我们上网下载,到图书馆检索,众多资料,纷繁复杂,真是忙的我们不可开交。在我们一起查找资料过程中,通过了解该系统后,我们就把我们小组的分工工作做好了。通过这一系列的过程我们为以后的工作,积累了宝贵的经验。
从拿到抽签的题目到答辩再到报告的完成,每走一步对我们来说都是新的尝试与挑战。充分体会了从事系统开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。给我们印象最深刻的是在代码调试的过程,以为在该部分是需要非常仔细、谨慎的。因为有一点马虎的地方就有可能导致代码错误。依然记得开始的几个晚上都到夜里两点才睡,第二天早上5,6点就得起来接着做。我们一起研究,一起拼搏。在这段时间里,我体会到什么叫做“万事开头难”。
当我们经过几天的的思考,对系统有一定认识时,我们才发现我们距离最后的成功还差好远,然后我们在一起共同研究,遇到不会的问题大家共同查阅资料,上网查,经过接近8天的努力,功夫不负有心人,我们终于在答辩的前夕将任务完成了。
我觉得在这次Java课设过程中最重要的是在代码的调试部分,还有这次我也体会到了团队精神的伟大。而且让我明白了小组活动让我们加深对集体荣誉的理解。在课设过程中,我们有心情低落、难过的时候,但最终的结果是美好的。 经历了很多也收获了很多。
22
四川理工学院课程设计报告
致 谢
通过这次课程设计,体会到了,成一件事,不论有多大都不能仅仅依靠一个人的力量。自从我们第一次进入计算机学院,选择计算机专业就选择了团队,众人拾柴火焰高,在这次课设过程中,我们所走的每一步都是大家共同努力地结果。感谢我们组的每一个人,感谢老师的帮助及指导。
在这次课程设计中,设计了一个公司工资管理系统。课程设计中我们一边设计一边探索,发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。在这次课程设计中,由于我们有些知识掌握的还不是很透彻,所以犯了许多的错误,但是在课设老师的帮助下,我们不但把错误都改正过来了,而且我们对不扎实的知识又有了新的提高,老师认真负责的工作态度,严谨的治学精神和深厚的理论水平使我们收益匪浅,成为我们以后学习和工作的榜样。在此向孙老师及代课老师表示深深的感谢和由衷的敬意,实习中我们学到了很多,希望在以后我们能充分利用实习的机会充实自己,并希望这样的机会能被更好更多地提供。
在这次课程设计中,我们要感谢何绍荣老师,给了我们很多帮助,带来很多课外的讯息,通过这次机会让我们对以后的工作有更多的了解。
在这里特别要感谢孙宪丽老师的指导和关心和支持,没有老师您的帮助我们也不会那么顺利地完成这次课程设计的任务。因为最扎实的基本功(基本知识)是您一点一点教我们的。我们的每一个成绩都是在老师的帮助下完成的。从平时上课的老师,到今天课程设计的帮助,我们的每一步都有老师的心血。这里对老师说一句:“老师,您辛苦啦,谢谢您”!
最后感谢学校,感谢校领导给我们安排的这次实训,通过这次实训我们掌握了把理论转换成实际的经验和方法。让我们有机会体验这个专业的乐趣,让曾经迷失的我们找回人生的坐标,相信通过在工程学院学习的这段时间我们一定能在毕业之后找到属于我们自己的生活。不论以后什么时候我们都会铭记我们是计算机学院的学子,为学院争光,不忘老师给我们教诲。
23
参考文献
[1] java面向对象程序设计教程(第二版) 李发致 编著 清华大学出版社 [2] java2 实用教程(第三版) 耿祥义 张跃平 编著 清华大学出版社
[3] java程序设计经典教程(融合上机操作实例)张居敏 石礼娟 龙翔编著 电子工业出版社 [4] 软件工程 重庆大学 出版社
[5] 数据库系统原理教程 王珊 陈红 编著 清华大学出版社
24
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务