企业人事管理系统设计与实现本科毕业设计.docx
《企业人事管理系统设计与实现本科毕业设计.docx》由会员分享,可在线阅读,更多相关《企业人事管理系统设计与实现本科毕业设计.docx(33页珍藏版)》请在冰点文库上搜索。
企业人事管理系统设计与实现本科毕业设计
本科毕业设计(论文)
题目:
企业人事管理系统设计与实现
院系:
计算机科学系
专业:
计算机科学与技术
摘要
当今社会,经济高速发展,科学技术日新月异,给人类社会带来了极大的变化,计算机的高速发展使得各行各业对计算机的要求越来越多,依赖性越来越强。
人事管理模式已经由传统的手工业务转变成信息化,现代化,无纸化的高效环保管理模式。
为此提高人事管理系统的工作效率,设计管理系统势在必行。
本文人事管理系统采用基于客服端/服务端(c/s)模式开发,服务端采用Oracle10g数据库服务器作为数据处理和储存平台,客服端应用程序使用MyEclipse9.0进行开发,开发语言选用JAVA。
关键词:
人事管理、C/S结构、JAVA
Abstract
Intoday'ssociety,thehigh-speedeconomicdevelopment,thescienceandtechnologyisdevelopingrapidly,andtothehumansocietytoagreatchange,therapiddevelopmentofcomputermakesallwalksoflifetothecomputerwantsmoreandmore,dependenceismoreandmorestrong.
Thepersonnelmanagementmodebythetraditionalmanualbusinesshasturnedintoinformation,modern,theefficientmanagementmodepaperlessenvironmentalprotection.Toimprovetheefficiencyofthepersonnelmanagementsystem,designmanagementsystemisimperative.
Inthispaperthepersonnelmanagementsystembasedoncustomerserviceend/serviceend(c/s)modeldevelopment,theservicebyOracle10gdatabaseserverasdataprocessingandstorageplatform,thecustomerserviceapplicationsuseMyEclipse9.0development,developmentlanguageuseJAVA.
Keywords:
personnelmanagement,C/Sstructure,JAVA
第一章前言
第一节课题研究背景
市场经济条件下,技术的竞争、市场的竞争、服务的竞争归根结底还是人才的竞争。
当今社会,在“以人为本"观念的熏陶下,人事管理在各个单位中的作用日益突出,被摆在了所有管理中的首要位置。
人事管理是一个单位日常工作中不可或缺的重要部分,它对于本单位的决策者和管理者来说都至关重要。
飞速发展的技术变革和创新,以及新竞争环境的出现,使得越来越多的单位通过构筑自身的人事竞争力来维持生存并促进持续发展。
而人员的复杂性却使得人事管理成为难题。
人事信息的一大显著特点就是数据量大、关系复杂。
用传统人工的方式管理文件档案,效率低、保密性差,查找、更新、维护也特别困难。
以往的人事工作者由于缺乏适当的软件给其工作带来了诸多不便。
随着科学技术的不断发展和计算机科学的日益成熟,人事工作者急切希望能够将人事管理中大部分繁琐的工作交给计算机处理,从而减轻人工的压力并提高工作效率。
人事管理系统应运而生,而计算机的普及更加快了人事管理系统的产生技术的不断发展。
人事管理系统是一个典型的信息管理系统(MIS),本课题来源于某事业单位对人事档案管理的个性化需求,开发此系统的目的是为了提高该单位的人事管理效率,实现人事管理的自动化和信息化。
人事管理系统使用计算机对人事档案信息进行管理,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低廉等优点是手工管理所无法比拟的。
人事管理系统功能全面、操作简便,能够快速地为员工建立电子档案,而且便于修改、保存和查询,实现了无纸化存档,能够为使用者节省大量资金和空间。
人事管理系统利用计算机进行信息控制和数据处理,不仅提高了工作效率,而且还大大的提高了其安全性。
开发这样一个人事管理系统具有很强的现实意义:
1.大幅度提高工作效率和工作质量,使该单位的人事管理者从繁重琐碎的
人事管理工作中解脱出来。
2.通过计算机对数据库进行管理代替手工统计工作,将在很大程度上减少数据统计的工作量,并且能使数据统计过程中的错漏减少到最低程度。
3.大大节约人事管理方面的成本,从而使该单位获得更好的社会效益和经济效益。
4.使该单位的人事管理工作更加规范、高效,在一定程度上加快了该单位的管理信息化进程。
第二节国内外研究现状
人事管理系统此前已有许多解决方案,所用技术也是越来越先进。
较早的人事管理系统主要采用Foxbase、FoxPro、VFP等数据库开发工具,系统开发环境也是数据库内置的开发工具。
其特点是单机单用户方式,开发简单,能充分利用数据库的特性。
其缺点是:
开发出的系统依赖性很强,运行必须依托数据库环境;不容易升级与扩展;无法实现数据的共享与并行操作;代码重用性差。
而后出现了基于传统的C/S模式下采用面向对象的开发工具开发的一系列人事管理软件。
B/S结构的人事管理系统的研究都是适用于大型应用系统,其开发成本之高和开发周期之长是小型单位所不能忍受的,且小型单位并不需要使用很多复杂的功能,将大型应用系统用在小型单位未免有点“大材小用’’。
这也就意味着小型人事管理系统仍有应用空间和潜在市场,本论文介绍的基于Hibernate的人事管理系统就是为了满足小型单位的个性化需求而开发设计的。
系统使用JavaSwing技术获得了简单实用的用户界面,使用C/S架构和Hibernate框架技术大大减少了软件开发成本和开发时间,并实现了系统运行与数据库无关:
在程序编写过程中,不用考虑系统最终使用的数据库。
使用系统时,根据用户选用的数据库平台,直接修改Hibernate的配置文件即可。
第二章系统开发基础
第一节C/S模式概述
一、C/S模式概念
C/S(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。
C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。
C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。
二、C/S模式优缺点
C/S模式系统以服务器作为数据处理和存储平台,在终端设计有专门的应用程序进行数据的采集和初次处理,再将数据传递到服务器端,用户必须使用客户端应用程序才能对数据进行操作。
C/S模式具有以下优点和缺点
C/S模式的优点:
由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
软件功能设计个性化,具有直观、简单、方便的特点,可以满足客户个性化的功能要求;如自由制表的功能在C/S模式下就能够实现,在B/S模式下就很难实现或运行效率很低。
操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
C/S模式的缺点:
需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
兼容性差,对于不同的开发工具,具有较大的局限性。
若采用不同工具,开发成本较高,需要具有一定专业水准的技术人员才能完成。
第二节系统运行环境
一、硬件环境
PC机CPU:
P42.0GHz
内存:
512M
二、软件环境
操作系统:
WindowsXPsp3
编辑环境:
MyEclipse9.0
数据库环境:
Oracle10g
第三节开发语言介绍
一、Java简介
Java是一种“简单(simple)、面向对象(objectoriented)、分布式(distributed)、解释型(interpreted)、健壮(robust)、安全(secure)、体系结构中立(architectureneutral)、可移植性(portable)、高性能(highperformance)、多线程(multithreaded)和动态(dynamic)”的编程语言
(一)Swing简介
Swing是Java平台的JFC(JavaFoundationClasses,Java基础库类)的一个重要组成部分。
Swing提供了丰富的组件,并且提供了独立于运行平台的GUI构造框架。
Swing是纯Java实现轻量级(Light-weight)组件,没有本地代码,不依赖操作系统的支持,这是与AWT组件的最大区别。
Swing在不同的平台上都能够具有一致的显示风格,并且提供本地窗口系统不支持的其他特性。
(二)Hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:
Session、SessionFactory、Transaction、Query和Configuration。
这5个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五的核心接口分别加以介绍。
Session接口:
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。
)。
但需要注意的是Session对象是非线程安全的。
同时,Hibernate的session不同于JSP应用中的HttpSession。
这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
SessionFactory接口:
SessionFactroy接口负责初始化Hibernate。
它充当数据存储源的代理,并负责创建Session对象。
这里用到了工厂模式。
需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
Configuration接口:
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。
在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
Query和Criteria接口:
Query和Criteria接口负责执行各种数据库查询。
它可以使用HQL语言或SQL语句两种表达方式。
二、SQL简介
SQL(StructuredQueryLanguage),结构化查询语言,是关系数据库的标准语言,SQL是一个通用的、功能极强的关系数据库语言,其功能不仅仅是查询。
SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点有 面向集合的语言;非过程语言;类似自然语言,简洁易用;自含式语言,又是嵌入式语言;可独立使用,也可嵌入到宿主语言中。
第四节开发工具介绍
一、MyEclipse9.0简介
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
二、Oracle10g简介
Oracle10g是甲骨文(sun)公司推出的Oracle9i的后续版本,“g”代表网格(gridding)是第一个专门设计用于网格计算的数据库,解决了传统数据库应用中面对的瓶颈问题——高性能、搞可伸缩性与低价格之间的矛盾。
增加支持XQuery、自动诊断、优化查询和数据加密等方面的管理功能和自动化工具。
第三章系统分析
第一节系统分析
伴随着企业对人事管理系统的日益完善,企业人事管理系统在企业管理中越来越受到企业管理者的青睐。
企业人事管理系统的功能全面、操作简单,可以快速的为员工建立电子档案,并且便于修改、保持以及查看,并且实现了无纸化存档,为企业节省了大量的资金和空间。
通过企业人事管理系统,还可以实现对企业员工的考勤管理、奖惩管理、待遇管理等。
根据企业对人事管理的要求,本系统需要实现以下几个目标:
操作简单、界面简洁;
方便、快捷的档案管理;
实用的考勤和奖惩管理;
对不同的待遇标准,实现帐套管理
方便实用的小工具,如计算器、word、excel
系统运行稳定、安全可靠。
第二节设计思路
本系统主要包括人事管理和待遇管理两大功能模块,用来提供对企业员工的人事和待遇管理;以及用户管理模块,用来提供对系统的维护和管理;还包含一个系统工具模块,用来快速运行系统中的常用工具。
人事管理模块包含的子模块有档案管理、考勤管理、奖惩管理。
其中档案管理用来维护员工的基本信息,包含档案信息、职位信息和个人信息。
档案信息中包含员工照片。
考勤管理模块用来记录员工的考勤信息,如迟到、请假、加班等。
奖惩管理模块用来记录员工的奖惩信息。
用户管理模块包含新建用户和修改密码两个子模块。
新建用户模块用来添加和维护系统的管理员,包括删除管理员,该模块只能有超级管理员实用;修改密码模块用来修改当前登录用户的密码。
待遇管理模块包括人员设置、帐套管理、统计报表三个子模块。
人员设置模块用来设置对员工采用哪个待遇标准。
帐套管理模块用来建立和维护帐套。
统计报表模块用来统计员工的待遇情况以及考勤情况。
系统工具模块有打开计算器、word、Excel三个功能
第三节功能结构图
图3-1结构功能图
第四章数据库设计与实现
第一节需求分析
经过调查用户需求,分析确定了该系统应该包括如下功能:
一、档案管理:
是企业人事管理系统的核心模块,它的主要功能是添加员工的编号、姓名、性别、出生年月、身份证号、民族、籍贯、婚姻状况、政治面貌、学历、专业、部门、职位、用工合同等;
二、考勤管理:
包括档案编号、考勤类型、考勤说明、开始日期、结束日期等;
三、奖惩记录:
包括档案编号、奖励类型、奖励说明、惩罚类型、惩罚说明等;
四、帐套管理:
包括编号、名称、说明。
五、帐套项目:
包括档案编号、帐套编号
第二节E-R图分析
图4.1档案信息表E-R
图4-2考勤信息表E-R图
图4-3帐套信息表E-R图
图4-5帐套设置信息表E-R图
第五章主要模块设计与实现
第一节公共模块设计
在开发软件时,对公共模块的设计十分重要,因为在设计公共模块的过程中,即是对软件结构的一个整体规划,又可以最大程度地实现代码重用。
系统中需要统一开发的公共模块主要有以下几个
一、编写hibernate配置文件
--配置数据库的驱动类-->
oracle.jdbc.driver.OracleDriver
--配置数据库的连接路径-->
jdbc:
oracle:
thin:
@localhost:
1521:
DBSQL
PERSONNEL_MANAGE--配置数据库的连接用户名-->
MWQ--配置数据库的连接密码,这里密码为空,在这种情况下也可以省略该行配置代码-->
--配置数据库使用的方言-->
org.hibernate.dialect.OracleDialect
true--配置在控制台显示SQL语句-->
true--配置对输出的SQL语句进行格式化-->
true--配置在输出的SQL语句前面添加提示信息-->
--配置持久化类映射文件-->
二、编写持久化类
持久化类不需要实现任何类和接口,只需要提供一些属性及其对应的set/get方法,需要注意的是,每一个持久化类都需要提供一个没有入口参数的构造方法。
编写映射文件持久化类映射文件复制建立持久化类与对应数据表之间的映射关系。
建立持久化类之间的关联关系
在本系统总有多处使用到了hibernate的一对一和一对多关联,通过对hibernate关联关系的使用,可以快速地通过一个对象获得到与之关联的对象。
(一)建立一对一关联关系:
系统将档案信息和职务信息分别保存到两个表中,如下图所示。
其中职务表的主键ID同时作为外键参考档案表的主键ID,并且ID相同的记录为同一个员工的信息,与这两个表对应的持久化类依次为TbRecord和TbDutyInfo,对着两个持久化类就需要建立一对一关联关系。
(二)建立一对多关联关系
虽然只允许一个员工担任一个职务,即一个员工只能属于一个部门,单上一个部门却可以有多高员工,所以部门和员工之间是一对多的关系,如下图所示。
这两个表对应的持久化类依次为TbDutyInfo和TbDept,对着两个持久化类就需要建立一对多关联关系
第二节主窗体设计
主窗体是软件系统的一个重要组成部分,是提供人家交互的一个必不可少的操作平台。
通过主窗体,用户可以打开与系统相关的各个子操作模块,完成对软件的操作和使用。
图5.1主窗体效果图
一、导航栏的设计
导航栏是通过树组件的实现用到的是Java.swing包里面的JTree类来实现。
先创建一个根节点,
DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("root");
//创建树的根节点
然后再创建子节点
efaultMutableTreeNodepersonnelNode=newDefaultMutableTreeNode(
"人事管理");//创建树的一级子结点
再创建叶节点添加到子节点中
personnelNode.add(newDefaultMutableTreeNode("档案管理"));
//创建树的叶子结点并添加到一级子结点
personnelNode.add(newDefaultMutableTreeNode("考勤管理"));
personnelNode.add(newDefaultMutableTreeNode("奖惩管理"));
最后在把子节点添加到根节点中
root.add(personnelNode);//向根结点添加一级子结点
二、工具栏的设计
为方便用户使用系统,在工具栏为常用的系统子模块提供了快捷通道,通过这些按钮可以快速地进入常用的子模块。
工具栏效果如图5.2所示。
图5.2工具栏效果
首先使用Java.swing包里面的JPanel方法创建一个面板容器,在通过GridLayout设置工具栏面板采用的布局管理器为网格布局,使用setVgap、setHgap分别设置网格的垂直水平间隔。
在工具栏中提供了用来快速打开“档案管理”“考勤管理”“奖惩管理”“统计报表”“基本资料”和“修改密码”子模块的按钮,以及“打开计算器”和“打开EXCEL”两个常用系统工具按钮,还有一个用来快速退出系统的“退出”。
(一)档案管理
通过JButton创建按钮然,ActionListener为按钮设置监听器具体实现如下:
finalJButtonrecordShortcutKeyButton=newJButton();
//创建进入“档案管理”的快捷按钮
resource=this.getClass().getResource("/img/record.JPG");
icon=newImageIcon(resource);
recordShortcutKeyButton.setIcon(icon);
//为按钮添加事件监听器,用来捕获按钮被点击的事件
recordShortcutKeyButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
rightPanel.removeAll();
//移除内容面板中的所有内容
rightPanel.add(newRecordSelectedPanel(rightPanel),
BorderLayout.CENTER);
//将档案管理面版添加到内容面板中
SwingUtilities.updateComponentTreeUI(rightPanel);
//刷新内容面板中的内容
}
});
buttonPanel.add(recordShortcutKeyButton);
使用相同方法分别实现考勤管理、奖惩管理、统计报表、基本资料、修改密码。
(二)打开计算器
通过java.awt.Desktop类中的open(Filefile)方法,可以运行系统中的其他软件其代码如下:
finalJ