人力资源管理系统设计说明书.docx

上传人:b****5 文档编号:5847102 上传时间:2023-01-01 格式:DOCX 页数:50 大小:2.50MB
下载 相关 举报
人力资源管理系统设计说明书.docx_第1页
第1页 / 共50页
人力资源管理系统设计说明书.docx_第2页
第2页 / 共50页
人力资源管理系统设计说明书.docx_第3页
第3页 / 共50页
人力资源管理系统设计说明书.docx_第4页
第4页 / 共50页
人力资源管理系统设计说明书.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

人力资源管理系统设计说明书.docx

《人力资源管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《人力资源管理系统设计说明书.docx(50页珍藏版)》请在冰豆网上搜索。

人力资源管理系统设计说明书.docx

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

承德石油高等专科学校

计算机与信息工程系

项目设计说明书

实训方向:

j2ee

项目名称:

人力资源管理系统

所属班级:

软件0802

学号:

03

姓名:

****************

主训教师:

周立波

设计时间:

2010/1/5

成绩

评定

二010年1月5日

 

概要

本软件的最终母的是为了企事业单位更好的管理人士信息。

本系统以人力资源管理为目标,以信息管理为基础,容日科学的人力资源管理思想和模式,采用计算机对人立足于安静型管理,为各层工作人员提供快速准确高效的人力资源管理数据。

最终目的是为了实现企事业单位人力资源管理的自动化,规范化和系统化,实现对部门,员工基本信息,考勤,工资等各个方面的自动化规范化以及系统化的管理,使企事业单位在管理人力资源方面更加方便快捷有效。

人事管理系统是一个企事业单位不可缺少的部分,它的内容对于单位决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:

效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对人事信息进行管理,具有手工管理所无法比拟的优点.例如:

检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套人事管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。

 

引言

1.1编写目的

本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。

提供给开发人员进行开发参考,以及测试人员编写单元测试所用。

本说明书的预期读者为:

系统设计者、系统开发员。

1.2背景

待开发软件系统的名称:

人力资源管理系统

此软件系统任务提出者:

中软国际

此软件系统任务开发者:

“一Ja人”小组

此软件系统任务用户:

暂无

1.3基线

人力资源管理系统需求分析说明书v1.0

1.4定义

专门术语

Entity:

实体

UserProfile:

用户的详细信息

Reeducation:

再教育

ReferPeople:

家庭成员

JobHistory:

职位变更的历史记录

Recommendation:

推荐

系统:

若未特别指出,统指本机预定系统。

 

1.5参考资料

序号

文件名

文件编号

发表日期

出版单位或作者

1

《C#编码规范》

2

《HRM系统需求说明书》

2005-3-03

张咏勤

3

《HRM概要设计说明书》

2006-4-6

张咏勤

4

《详细设计说明书》

5

《软件开发计划》

6

用户操作手册

7

《JavaWeb整合开发·王者归来》

1.6术语与缩写解释

缩写、术语

解释

SPP

精简并行过程,SimplifiedParallelProcess

SD

系统设计,SystemDesign

BLL

业务逻辑层

DAL

数据访问层

SQLSERVER

系统服务器所使用的数据库管理系统。

SQL

StructuredQueryLanguage一种用于访问查询数据库的语言

事务流

数据进入模块后可能有多种路径进行处理。

主键

数据库表中的关键域。

值互不相同。

外部主键

数据库表中与其它表的主键关联的域。

HTML

(HyperTextMarkupLanguage超文本标识语言)

模块命名规则

编号

模块名称

模块标识

1

人事信息管理

1.1

基本信息管理

User

1.2

详细信息管理

UserProfile

1.3

工作经验信息管理

Experience

1.4

项目经验信息管理

Project

1.5

技能信息管理

Skill

2

职位变更

2.1

职位空缺登记

Vacancy

2.2

简历信息

同人事信息管理各模块

2.3

面试相关信息

Interview

2.4

领导审批

Interview

2.5

录用情况

JobHistory

3

系统管理

3.1

部门管理

Department

3.2

职位管理

Position

3.3

密码修改

User

2总体设计

2.1概述

2.1.1功能描述

系统包括的范围:

为便于公司高层对员工进行系统的管理,首先由管理员为各部门相关管理人员分配用户名、初始密码。

人事部门需把员工信息(包括:

员工编号、姓名、性别、出生日期、民族、政治面貌、职务、部门、基本工资、备注),招聘计划(包括:

招聘时间、部门、人数、要求),奖惩情况,考试管理,输入到系统的客户端程序,财务部门根据员工一段时间来的工作日来把员工的工资信息(包括:

员工编号、姓名、性别、部门号、基本工资、浮动工资、交通补贴、通讯补贴、常规、午餐补贴、车补、福利、扣除、应发工资)输入到系统的客户端程序。

