人力资源管理系统毕业设计说明书

更新时间:2024-05-18 04:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

人力资源管理系统

员工培训管理模块的设计与实现

中文摘要:人力资源管理是企业信息管理的重要部分,面对大量的人事信息,采用人力处理即浪费时间、又浪费人力和物力,并且数据的准确性低。然而通过应用人力资源管理系统使得我们能够集中对企业人事工作进行管理,为企业的带来更大的经济利益。快捷、准确、方便、高效的人力资源管理系统是企事业单位的基本需求之一,因此,开发一个界面友好,易于操作的人力资源管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。

本文所阐述的是人力资源管理系统,以浏览器/服务器(B/S)模式高效地实现了人力资源管理系统的各项功能。本系统分为人事管理,个人管理,培训管理,招聘管理,员工绩效管理,系统管理六大模块。其中培训管理模块实现了三个模块:培训计划模块,包括培训任务,培训课程,培训员工的添加修改删除;培训实施模块,包括培训通知和培训评估;培训资料模块,包括书籍发布和资料共享。该系统有效提升了企业的效率和竞争力,满足了现代企业人力资源管理的需要。

由于Java语言是一种纯面相对象的语言,而且发展前景十分的广阔,因此本项目才用java语言作为根本,前台页面使用jsp语言,并选用经典的MVC模型框架Struts作为开发架构,在数据持久层方面则使用了Hibernate框架。

关键词:(B/S)模式、Java、MVC模型、Struts、Hibernate

Abstract:Human resource management is an important part of company information management. We use manual work to deal with some message is both waste time and waste money and human resource, and make the data inaccurate when we faced the large of human resource information. But according to apply the HRMS, we can focus the management of the company HR works,and bring more income to company. A fast, exact, convenient, effective HRMS is a basic requirement of company. For this reason, open up a HRMS with UI friendly and operate conveniently to deal with information automatically is very important, and it is purpose of development.of our system.

In this article, our HRMS bring out some function in model B/S effectively. There are six moudle in this HRMS: HR management, personal information management, employee teach management, job management, employee performance management and system management. Training management module which has three modules: module training plan, including training missions, training courses, training staff to add amendments to delete; Training modules, including training and training assessment notice; training modules, including book publishing and information sharing.This application can bring out a collection of HR works in company, and it bring up the effect and competitiveness of company, and make the company satisfy.

Because JAVA is an object-oriented language, and it will develop more better, our project use JAVA and JSP, and we choose the MVC structure which is a classic model to be our develop structure, and use the Hibernate in secure data persistent layer.

Key words: (B/S)Model; Java; MVC model; Struts; Hibernate;

本文目录

一、绪论 ........................................................................................................................... 1

1、人力资源管理系统的开发背景 ............................................................................... 1 2、人力资源管理系统的开发意义 ............................................................................... 1 3、项目设计原则 ........................................................................................................ 2 二、系统分析 .................................................................................................................... 3

1、需求分析 ............................................................................................................... 3 2、技术可行性 ............................................................................................................ 4 3、环境可行性分析 .................................................................................................... 5 4、硬件环境可行性分析 ............................................................................................. 5 三、系统设计 .................................................................................................................... 6

1、总体设计 ............................................................................................................... 6

(1)系统主要实现的功能 ................................................................................... 7

(2)各个模块的具体功能设计 ............................................................................ 7 2、数据库详细设计 .................................................................................................... 8

(1)数据库概念模型设计 ................................................................................... 8 (2)主要数据库关系模型设计 ............................................................................ 9 (3)数据库表设计 ............................................................................................ 12 3、模块的图例设计 .................................................................................................. 13

(1)JSP实现管理流程的方式 .......................................................................... 13 (2)员工培训管理的具体流程 .......................................................................... 14 4、开发框架 ............................................................................................................. 14

(1)Struts 框架简介 ........................................................................................ 14 (2)Hibernate框架简介 ................................................................................... 14

四、系统实现 .................................................................................................................. 15

1、系统功能模块的设计与实现 ................................................................................. 15

(2)培训计划模块 ............................................................................................ 16

(3)培训实施模块 ............................................................................................ 20 (4)培训材料模块 ............................................................................................ 21 2、关键技术与算法 .................................................................................................. 23

(1)机构结构图算法 ......................................................................................... 23 (2)中文乱码处理技术 ..................................................................................... 24 (3)分页显示算法 ............................................................................................ 25

(4)字符串加密和解密算法 .............................................................................. 26 3、数据的安全性 ...................................................................................................... 27 五、系统测试 .................................................................................................................. 28

1、 测试的定义及目的 ............................................................................................. 28 2、 测试的原则 ........................................................................................................ 28 3、 人力资源管理系统的测试 .................................................................................. 29 结束语 ............................................................................................................................. 29 致谢 ................................................................................................................................ 30 参考文献 ......................................................................................................................... 30

