基于JSP的人力资源管理系统设计和实现论文Word文件下载.docx
《基于JSP的人力资源管理系统设计和实现论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于JSP的人力资源管理系统设计和实现论文Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
人力资源管理原来都是手工操作的,这样对员工的信息更新有许多不方便。
为了满足人力资源管理的需求,决定用JSP技术开发一个基于B/S的人力资源管理系统。
人力资源管理系统主要进行对人事信息的更新和管理的智能操作。
对员工的出勤,奖惩,部门等信息进行管理,为管理者带来许多方便。
1.3开发工具及技术
此次设计主要采用MyEclipse加Tomcat后台服务器进行,设计过程中页面主要使用JSP技术完成,下面对MyEclipse、Tomcat和SqlServer数据库进行简要介绍。
MyEclipse
Myeclipse是一款功能强大的的集成开发环境,支持代码的编写、配置、测试等等。
它支持HTML,Struts,JSP,JavaScript,SQL,Spring,Hibernata。
Tomcat
Tomcat服务器的一个开源、免费的Web轻量级应用服务器。
Tomcat是Apache服务器的扩展,但是又独立运行。
可以利用它来响应HTML页面的访问请求。
SqlServer
SqlServer2005是一个开放源码的软件,是一个全面的数据库平台。
SqlServer2005为关系型数据和结构化数据提供安全可靠的存储功能。
1.3.2JSP
JSP是Javaserverpage的缩写,是一个简化的Servlet设计,实现了Html语法中的Java扩张。
JSP技术使用Java编程语言来封装产生动态网页的处理逻辑。
JSP将网页逻辑和网页设计的显示分离,支持可重用的组件设计,使程序设计变得快捷和容易。
JSP是多平台支持的,具有强大的可伸缩性,支持服务器端组件,多样化和功能强大的开发工具支持的。
JSP具有request,response,session,application,out,page,config,
exception,pageContext等9大内置对象。
1.3.3JavaScript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,也是一种广泛用于客户端Web开发的脚本语言。
JavaScript是一种面向对象的动态类型的区分大小写的客户端脚本语言,主要用于解决服务器端语言遗留的速度问题,为客户提供流畅的浏览效果。
JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。
2需求分析
2.1需求调研
所谓“需求分析”,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
在软件工程中,需求需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定顾客的需要。
只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法
在项目的开始是需求调研,并且走访了一些大型的公司和企业,经过一系列的调查与谈话中发现,现行的人力资源管理工作还是存在着很多不足之处,手工记录的方式不易保存,容易丢失,同样也不利于数据的查询和统计分析。
根据企业的实际情况及调查结果,发现实现人力资源管理的网络化、信息化是十分有必要的,因此设计了本套人力资源管理系统。
2.2可行性分析
开发任何一个系统,都会受到时间和资源上的限制。
因此,在每一个项目开发之前,都要进行可行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。
下面就技术、经济、操作和法律四个方面来介绍。
本系统开发工具是MyEclipse和SqlServer数据库,开发语言是Java,主要使用了JSP的技术,java是一种面向对象编程语言,简单易学而且灵活方便。
大三时就学习了java课程,大学期间也系统的了解了JavaEE的知识,人力资源管理系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。
在大学期间学习过软件工程,软件测试等课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力。
因此,完成系统实现在技术上完全具有可行性。
如今是信息化时代,信息化管理可以使人力资源管理工作更加系统化、快速化、全面化。
这样可以为企业带来较高的工作效益和经济效益,在提高工作效率的基础上,可以考虑减少人力资源管理人员的数量,本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,再者,企业在管理工作上的高效率和便捷性远远超过了开发本系统的成本,所以在经济上具有完全的可行性。
本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对WINDOWS操作熟练,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所以在技术上不会有很大难度。
本人力资源管理系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。
综上所述,开发一个人力资源管理系统与人工记录的方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立一个人力资源管理系统是必要可行的。
2.3功能模块需求分析
本系统最大的特点是使用操作简单、友好的提示信息。
本系统将实现以下基本功能:
(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示
(2)管理员用户具有做部门管理、员工信息管理、员工工资管理,员工出勤管理、员工奖惩管理、员工招聘管理、修改个人密码等功能
(3)具有较强的安全性,避免用户的恶意操作
(4)管理员功能结构图如图2-1所示
图2-1管理员用户功能模块图
2.4设计的基本思想
设计思想遵循以下几点:
(1)采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页方式的用户。
(2)采用面向对象的开发与设计理念。
运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。
(3)采用模块化设计。
模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。
(4)简单方便的系统界面。
设计简单友好的系统界面,方便用户较快的适应系统的操作。
(5)速度优先原则。
由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。
(6)设计既要突出重点,又要细致周到。
要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。
2.6性能需求
人力资源管理系统在管理权限上要严格进行控制,具体要求如下:
(1)想登陆人力资源管理系统进行操作,必须有某些操作权限,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性。
(2)在具体实现中设定不同权限,不同权限用户登录到系统后,不能越级操作。
(1)各种记录信息的完整性,信息记录内容不能为空
(2)各种数据间相互联系的正确性
(3)相同数据在不同记录中的一致性
2.6界面需求
界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
创建动态页面非常方便。
用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。
(1)输出设计
输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。
系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。
输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。
(2)输入设计
输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。
如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。
输入设计的原则有如下几点:
a.输入量应保持在能满足处理要求的最低限度。
设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。
输入量越少,错误率就越少,数据准备时间也减少。
b.输入的准备及输入过程应尽量容易进行,从而减少错误的发生。
c.应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。
d.输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误
3系统分析与设计
3.1数据库的分析与设计
计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。
数据库已经成为现在信息系统等计算机系统的基础与核心部分。
数据库设计的好坏直接影响到整个系统的质量和效率。
数据库的设计一般经过规划。
需求分析、概念设计、逻辑设计、物理设计5个步骤。
概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。
数据库的概念结构设计采用实体—联系(E-R)模型设计方法。
E-R模型法的组成元素有:
实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。
概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。
概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,
根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。
(
1)实体关系E-R图
图3-1实体关系E-R图
(2)员工信息实体E-R图
图3-2员工信息实体E-R图
(3)部门信息实体E-R图
图3-3部门信息实体E-R图
(4)出勤信息E-R图
图3-4出勤信息实体E-R图
(5)奖惩信息E-R图
图3-5奖惩信息实体E-R图
(6)招聘信息E-R图
图3-6招聘信息实体E-R图
(7)管理员信息E-R图
图3-7管理员信息实体E-R图
(8)工资信息E-R图
图3-78工资信息实体E-R图
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。
即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
(1)每一个实体要转换成一个关系
(2)所有的主键必须定义非空(NOTNULL)
(3)对于二元联系应按照一对多、弱对实、一对一、多对多联系来定义外键。
根据E-R模型,人力资源管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)部门表主要是记录了部门的基本信息。
表结构如表3.1所示。
表3-1部门表(t_organization)
列名
数据类型
长度
允许空
是否主键
说明
id
int
4
否
是
部门ID
name
varchar
20
部门名称
description
50
部门描述
p_id
Int
5
父部门ID
(2)员工信息表主要是记录了员工的基本信息,表结构如图3.2所示。
表3-2员工信息表(t_yuangong)
编号
org_id
部门ID
bianhao
工号
姓名
sex
10
性别
bumenlingdao
是否部门领导
8
yuefen
月份
tianshu
出勤天数
yuangong_id
员工ID
出勤信息表主要是记录了员工出勤的基本信息,表结构如图3-3所示。
表3-3出勤信息表(t_chuqin)
(4)奖惩信息表主要记录了员工的奖惩信息,表如图3-4所示。
表3-4奖惩信息表(t_jiangcheng)
2
shijian
奖惩时间
xiangmu
奖惩项目
shuxing
奖惩属性
jine
奖惩金额
beizhu
备注
(5)招聘信息表主要是管理招聘信息,表结构如图3-5所示。
表3-5招聘信息表(t_zhaopin)
xingming
xingbie
varchar
8
nianling
int
年龄
lianxi
number
联系电话
zhiwei
职位
fujian
255
附件路径
fujianyuanhiming
附件原始名
(6)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表3-6所示。
表3-6管理员信息表(t_admin)
userId
userName
用户名
userPw
密码
(7)工资信息表主要记录员工的工资信息,包括工资月份、工资金额等,表结构如表3-7所示。
表3-7工资信息表(t_gongzi)
工资月份
工资数
采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。
程序采用的是DAO模式来操作数据库,DAO(DataAccessObject,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。
DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。
抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。
其思想如图3.10所示:
封装
使用
创建/使用
获取/修改
图3.10DAO模式类图
图中BussinessObject是业务对象,是使用DAO模式的客户端;
DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;
DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;
DataSource指的是数据源。
可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。
本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:
publicDBContent(){
StringCLASSFORNAME="
Stringurl="
jdbc:
;
databaseName=db_rlzy
Stringuser="
sa"
//连接数据库的用户名
Stringpassword="
sa123qwe"
//连接数据库的密码try{
Class.forName(CLASSFORNAME);
con=DriverManager.getConnection(url,user,password);
//加载数据库的驱动
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(Exceptionex){
ex.printStackTrace();
}
}
在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。
3.2中文乱码问题处理
在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。
因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。
在web.xml中配置:
对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()
publicvoidinit(FilterConfigfilterConfig)throwsServletException{
this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("
encoding"
);
Stringvalue=filterConfig.getInitParameter("
ignore"
for(intj=0;
j<
b.length;
j++){
intk=b[j];
if(k<
0){
k+=256;
sb.append("
%"
+Integer.toHexString(k).
toUpperCase());
}}
returnsb.toString();
}}
4系统功能实现
在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。
在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
4.1系统整体主要流程图
系统整体流程图如图4-1所示
图4-1系