人事管理系统Word文件下载.docx
《人事管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《人事管理系统Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。
分层结构设计特点:
本系统采用界面-数据库两层结构,将不同的复杂数据库操作或业务逻辑划分为独立的模块,所有的数据库创作均由用户叶面调用来完成,提高了系统的安全性和可移植性。
分层信息管理:
系统采用双层信息分来进行信息的组织管理,使信息的分类归属更清晰,不仅提高了信息的利用效率,而且方便了用户的查看和检索。
JSP语言是嵌入Java代码HTML语言,两种标记混杂,在一定程度上使开发更方便,但也存在问题,例如混杂的代码易出错,
同时,系统涉及复杂操作的不同功能独立出来,作为一个模块来设计,在需要用到特定功能的程序,仅需进行调用即可。
这样不仅避免了程序代码中不必要的重复,更重要的是使系统层次更为清晰,极大地方便了以后系统功能的增加,在一定程度上也减少了开发成本。
2系统分析
2.1用户工作流程
在用户登陆后,用户可以对工作和人员进行查询、更新和修改,其中对工作管理只要是对部门和职位进行管理;
对人员管理只要是对员工的个人档案、考核情况、职位变更等信息进行管理。
管理主要包括增加、删除和修改。
2.2用户业务需求
(1)该管理软件将对人员进行资料管理和统计;
(2)该管理软件将根据用户的需要对增加、删除和修改情况进行查询;
(3)该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码;
(4)该管理软件提供企业人员管理,能够对企业员工的分类管理,新员工的加入以及员工删除,修改进本信息等功能。
3系统设计
3.1设计思想
(1)系统分成前台和后台几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。
作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
3.2系统功能结构图
根据对信息管理系统进行可行性分析和结构化程序设计的要求,得到系统总体结构如图3-1所示:
图3-1人事管理系统功能结构图
3.3模块功能设计
作为一个具有应用价值的管理信息系统,在本质上说,其操作对象为数据库中存储的具体记录,因此,不仅要求所有使用的数据库系统具有比较高的稳定性、安全性及高负载下保持足够响应的能力,还要求设计者清楚需求,作为科学家的数据库逻辑结构设计,以提高数据库的利用效率,减少数据冗余。
本系统共包括两大模块,分别是工作管理模块和人员管理我模块。
每个模块的功能如下:
1.人员管理模块功能:
(1)实现个人档案信息的查询;
(2)实现个人档案信息的更新,包括增加、删除、修改功能;
(3)实现考核信息的查询;
(4)实现考核信息的更新,包括增加、删除、修改功能;
(5)实现职位变动信息的查询;
(6)实现职位变动信息的更新,包括增加、删除、修改功能;
2.工作管理模块功能:
(1)实现职位信息的查询;
(2)实现职位信息的更新,包括增加、删除、修改功能;
(3)实现部门信息的查询;
(4)实现部门信息的更新,包括增加、删除、修改功能;
4系统数据库设计
4.1系统数据库的建立
数据库的设计尽量的实现与应用程序做到最低等级的耦合,按照三层模式两级联系的方式设计数据库,把数据库设计成层次清晰的,高效的,实用数据库。
在该系统的数据库设计方面,把数据库的设计分为四层:
基本表,视图,包,存储过程。
其中视图作为联系存储过程与基本表的桥梁必须进行认真的设计,在最外层,包中包含存储过程耀勇到的一些信息,也可以认为包和存储过程是处于相同的层次,不将存储过程放置在包中,是考虑到对进行数据库基本表、视图以及功能型的存储过程扩展的时候应尽量避免和减少对系统的层次模型的影响。
以降低产生错误的可能。
但在数据库设计已经相对稳定的情况下,可以将存储过程置于包中,由于这是第一次使用ORACLE开发系统,兼顾上面的原因,而采用了包与存储过程分离的方式。
因为该系统是采用两层架构设计的,可通过应用服务器的扩展来实现新功能的添加。
而在该课程设计的内容定义方面,保证了数据的独立性,该系统对数据记录的操作也因为其课程设计中定义的数据操作方式和操作内容而注定不会产生脏数据及数据读写的不一致性,故在数据库设计方面未采用触发器。
我们认为在扩展应用服务器至多种功能后,将应用服务器分为控制部分和客户应用部分,此时在控制部分添加触发器来防止数据读写的不一致性,这已经超出了本次课程设计所涉及的范围,在此不做过多的陈述。
4.2系统E-R图
1.E-R模型
人事管理系统数据库E-R模型,如图4.1所示:
图4.1数据库E-R模型图
4.3各个数据表的创建
由数据模型利用Oracle10g进行数据库的详细设计,其基本表的设计如下:
表4.1用户信息列表(userinf)
Field
Type(Length)
Nullable
Default
ID
NUMBER(10)
--
NAME
VARCHAR(50)
YES
USERNAME
PASSWORD
VARCHAR(50)
USERDEPT
USERLEVEL
FORBID
NO
SEENOTICE
ALLOW_SEE_ALL_WORKDEP
ALLOW_SEE_DEPT_WORKDEP
ALLOW_WRITE_COMPLAN
ALLOW_CONTROL_DEPT_USER
ALLOW_CONTROL_ALL_USER
ALLOW_SEND_NOTE
ALLOW_XONTROL_NOTE
ALLOW_CONTROL_FILE
ALLOW_WRITE_STAFINF
ALLOW_XONTROL_LEVEL
ALLOW_EDIT_PERSON_PERSONINF
ALLOW_SEE_ALL_PERSONINF
ALLOW_SEE_DEPT_PERSONINF
ALLOW_EDIT_ALL_JOBCHANGINF
表4.2考核信息列表(checkinf)
NAMBER(10)
CHECKNAME
SYSDATE
CHECKDATE
CHECKCOMMMENT
VARCHAR(1000)
CHECKSORT
YES
一般
CHECKTYPE
未完成
CHECKRESULT
REMARK
RECNAME
RECDATE
DATE
UPDATENAME
UPDATEDATE
表4.3职位变动记录信息表(checkjob)
DLDJOB
CHANGJOB
CHANGDATE
CHANGFILE
ARCHAR(50)
CHANGPERSON
VVARCHAR(1000)
RECUSERNAME
UPDATEUSERNAME
表4.4个人档案信息表(personinf)
INPUTDADE
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
PHTOT
BFILE
HAVEPHOTO
4.4触发器设计
修改dept1表中的dept字段,同时对userinf表中的userdept字段进行修改。
createorreplacetriggereditDept1
afterupdateondept1foreachrow
begin
updateuserinf
setuserdept=:
new.dept
whereuserdept=:
old.dept;
endeditDept1;
修改userinf表中的name字段,同时对checkinf表中的username字段进行修改。
createorreplacetriggereditUserinf
afterupdateonuserinfforeachrow
updatecheckinf
setusername=:
new.name
whereusername=:
old.name;
endeditUserinf;
4.5数据库的连接
应用程序与Oracle10g数据库的连接是通过JDBC,然后在程序中利用代码与数据库建立连接来实现的。
具体实现方法是:
在模块中声明调用JDBC连接控件,这样便能在任何时间连接数据库了。
使用CONN对象连接到Oracle10g。
在查询等按钮的单击事件中访问数据库。
可以使用应用程序配置文件建立一条到数据库服务器的连接,返回一个关键字ConnectionString,在实体数据链路层定义一个用于一个基类DBdata.cs在这个基类中接受该关键字ConnectionString,使用SqlConnection连接数据库。
配置文件连接数据库的代码:
Stringurl="
jdbc:
oracle:
thin:
@localhost:
1521:
orcl"
;
//orcl为你的数据库的SID
Stringuser="
gov"
Stringpassword="
sa"
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
5系统实现
5.1系统实现工具与支持平台
(1)用户界面
本系统采用Eclipse+Tomcat设计,用户交互界面采用的是基于web的窗口界面。
(2)硬件接口
运行本系统的硬件基本要求如下:
CPU:
IntelP3及以上;
内存:
512MB及以上;
硬盘:
40GB及以上。
(3)软件接口
IE6.0浏览器或者其他同类浏览器
数据库服务器:
Oracle10g。
5.2系统界面
下面为运行后的界面图:
图5.1系统登录界面
图5.2人事管理主界面
图5.3工作管理分界面
图5.4人员管理分界面
图5.5部门管理
图5.6个人档案管理
图5.7考核管理
图5.8职务变动
5.3系统主要功能实现
1.前台
前台仅包括登陆后必须且仅需的功能,尽可能地做到简化操作程序,利于用户快捷、准确地进行操作。
功能包括前台各个部门的管理等;
下载后台资料和将清款后的业务数据上传后台;
完成前台交易中的扫描条码或输入商品编码、收款、打印收据、弹出银箱等一系列操作。
●支持多用户同时登陆。
●记录用户登陆信息、累计用户登陆次数等功能。
●支持多地点办公
●用户非常规操作记录,有助于减少用户操作时间,方便汇总打印各种业务报表。
2.后台
充分利用数据库的大容量、高效率等特点,为用户提供强大的功能支持,并处理分分部门数据和后台批事务处理,为管理者提供分析与决策必需的数据和信息。
5.4系统核心代码
设置数据库连接字符串:
<
%@pageimport="
java.sql.*"
%>
%Class.forName("
oracle.jdbc.driver.OracleDriver"
).newInstance();
登陆界面代码:
%@pagecontentType="
text/html;
charset=gb2312"
%@includefile="
JSP/OPENDB.jsp"
%!
Stringusername,password,sqlname;
%
//登录
request.setCharacterEncoding("
GB2312"
);
username=request.getParameter("
username"
password=request.getParameter("
password"
if((username!
=null)&
(password!
=null))
{
//打开数据库查找是否有此用户
sqlname="
select*fromuserinfwhereusername='
"
+username+"
'
andpassword='
+password+"
andforbid='
no'
ResultSetrt=stmt.executeQuery(sqlname);
if(rt.next())
{
if(rt.getString("
)!
="
){
session.putValue("
oabusyname"
rt.getString("
name"
));
oabusyusername"
oabusyuserdept"
userdept"
oabusyuserlevel"
userlevel"
cook_allow_see_all_workrep"
allow_see_all_workrep"
cook_allow_see_dept_workrep"
allow_see_dept_workrep"
cook_allow_control_dept_user"
allow_control_dept_user"
cook_allow_control_all_user"
allow_control_all_user"
cook_allow_send_note"
allow_send_note"
cook_allow_control_note"
allow_control_note"
cook_allow_control_file"
allow_control_file"
cook_allow_control_level"
allow_control_level"
//如果有此用户就进入系统
response.sendRedirect("
system.jsp"
}
}
html>
head>
title>
人事管理系统<
/title>
metahttp-equiv="
Content-Type"
content="
charset=gb2312"
>
linkrel="
stylesheet"
href="
9pp.css"
type="
text/css"
/head>
tdwidth="
44%"
valign="
top"
<
divalign="
center"
p>
br>
imgsrc="
IMAGES/LOGIN.GIF"
width="
308"
height="
100"
/p>
tablewidth="
350"
border="
0"
cellspacing="
cellpadding="
233"
background="
image/b.jpg"
tr>
tdalign="
251"
&
nbsp;
formmethod=postaction="
login.jsp"
tableborder=0cellpadding="
tdheight="
35"
用户名:
inputtype=textname=usernamesize=10>
/td>
/tr>
密<
fontcolor="
#FFFFFF"
--<
/font>
码:
inputtype=passwordname=passwordsize=10>
/table>
inputtype=submitname=submitvalue="
登录"
/form>
/div>
/