要求系统能有效、快速、安全、可靠和无误的完成上述操作。

2.1.2运行环境

系统将由两部分程序组成,安装在公司各部门客户机上的客户程序及公司内的数据服务器程序。

2.1.2.1软件环境

分类

名称

版本

语种

操作系统

WindowsXPVistaWIN7

简体中文

操作系统的附加功能

SP4

3

简体中文

数据库平台

Oracle

10g

简体中文

数据库平台补丁

简体中文

应用平台

tomcat

5.5.x

简体中文

应用平台补丁

简体中文

邮件系统

Foxmail

4.2.0

简体中文

客户端软件

MSIE

6.0

简体中文

2.1.2.2硬件环境

服务器

最低配置

推荐配置

应用和数据库服务器

1CPU:

P42.0G

1CPU:

P42.8G

邮件服务器

Foxmail

4.2.0

2.1.3开发环境

MyEclipse、VisualAgeforJava、Fortefor

Java,VisualCafe、Eclipse、NetBeansIDE、JCreator+J2SDK、jdk+记事本、EditPl

us+J2SDK等等。

2.1.3.1服务器软件环境

分类

名称

版本

语种

操作系统

WindowsXPWIN7

简体中文

数据库平台

Oracle

10g

简体中文

数据库平台补丁

简体中文

应用平台

tomcat

5.5.x

简体中文

应用平台补丁

简体中文

版本控制系统

简体中文

目录服务系统

简体中文

邮件系统

Foxmail

4.2.0

简体中文

客户端软件

MSIE

6.0

简体中文

2.1.3.2服务器硬件环境

服务器

最低配置

推荐配置

应用服务器、数据库服务器、邮件服务器、目录服务器

1CPU:

P42.0G

1CPU:

P42.8G

2.1.3.3开发机器软件环境

分类

名称

版本

语种

操作系统

WindowsXPWIN7

7600

简体中文

操作系统的附加功能

SP4

3

简体中文

数据库平台

Oracle

10g

简体中文

应用平台

tomcat

5.0

简体中文

开发平台

MyEclipse

7.0

简体中文

客户端软件

MSIE

6.0

简体中文

2.1.3.4开发机器硬件环境

分类

最低配置

推荐配置

开发机器

1CPU:

P42.0G

1CPU:

P42.8G

2.2设计思想

2.2.1系统构思

2.2.2关键技术与算法

主要采用SQL复制技术进行大量数据同步,并且结合SQL技术进行数据筛选,使传输到移动设备数据达到最小,实际情况中网络状况的不稳定性时,无法利用SQLServer数据复制机制,不能及时将移动设备中征稽系统所有信息传输到中心服务器,在这种情况下,采用XML传输文件同步方式,网络故障时我们把XML数据利用存储设备拷贝到实际中心服务器.在服务器端解析XML文件,把信息传输到服务器。

快速排序,排人的工资,按姓名排序(字母序)。

链表的使用,用链表存人的信息,实现增删改查。

(如果是数据库系统就不能了)。

加密算法。

 

哈弗曼编码,把信息编码输出保存,也可以解密。

1.连接数据库