一、绪论

1、 人力资源管理系统的开发背景

人力资源管理系统的建立目标是为了从根本上帮助企业将先进的管理方法和理念贯彻到日常的企业经营中去,实现全面人力资源管理、人力资源管理流程重组等等。这样系统就必须结合先进的JSP技术、数据库技术、网页技术等技术手段,全面规划企业的组织结构与岗位体系、实现人员配置、具有完善的招聘与选拔功能、规划企业的薪酬体系与薪酬管理工具、高效的绩效和培训管理流程、强大的门户功能、完善的权限和系统控制体系。

现在网络的发展已呈现商业化、全民化、全球化的趋势。目前,几乎世界上所有的公司都在利用网络传递商业信息,进行商业活动,从宣传企业、发布广告、招聘雇员、传递商业文件乃至拓展市场、网上销售等,无所不能。如今网络已成为企业进行竞争的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业务扩展、企业品牌形象等提供了更高的要求。在以信息技术为支撑的新经济条件下,越来越多的企业利用起网络这个有效的工具。全球范围内的企业内部组织正在发生巨变,未来企业成功的关键的依靠企业人力资源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的根本。有效力管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。

2、人力资源管理系统的开发意义

全球范围内的企业内部组织正在发生巨变,未来企业成功的关键的依靠企业人力资源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的根本。有效力管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。

网络化的今天,网络人力资源管理系统,使新的人力资源协作管理模式成为可能。通过网络管理系统,专门的人力资源管理人员可以提高自身的工作效率,作好人力资源管理的协调工作,提高人力资源利用率;通过网络管理系统,员工可以直接管理自己的技能,

有效地发现和挖掘自身的潜能,及时与自己的上级、下属、同事进行的沟通与交流,同心协作,积极为企业的发展与决策贡献力量。通过网络人力资源管理系统对企业人力资源进行管理,使企业人力资源管理适应时代的发展要求,大大提高了企业的核心竞争力。

当人类正在向知识经济新时代迈进的时候,信息网络化的发展步伐也越加迅猛,随着中国加入WTO,中国经济不可避免地要面对经济全球化的挑战,巨大的竞争压力使得中国的企业将无法去慢慢解决员工的意识与素质问题,我们的企业在经营管理能力上急需的是一种跨越式提升,它要求我们必须以全新的视角来重新认识人力资源在企业中的作用。而解决这一问题的最佳途径是建立现代企业的人力资源管理系统,它的实施将会推动企业的全面人力资源管理。

3、 项目设计原则

?

实用性原则。充分考虑到在人力资源管理中可能遇到的种种问题,尽量全面的做好需求分析,以减少日后更新软件的次数。

?

经济性原则。建立适合企业自身需求的网络平台,提供广泛的涵盖用户多种需求的功能,数据处理方式灵活可以满足需求,节省网站建设成本,并确保其较好的拓展性和开放性;同时网站具有基于WEB界面的管理后台,能够自主的对网站中大部分内容作更新、修改操作,节省了企业网站的运营成本,提高了信息更新、传播效率。

?

扩充性原则。网站的整体规划及框架设计是具可扩充性的,前台页面的设计能保证网站在增加栏目后不会破坏网站的整体结构。后台数据库的设计具有高度的扩充性,能够根据需要对栏目、类别的增、删、修改。

二、系统分析

1、需求分析

网络化的今天,网络人力资源管理系统,使新的人力资源协作管理模式成为可能。通过网络管理系统,专门的人力资源管理人员可以提高自身的工作效率,作好人力资源管理的协调工作,提高人力资源利用率;通过网络管理系统,员工可以直接管理自己的技能,有效地发现和挖掘自身的潜能,及时与自己的上级、下属、同事进行的沟通与交流,同心协作,积极为企业的发展与决策贡献力量。通过网络人力资源管理系统对企业人力资源进行管理,使企业人力资源管理适应时代的发展要求,大大提高了企业的核心竟争力。因此,做好HRMS的需求分析是必要的,具体应该分如下几个步骤:

·组织分析

培训需求的组织分析主要是通过对组织的目标、资源、特质、环境等因素的分析,准确地找出组织存在的问题与问题产生的根源,以确定培训是否是解决这类问题的最有效的方法。培训需求的组织分析涉及到能够影响培训规划的组织的各个组成部分,包括对组织目标的检查、组织资源的评估、组织特质的分析以及环境的影响等方面。组织分析的目的是在收集与分析组织绩效和组织特质的基础上,确认绩效问题及其病因,寻找可能解决的办法,为培训部门提供参考。

·工作分析

工作分析的目的在于了解与绩效问题有关的工作的详细内容、标准,和达成工作所应具备的知识和技能。工作分析的结果也是将来设计和编制相关培训课程的重要资料来源。工作分析需要富有工作经验的员工积极参与,以提供完整的工作信息与资料。工作分析依据分析目的的不同可分为两种:

(1) 一般工作分析。一般工作分析的主要目的是使任何人能很快地了解一项工作的性质、范围与内容,并作为进一步分析的基础。

·工作者分析

工作者分析主要是通过分析工作人员个体现有状况与应有状况之间的差距,来确定谁需要

和应该接受培训以及培训的内容。工作者分析的重点是评价工作人员实际工作绩效以及工作能力。

·培训需求的战略分析

传统上,人们习惯于把培训需求分析集中在个体和组织需求的层次上,并以此作为设计培训规划的依据。一般说来,集中于个体与组织的需求,往往是对组织过去与现在的需求比较敏感。但是,当组织状况发生了重大变化时,那种集中于过去和现在的需求分析将会引起组织资源的无效应用。过去,组织变革缓慢而微小,未来的需求经常是过去倾向的逻辑延展。但现在这种状况已经发生了巨大的变化,培训需求的未来分析,即战略分析,已越来越受到人们的重视并被提到一个重要的战略位置之上。

2、技术可行性

技术的不断发展,单纯的静态页面已经不能满足发展的需要,因为静态页面是用单纯的HTML语言组成的,它没有交互性。因此,为了满足实际的需要,许多网页文件扩展名不再只是“htm”,“html”,出现了以“php”,“asp”,“jsp”,“shtml”等为后缀的网页文件,这些都是采用动态网页技术制作出来的。.

JSP是由Sun公司倡导,多别的公司参与一起创建的一种新动态网页技术标准。在传统的网页中加入Java程序片断和JSP标签,构成了JSP网页,首先执行其中的程序片断,软后将执行结果以HTML格式响应给客户端,其中程序片断可以是操作数据库、重新定向网页、以及发送E-Mail等等,这些都是建立动态网站所需要的功能。所有程序操作都在服务器端运行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关。因此,JSP称为Server-side Language.所以被许多人认为是未来最有发展前途的动态网站技术之一.

本设计选用JSP语言作为前台开发语言,选择Struts架构作为开发的主体框架,选用Hibernate作为数据持续性处理层,则是考虑到了其高速的开发效率,及代码重用性高,易于维护等各种优势。其最终目的是希望提高系统底层业务逻辑的可重用性,增加系统的可扩展性,降低系统维护成本。JSP语言的优势如:

?

将内容的生成与显示进行分离。 一次编写,到处运行。 JSP的平台适应性更广。 健壮的存储管理和安全性。

数据库连接技术。采用专用的JDBC与数据库连接,执行查询,提取数据等操作。

对于用户来说,本系统只要求使用者掌握一定的上网经验,经过仔细设计和测试之后

?

?

?

?

的系统具有操作简单、方便灵活等优点,足可以满足各种用户的不同需求。

3、环境可行性分析

本系统采用B/S模式。

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

4、 硬件环境可行性分析

?

软件环境

操作系统:Windows xp sp2 数据库:Mssql server 2000 Web服务器:tomcat 5.5 开发工具:MyEclispe 5.5

开发框架:Struts 2.0和Hibernate 3.0

?

硬件环境

CPU:AMD Athlon 64 3000+,Merory:KingSton PC3200 1G*2,Graphic Card:ATI

X1600 PRO,Harddisk:Seagate SATA 8M 120GB。

三、系统设计

系统设计是在系统分析的基础上由抽象到具体的过程。主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理(技术)方案,为下一阶段系统实施提供必要的技术资料,应符合系统性、灵活性、可靠性、经济性的要求。

1、总体设计

本系统主要由人事管理、个人管理、培训管理和招聘管理,员工绩效管理,系统管理等六个模块组成。其总体设计图如图3-1所示。

图3-1 人力资源管理系统功能模块图

(1)系统主要实现的功能

本系统主要用于对企业中的“人”进行管理。具体地讲,人力资源管理系统就是通过人力规划、员工信息管理、人员调动、人才培训和系统管理等一系列手段来提高劳动生产率,最终达到发展目标的一种管理行为。具体实现目标如下:

● 完成企业人员信息的添加、查询、修改和删除。

● 完成登录验证、用户注册、密码修改、权限管理、个人信息修改 ● 完成企业部门添加、查询、修改和删除。

● 完成企业部门中某一具体职位的添加、查询、修改和删除。 ● 完成企业工作任务的发布,个人任务查看、部门任务查看等功能。

● 系统分为两种级别的用户:系统管理员、普通用户。该系统要求完成不同级别的人彼此独立的达到不同的功能,不能越权访问和使用用户权限范围内的事务。系统管理员可以添加普通用户,管理普通用户的权限以及修改和查看普通用户的资料等功能。

● 完成员工应聘系统,并可以发布相应的招聘信息。

● 完成员工培训任务的添加、培训对象通知、培训管理等功能。