publicclassConnDb{

privateConnectionct=null;

publicConnectiongetConn(){

try{

Class.forName("oracle.jdbc.driver.OracleDriver");

ct=DriverManager.getConnection("jdbc:

oracle:

thin:

@127.0.0.1:

1521:

ORCL","scott","tiger");

}catch(Exceptione){

e.printStackTrace();

}

returnct;

}

}

 

2.分页算法

publicclassPageSet{

privatePreparedStatementps=null;

privateConnectionct=null;

privateResultSetrs=null;

privateintpageSize=7;//每页显示多少条记录

privateintrowCount=0;//总记录数

privateintpageCount=0;//总页面

publicintgetPageCount(){

try{

ct=newConnDb().getConn();//得到连接

ps=ct.prepareStatement("selectcount(*)fromstaff");

rs=ps.executeQuery();

if(rs.next()){

rowCount=rs.getInt

(1);

if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

}

}catch(Exceptione){

e.printStackTrace();

}finally{

try{

if(rs!

=null){

rs.close();

rs=null;

}

if(ps!

=null){

ps.close();

ps=null;

}

if(ct!

=null){

ct.close();

ct=null;

}

}catch(Exceptione2){

//TODO:

handleexception

e2.printStackTrace();

}

}

returnpageCount;

}

intpageCount=newPageSet().getPageCount();

//分页算法

if(pageNow!

=1){

out.print("

pageNow="+1+">首 页");

out.print("

pageNow="+(pageNow-1)+"> 上一页");

}

if(pageNow==1||pageNow==2){

for(inti=1;i<=5;i++){

out.print("

pageNow="+i+">["+i+"]");

}

}elseif(pageNow==pageCount){

for(inti=pageNow-4;i<=pageNow;i++){

out.print("

pageNow="+i+">["+i+"]");

}

}elseif(pageNow==pageCount-1){

for(inti=pageNow-3;i<=pageNow+1;i++){

out.print("

pageNow="+i+">["+i+"]");

}

}else{

for(inti=pageNow-2;i<=pageNow+2;i++){

out.print("

pageNow="+i+">["+i+"]");

}

}

if(pageNow!

=pageCount){

out.print("

pageNow="+(pageNow+1)+">下一页");

out.print("

pageNow="+pageCount+"> 尾 页");

}

3.上传:

packagecom.inmsg.beans;

importjava.io.*;

importjava.util.*;

importjavax.servlet.*;

importjavax.servlet.http.*;

publicclassUpload{

privateStringsaveDir=".";//要保存文件的路径

privateStringcontentType="";//文档类型

privateStringcharset="";//字符集

privateArrayListtmpFileName=newArrayList();//临时存放文件名的数据结构

privateHashtableparameter=newHashtable();//存放参数名和值的数据结构

privateServletContextcontext;//程序上下文,用于初始化

privateHttpServletRequestrequest;//用于传入请求对象的实例

privateStringboundary="";//内存数据的分隔符

privateintlen=0;//每次从内在中实际读到的字节长度

privateStringqueryString;

privateintcount;//上载的文件总数

privateString[]fileName;//上载的文件名数组

privatelongmaxFileSize=1024*1024*10;//最大文件上载字节;

privateStringtagFileName="";

publicfinalvoidinit(HttpServletRequestrequest)throwsServletException{

this.request=request;

boundary=request.getContentType().substring(30);//得到内存中数据分界符

queryString=request.getQueryString();

}

publicStringgetParameter(Strings){//用于得到指定字段的参数值,重写request.getParameter(Strings)

if(parameter.isEmpty()){

returnnull;

}

return(String)parameter.get(s);

}

publicString[]getParameterValues(Strings){//用于得到指定同名字段的参数数组,重写request.getParameterValues(Strings)

ArrayListal=newArrayList();

if(parameter.isEmpty()){

returnnull;

}

Enumeratione=parameter.keys();

while(e.hasMoreElements()){

Stringkey=(String)e.nextElement();

if(-1!

=key.indexOf(s+"||||||||||")||key.equals(s)){

al.add(parameter.get(key));

}

}

if(al.size()==0){

returnnull;

}

String[]value=newString[al.size()];

for(inti=0;i〈value.length;i++){

value[i]=(String)al.get(i);

}

returnvalue;

}

publicStringgetQueryString(){

returnqueryString;

}

publicintgetCount(){

returncount;

}

publicString[]getFileName(){

returnfileName;

}

publicvoidsetMaxFileSize(longsize){

maxFileSize=size;

}

publicvoidsetTagFileName(Stringfilename){

tagFileName=filename;

}

publicvoidsetSaveDir(StringsaveDir){//设置上载文件要保存的路径

this.saveDir=saveDir;

Filetestdir=newFile(saveDir);//为了保证目录存在,如果没有则新建该目录

if(!

testdir.exists()){

testdir.mkdirs();

}

}

publicvoidsetCharset(Stringcharset){//设置字符集

this.charset=charset;

}

publicbooleanuploadFile()throwsServletException,IOException{//用户调用的上载方法

setCharset(request.getCharacterEncoding());

returnuploadFile(request.getInputStream());

}

privatebooleanuploadFile(ServletInputStreamservletinputstream)throws//取得央存数据的主方法

ServletException,IOException{

Stringline=null;

byte[]buffer=newbyte[256];

while((line=readLine(buffer,servletinputstream,charset))!

=null){

if(line.startsWith("Content-Disposition:

form-data;")){

inti=line.indexOf("filename=");

if(i〉=0){//如果一段分界符内的描述中有filename=,说明是文件的编码内容

StringfName=getFileName(line);

if(fName.equals("")){

continue;

}

if(count==0&&tagFileName.length()!

=0){

Stringext=fName.substring((fName.lastIndexOf(".")+1));

fName=tagFileName+"."+ext;

}

tmpFileName.add(fName);

count++;

while((line=readLine(buffer,servletinputstream,charset))!

=null){

if(line.length()〈=2){

break;

}

}

Filef=newFile(saveDir,fName);

FileOutputStreamdos=newFileOutputStream(f);

longsize=0l;

while((line=readLine(buffer,servletinputstream,null))!

=null){

if(line.indexOf(boundary)!

=-1){

break;

}

size+=len;

if(size〉maxFileSize){

thrownewIOException("文件超过"+maxFileSize+"字节!

");

}

dos.write(buffer,0,len);

}

d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1