● 完成对企业人才库的管理,包括将人才简历导入人才库以及编辑、删除人才库中的

简历等功能。

● 完成企业员工薪酬登记、查询等功能。

● 完成员工考勤统计和业绩信息,并依据此两项数据对员工作出考评。

(2)各个模块的具体功能设计

?

人事管理模块:该模块主要包括对部门的设置及动态显示部门关系结构图,对职位的设置,对人事的变更,对员工的设置,以及对员工合同浏览、增、删、改等功能,实现员工合同模板自定义功能。

?

个人管理模块:该模块主要针对的是普通员工的基本操作和自身信息获取,包括员工请假申请,员工请假申请查询,相关的个人考勤信息,个人薪酬信息,个人培训信息浏览,以及个人密码修改。

?

招聘管理模块:该模块主要包括对应聘者信息的添加和管理,对公司招聘信息的添加和管理,以及对企业人才库的操作和管理。

?

培训管理模块:该模块包括培训任务的添加,对相应培训任务进行课程,人员的添加和修改,对相应课程的浏览,通知培训人员功能,对培训结果作出评估的功能,以及对培训材料的添加和上传。

?

绩效管理模块:该模块包括对薪水的添加修改查询,对请假申请的审批,对员工的请假登记并将其显示为分析报表,对考勤规则的设置,对员工业绩值的添加和浏览,以及依据员工请假次数和员工业绩值对员工作出相应等级的考评。

?

系统管理模块:该模块主要包括对系统用户的添加修改删除以及对用户的权限进行设置。

以上模块中,员工培训模块和个人管理中相应的信息模块由本人独立设计完成,因此以下说明主要针对于员工培训信息。

2、数据库详细设计

数据库设计是要在一个给定的应用环境(DBMS)中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求。

(1)数据库概念模型设计

在数据库设计中,先要对系统分析所得的数据字典中的数据存储进行分析,然后得出系统的关系模式,可以采用实体——联系图(简称E—R图)的方法进行数据结构的描述。E—R图由实体、属性、联系三部分组成。各实体之间的E—R图如图3-2所示。

课程1选择人才库1导入进行培训NN应聘者N录取1员工N1属于N职位N拥有职位1部门N合同薪水操作11培训1考勤考勤记录1考评记录1员工考评11业绩记录111业绩薪水签署合同N

图3-2 各实体之间的联系E-R图

(2)主要数据库关系模型设计 人事管理 b_dept 部门表 tb_employee 员工表 tb_kaoqin 个人考勤信息表 tb_pact 合同信息表 tb_user 系统用户表 tb_zhiwei 职位表 招聘管理 tb_job 招聘信息表 tb_seeker 应聘者信息表 tb_jobbase 人才库信息表 tb_seeker 应聘者信息表 培训管理 b_foster_f 培训结果评估表 tb_foster_k 培训课程表 tb_forster_wealth 培训书籍表 tb_forterrole 培训任务表 tb_forster_wealthup 培训资源表 绩效管理 tb_kaoqinsetup 考勤设定表 tb_wage 薪水信息表

?

员工表:主要包括员工ID,姓名,英文名,年龄,性别,出生,机关,现住址,电话,进入公司日期等字段,主键为员工ID,其他如图3-3.

图3-3 Tb_user员工表字段一览

?

培训任务表:主要包括任务ID.任务名称,任务编号,任务发布部门,任务承接单位,任务预算,任务长度,任务对象等字段。主键为任务ID,其他如图3-4所示。

图3-4 Tb_forterRole 培训任务表字段一览

?

培训书籍表:包括资源ID,资源名称,资源来源,资源作者,资源内容等字段。

图3-6 tb_forster_wealth 培训书籍表字段一览

?

培训课程表:主要包括课程ID,隶属任务,类型,时间,培训语言,培训方式,培训目的,培训对象,培训内容,联系人等字段。其他如图3-5所示。

图3-5 Tb_foster_k 培训课程表字段一览

?

培训资源表:包括资源ID,资源类型,作者,来源,类型,存储位置等字段。

图3-7 tb_forster_wealthup 培训资源表字段一览

?

培训评估结果表:包括评估人ID,被评估任务,评估接受者,评估等级等字段。

图3-8 tb_foster_f 培训评估结果表字段一览

(3) 数据库表设计

根据数据库的关系模型设计,进而得到数据库表的设计,如图3-3所示。

图3-9数据库表的设计

3、模块的图例设计

(1)JSP实现管理流程的方式

本系统主要由人事管理、个人管理、培训管理和招聘管理,员工绩效管理,系统管理等六个模块组成。以下是系统管理模块的操作流程图,该图说明了本系统每一步流程是如何进行工作的。具体流程如图3-10所示。

图3-10系统管理模块操作流程图

(2)员工培训管理的具体流程

制定培训任务 制定培训任务 相关课程 选定培训员工 开始培训 评估培训结果 培训完成 通知培训员工 4、 开发框架

(1)Struts 框架简介

随着Web开发技术的日益成熟,在Web开发领域中出现了许多设计好的软件开发框架,Struts就是一种基于MVC经典设计模式的框架,也是当前Web开发中比较成熟的一种框架。

MVC(Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分。

? ? ?

模型(Model):业务逻辑层。实现具体的业务逻辑,状态管理的功能。

视图(View):表示层。即与用户实现交互的界面,通常实现数据输入和输出功能。 控制器(Controller):控制层。起到控制整个业务流程(Flow Control)的作用,实现View和Model部分的协同工作。

(2) Hibernate框架简介

在传统的数据库编程中,开发人员要面对大量重复行代码的编写,以实现对不同数据表中的数据的获取,并将获取到的记录数据封装成对象,在处理完成之后如果需要进行对象状态的存取,需要将对象中的数据拆卸成数据库记录中的对应字段的值,然后向数据库中进行存取。

这种工作方式显然没有实现真正意义上的数据存取阶段的面向对象。虽然数据存取过

程中的工作步骤是基本固定的,但是由于操作的数据表中字段列表数据的不同,使得开发人员必须要不厌其烦地书写与相应的实体类对应的封装处理过程。而在Hibernate中,类似这种重复性高,工作量大,但又必须保证高质量完成的体力活,全部由Hibernate接管过去。这对广大的Java开发人员无疑是个非常好的消息。 Hibernate本质上是一个面向Java开发环境的对象/关系数据库映射工具。借助Hibernate对象/关系数据库映射技术,可以非常轻松地将以面向对象思想封装的对像的各个状态数据映射到基于SQL的关系模型数据结构中去。

Hibernate:当前最流行的O/RMapping 框架,出身于SourceForge.net社区。Hibernate框架对数据库表提供了有力的封装。以O/RMapping实现了POJO和数据库表之间的映射,并在框架中由Hibernate完成SQL语句的运行。一般来说,只需要定义好POJO到数据库表的映射关系,既可通过Hibernate提供的方法完成,持久层的操作。

Hibernate框架是当前最炙手可热的持久层框架,它为JAVA应用提供了一个高效的O/R Mapping 框架。应用通过PO作为Hibernate框架的桥梁,而PO会根据Hibernate的配置文件找到映射文件,并通过映射文件与数据库中的表结构进行运行时的映射。Hibernate的配置文件可以是properties文件配置Hibernate,无法直接在文件中描述映射文件的位置,而需要在编写代码。使用XML配置文件则可以直接配置映射文件位置。

四、系统实现

1、 系统功能模块的设计与实现

(1) 培训管理培训模块的结构与界面

员工培训管理模块主要包括:培训计划模块、培训实施模块、培训材料模块。管理的界面如图4-4所示。

培训管理模块

培训计划模块 培训实施模块 培训材料模块

图4-4 员工培训管理模块界面

(2) 培训计划模块

该模块包括:添加培训任务、添加课程、添加人员、编辑培训任务和查看课程列表。

?

添加培训任务功能的设计与实现如图4-5所示。

图4-5 添加员工信息界面设计

添加培训任务功能说明:根据流程图,本功能是进行所有接下来的操作的基础条件。系统会自动加载本操作的内容到以后的操作里,接下来我们将详细说明。

?

编辑培训任务功能的设计与实现

同时,在新建培训人物以后,操作者仍然可以对具体的培训任务进行编辑。如图4-6所示。

图4-6 编辑培训任务界面设计

?

添加课程列表功能的设计与实现

在操作者对培训任务添加完毕之后,操作者可以继续进行对相应培训任务的相关课程进行添加,如图4-7所示。

图4-7 添加培训课程界面设计

添加培训课程功能说明:页面加载时首先判断是否有培训任务。如果暂时没有培训任务则任务名称框中显示信息为“暂时没有培训任务”,并且课程名称、课程长度及下面的相关信息的文本框均为不可写入状态。只有存在培训任务时,课程名称、课程长度及下面的相关信息的文本框才变为可使用状态,录入所有信息后点击“提交”按钮,即可完成对相应培训任务录入培训课程的操作。由关系图可知,培训任务与培训课程为1对多的关系,所以操作者可以对一项培训任务添加多个培训课程。

?

添加人员列表功能的设计与实现

在培训课程添加之后,操作者可以对具体的培训任务进行人员的添加,详细界面如图4-8所示。

图4-8 添加员工列表界面设计

添加培训课程功能说明:页面加载时会访问数据库判断两个条件:是否存在培训任务且此培训任务是否添加了培训课程;是否存在部门或者部门员工。当两个条件都满足时,操作者可以将一个部门单位的员工,或是指定个人(可是多个),或是全部员工添加成培训对象,这个选择是通过RadioButton来进行选择,点击提交后,则可完成对相应培训任务所属的培训人员的添加。

?

课程列表查看功能的设计与实现

本功能是实现对培训课程信息的查看,编辑,删除等功能,具体设计界面如图4-9所示。

图4-9 课程列表查看界面设计

(3)培训实施模块

该模块功能包括:通知培训人员功能,培训结果评估功能。

?

通知培训员工功能的设计与实现

当相关人员已经添加完毕之后,培训进程就正式开始了。按照培训流程图,此时操作者应该对相应员工进行提醒,通知其参加培训。具体如图4-10所示。

图4-9 课程列表查看界面设计

通知培训员工功能说明:本页面实现的一个功能“发送通知给员工”,点击发送以后,通知将会添加到“个人管理”模块中的“个人培训信息”中。在这里,用于存储培训人员信息的表与“个人培训信息”的表是关联的。当点击发送以后,【是否发送过】的字段值会由0变为1,表示其已经发送的状态。同时,当员工浏览其个人培训信息时,页面会重新载入关联值并显示在个人培训信息页面上,从而达到通知的目的。

?

培训结果评估功能的设计与实现

当员工完成培训任务之后,操作者可以使用本功能对其表现进行评估信息的添加。本功能分为三个步骤,具体如图4-10,4-11,4-12所示。

图4-10 评估结果的显示操作界面

本步功能说明:本步是评估时间的显示过程。本步与培训任务中的培训时间相关联,在页

面加载时会直接检测培训任务完成时间与当前时间是否匹配。当相应的培训任务时间与当前时间匹配或已经在当前时间之前时,系统会从数据库中读取该培训任务的相关信息并自动显示在页面上。此时点击评估,则可对以完成任务所关联的人物进行评估内容的录入。具体界面如图4-11.

图4-11 评估结果的输入界面

本步功能说明:点击评估后,会自动加载符合要求的评估对象显示在评估对象栏中。在操作者进行评估内容的录入,点击提交以后,该页面会自动向表本步自动关联已完成任务中的培训对象,并向表b_foster_f中写入相关信息。完成之后,相关员工能在个人培训信息中查看到关于自己的评估信息。具体如图4-12所示。

图4-11 评估结果在个人培训信息中的显示

(4)培训材料模块

该模块用于培训资料的发布,包含培训书籍发布功能和培训资源上传功能。

?

培训书籍发布功能的设计与实现

本模块用于发布一些培训相关的书籍信息,供员工参考,可对书籍信息进行添加操作删除管理。具体界面如下:

图4-11 书籍信息操作界面

图4-12 书籍信息添加界面

?

培训资源发布功能的设计与实现

本功能与发布书籍类似,但是增加了一个将共享文件上传到服务器的功能,使得用户可以从服务器上下载共享文件。具体界面如图4-13,图4-14所示。

图4-13 共享资源操作界面

图4-14 共享文件上传界面

本功能详细说明:本页添加了一个上传功能,采用了JspSmartUpload组件实现上传文件至服务器的功能。首先在后台源文件中,我们对上传的文件的类型以及上传的目录进行了初始化。当操作者添加完资源相关信息,点击提交的时候,系统会自动匹配该文件的信息是否匹配初始化信息,如果匹配或在初始化信息范围内,系统会执行smartUpload方法。并在上传的同时继续检测文件已上传部分大小,并与初始化文件大小做实时匹配。上传完毕之后,系统会将资源名录入数据库相关字段,如果再上传同名文件,则会提示报警信息:“存在同样的文件名!”提示。

2、关键技术与算法

(1)机构结构图算法

图4-15 机构结构图界面设计

机构结构图的实现过程:当用户载入页面时,系统首先从数据库中获得所有的部门信息,并返回所有部门信息的集合,然后调用递归算法creatTree()生成部门结构图如图4.14所示。递归算法creatTree()代码如下:

public void creatTree(long tid, List tree, JspWriter out, int cengflag) throws ServletException, IOException {

} }

if (tid == 0) {

for (int i = 0; i < tree.size(); i++) { }

String firstr = \;

for (int j = 0; j < cengflag; j++) }

firstr += \;

Dept dep = (Dept) tree.get(j); if (dep.getSuperId() == tid) { }

System.out.println(\ + firstr + dep.getName()

+ \);

out.println(\ + firstr + dep.getName() + \); creatTree(dep.getDeptId(), tree, out, cengflag + 1);

for (int j = 0; j < tree.size(); j++) {

Dept dep = (Dept) tree.get(i); if (dep.getSuperId() == tid) { }

String title = \; String titleEnd = \;

System.out.println(\ + title + dep.getName() + titleEnd + \); out.println(\ + title + dep.getName() + titleEnd

+ \);

creatTree(dep.getDeptId(), tree, out, cengflag + 1); // 递归

} else {

(2)中文乱码处理技术

由于浏览器中的参数传递是按字节传送,因此英文和数字不会有任何的问题,而中文汉字则由两个字节组成.为了解决这个问题,使用了下面的两种方法:

? ?

<%request.setCharacterEncoding(“gb2312”);%>

request.getParameter(\

(3)分页显示算法

package com.csst.humanresource.utils; import java.util.List; public class Pager { private List pageList;

private int nTotalSize; /** 记录的总数 */ private int nTotalPage; /** 总页数 */

private int nPageSize = 5; /** 页面大小 */ private int nCurrentPage; /** 当前页 */

private int nStartRow; /** 当前页要显示记录的开始行数 */ private int nEndRow; /** 当前页要显示记录的结束行数 */ public Pager() {}

public Pager(int currentPage, List pageList) { this.nCurrentPage = currentPage; this.pageList = pageList; setTotalSize(); setTotalPage(); }

public List getPageList() { return pageList; }

public void setPageList(List pageList) { this.pageList = pageList; setTotalSize();

if (nCurrentPage > nTotalPage) { nCurrentPage = nTotalPage; } }

public int getTotalSize() {/** 获取总记录数 */ return nTotalSize; }

public void setTotalSize() {/** 设置总记录数 */ if (pageList != null) {

nTotalSize = pageList.size(); } else {

nTotalSize = 0; }

setTotalPage(); }

public int getTotalPage() {/** 获取总页数 */ return nTotalPage; }

public void setTotalPage() {/** 获取总页数 */ nTotalPage = getTotalSize() / nPageSize; if (nTotalSize % nPageSize != 0) nTotalPage++; }

public int getPageSize() {/** 获取页面大小 */

}

return nPageSize; }

public void setPageSize(int pageSize) {/** 设置页面大小 */ this.nPageSize = pageSize; setTotalPage(); }

public int getCurrentPage() {/** 获得当前页 */ return nCurrentPage; }

public void setCurrentPage(int currentPage) {/** 设置当前页 */ nCurrentPage = currentPage; }

public int getStartRow() {/** 获得当前页要显示记录的开始行 */ nStartRow = (getCurrentPage() - 1) * nPageSize; return nStartRow; }

public int getEndRow() {/** 获得当前页要显示记录的结束行 */ nEndRow = getStartRow() + nPageSize; if (nEndRow >= pageList.size()) nEndRow = pageList.size(); return nEndRow; }

public boolean isFirstPage() {/** 是否为首页 */ if (nCurrentPage == 1) return true; return false; }

public boolean isLastPage() {/** 是否为末页 */ if (nCurrentPage == getTotalPage()) return true; return false; }

(4)字符串加密和解密算法

public static String encrypt(String str){ //加密

char[] string = reverse(str.toCharArray()); for(int i = 0; i < string.length; i++){ string[i] = encryptTransform(string[i]);

string[i] = changeCase(string[i]); }

return new String(string); }

public static String undoEncrypt(String str){ //解密

char[] string = reverse(str.toCharArray()); for(int i = 0; i < string.length; i++) { string[i] = undoEncryptTransform(string[i]);

string[i] = changeCase(string[i]); }

return new String(string); }

private static char[] reverse(char[] ch){ //字符串取反 int len = ch.length / 2;

for(int i = 0; i < len; i++){ swap(ch, i, ch.length - i -1); }

return ch; }

private static char changeCase(char ch) {//大小写转换 if(Character.isLowerCase(ch)){

ch = Character.toUpperCase(ch); }else{

ch = Character.toLowerCase(ch); }

return ch; }

private static char encryptTransform(char ch){ //字母变换(取下一个字母) if((ch >= 'A' && ch < 'Z') || (ch >= 'a' && ch < 'z')) { ch = (char)(ch + 1);

}else if(ch == 'Z' || ch == 'z'){ ch = (char)(ch - 26 +1); }

return ch; }

private static char undoEncryptTransform(char ch){ //字母变换(取前一个字母) if((ch > 'A' && ch <= 'Z') || (ch > 'a' && ch <= 'z')){ ch = (char)(ch -1);

}else if(ch == 'A' || ch == 'a') { ch = (char)(ch - 1 + 26); }

return ch; }

private static void swap(char x[], int a, int b) {//交换字母位置 char t = x[a]; x[a] = x[b]; x[b] = t;

3、数据的安全性

?

将项目发布到互联网上后,有些用户不是点击“超链接”打开网站的某个页面,而是在地址栏中直接输入URL进入试图避开身份验证,处于对安全性的考虑,本项目在用户登陆后才能进入的页面中,加入了如下的一行判断如果用户非法进入,则

看到的将是一片空白页。

String admin=(String)session.getAttribute(“admin”); if(admin ==null){……..}

?

在系统相关信息的管理过程中,常需要相应的参数判断来执行不同的操作,在进行参数的判断时,如果参数为空,就会发生异常。最常见的如:空指针异常,所以在参数处理的过程中采用了一下方法来避免异常的发生。 String param=(String)request.getParamter(“param”); if(“modify”.equals(param)) {//条件true执行相关的操作代码} Else

{//条件false执行相关的操作代码}

五、系统测试

在完成了程序的编写工作后,接下来将进行软件的测试,这里说的软件并不单指程序本身还包括其他方面。测试和开发一样,也是一项技术性很强的工作,有着很多的技巧。软件测试是软件质量保证的主要活动之一,因此测试的质量直接影响软件的质量。

1、 测试的定义及目的

软件测试就是在软件投入运行前对软件的需求分析、设计规格说明和编码的最终复审,是保证软件质量的关键步骤。如果要给软件测试下定义,可以这样将软件测试是为了发现错误而执行程序的过程。

测试的目标是以最少的时间和人力找出软件中潜在的各种错误和缺陷。

2、 测试的原则

对于相对复杂的产品或系统来说Zero-Bug是一种理想,Good-Enough是我们的原则。Good-Enough原则就是一种权衡投入/产出比的原则,不充分的测试是不负责任的,过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们操作的困难在于如何界定什么样的测试是不充分的,什么样的测试是过分的。目前状况唯一可用的答案是制定最低通过标准和测试内容,然后具体问题具体分析。

3、 人力资源管理系统的测试

在完成编码的工作以后,根据以上的方法和步骤进行了如下的测试:

?

界面测试:在不开启Web服务器的情况下,反复点击网页上的超链接,测试其连接情况,直到所有的链接都达到预期的效果。

? ? ? ?

功能测试:对网站的几大功能模块逐一测试,尽最大可能发现起潜在的错误。 性能测试:将程序以局域网的形式发布,查看其是否满足多用户的要求。 需求测试:根据需求分析的内容,测试网站是否和当初的设计一样。

通过这几方面的测试,我及时修正了系统中存在的问题,很好的提高了系统的性能,达到了预期目标。

结束语

经过近两个月艰苦卓绝的努力,总于完成了本毕业设计。从当初选择题目到最后一个功能模块的完成,经历了无数次的错误->修改代码->重启服务器->运行的过程,感觉到平时学的知识是多么的浅薄,书到用时方恨少,现在是体验的真真切切。本来已经耳熟能详的代码,一到IDE中书写却提笔忘字,这充分的反应了我平时的基本功不扎实,常用代码的不熟练。给我以后的工作敲响了警钟,有了努力的方向。

通过本次毕业设计,我也感受到了开源的方便,遇到什么问题上网一查,就知道该怎么弄了,以前做个课程设计都是怕别人和我的一样不愿意给别人看,现在知道了程序弄不出来是多么的着急,学习都是相互的、互相研究才能共同进步的。以后要多多注意这方面的事情。

在系统的开发过程中,以前学习感到很抽象的课程,如软件工程、数据库原理、面向对象程序设等变得清晰起来。感觉到这几门理论课程的重要性。

本次毕业设计是我工作前一次很好的演练和实践的机会,是培养独立思考问题和自学能力的锻炼,我意识到必须努力学习才能才工作中体现自己的价值,适应社会的需要。这次的毕业设计开发,主要有以下几点收获:

?

对原型化的系统开发方法有了一定的了解。渐增式的原型化开发方法与面向对象的程序设计的结合不但能在系统开发初期让用户了解系统的概貌,而且能使系统开发模块化,提高开发效率,减少出错。对于后期的系统维护也提供了很大的帮助。

?

通过实践,提高了系统分析的能力,对数据流图、数据字典、系统流程图等系统

设计工具的使用有了更深刻的认识。为以后的工作、学习的进一步提高打下了坚实的基础。

最后,衷心感谢石庆喜老师和学院领导在整个设计过程中给我的指导和支持,感谢同学们给我的帮助。但是由于毕业设计时间较短,所以该系统可能还有许多不尽如人意的地方,这些都有待进一步改善。

致谢

参考文献

[1]GaryCornell.CoreJava,CayS Horstmann,机械工业出版社,5-7。 [2]Thinking in Java,BruceEckel,北京,机械工业出版社,5-7。

[3]深入浅出Hibernate,夏昕,曹晓钢,唐勇,电子工业出版社9-12。

[4]精通Hibernate:Java对象持久化技术详解,孙卫琴,电子工业出版社,8-10。 [5]Hibernate技术手册,Bryan Basham,电子工业出版社10-15。

[6]精通struts--基于MVC的java web设计与开发,孙卫琴,电子工业出版,21。 [7]SQL 21天自学通,Kathy Sierra,电子工业出版社,23-25。

本文来源:https://www.bwwdw.com/article/vue7.html

Top