搜索
您的当前位置:首页正文

(JAVA)人事管理系统java论文.doc

来源:星星旅游


目录

第一章 可行性分析和需求分析 ........................................................................................................ 2

1.1可行性研究 ........................................................................................................................... 2 1.1.1经济可行性 ........................................................................................................................ 2

1.1.1经济可行性 ................................................................................................................ 2 1.1.4 ..................................................................................................................................... 2 1.2 需求分析 .............................................................................................................................. 3

1.2.1 需求规定 ................................................................................................................... 3 1.2.2 功能需求: ............................................................................................................... 3 1.2.3性能需求 .................................................................................................................... 5 1.2.4 其他需求 ................................................................................................................... 6 1.3 数据流图 .............................................................................................................................. 6 第二章 数据库设计 ......................................................................................................................... 11

2.1MySQL的概述 ................................................................................................................... 11 2.2系统数据实体结构描述 ..................................................................................................... 11 第三章 系统测试 ............................................................................................................................. 13 第四章 系统运行结果 ..................................................................................................................... 15 第五章 核心代码 ............................................................................................................................. 18

项目总结 ................................................................................................................................... 23

第一章 可行性分析和需求分析

1.1可行性研究 1.1.1经济可行性

采用传统的手工出入方法,不仅工作繁琐而且需要人力输入多,记录容易出错,那样穿

绳成本高,效果差的弊病,对于一个企业的资料建立是十分困难和麻烦的。而采用这种系统所花费的成本,精力都远远低于手工,而且使用十分方便,更新也十分容易,每个部门只需要一个人统一管理,对企业实现办公无纸化能起到很大的作用。锁业此系统可行性也就具备了。

1.1.1经济可行性

随着国内软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。而这个系统尽管其在组织关系上存在着很大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统。其基本操作还是对存在数据库进行添加、删除、查找、编辑等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。

1.1.4

查看 人事管理系统 登录对话框 员工档案 工资 管理 部门设置 用户管理 修改 查 询 添加 修改 删除 修改密码

1.2 需求分析 1.2.1 需求规定

在人事管理系统中,管理员要为每个企业员工建立管理查询账户,并給企业员工发放登陆账户及密码,账户内存储员工的个人信息和工作记录信息。企业员工可以通过自己的账户登陆系统,查询个人信息及一些公共信息,

登陆系统时,先输入自己的账号,系统验证账户的有效性和登陆账户的权限,无效则提示其原因,有效则显示员工的基本信息。然后打开自己所要查询或者管理的相关信息,若有修改权限的管理人员,即可进行相应的管理。

系统管理员定期或不定期对企业员工信息进行入库、修改、删除等人事信息管理以及注销,包括基本信息管理。

为系统维护人员提供权限管理、数据备份等通用功能。

1.2.2 功能需求:

1)员工档案

实现员工信息的查询与添加,员工查询条件分员工姓名和员工编号两类,能够查询的基本信息为员工姓名、员工编号以及所属部门。添加新员工包含员工的详细信息,如姓名、性别、民族、政治面貌,出生日期、部门、职务、联系电话等等。

工资管理

工资管理主要实现员工工资查询,查询条件含月份、员工姓名及员工编号。

工资信息里除员工的基本信息如姓名、部门、职务等以外,还包含了员工工资所处银行,银行账号及实发工资。

部门设置

部门设置实现现有部门的信息显示以及部门管理,部门管理可实现对现有部门的删除、修改功能,也可实现部门的新增功能。

用户管理

用户管理主要实现对当前用户的密码修改

1.2.3性能需求

由于此开发项目针对企业单位,使用频度较高,使用性要求比较高。为防止对信息资料和管理程序的恶意破坏,要求有较为可靠的安全性能。总之,要求稳定、安全、便捷,易于管理和操作。

 查询速度:不超过10秒;

 其它所有交互功能反应速度:不超过3秒;  可靠性:平均故障间隔时间不低于200小时。

1.2.4 其他需求

能快速恢复系统和故障处理,方便系统升级和扩充,故障恢复时间不超过5小时。

1.3 数据流图

 顶层图

 企业员工 人事管理系统 管理员

一层图

企业员工 管理员

系 输入你的用户 登录系统

系统设置

进入 进入 进入 进入

P1 P3 P4 P2

员工档部门设用户管工资管

案 置 理 理

二层图

企业员工 管理员 返回 输入你的用户 登录系统 系统设置 档案管理 查询 修改 P1 P3 P4 P2 编号介绍 查看 员工档用户管工资管返回部门设 P4.1 案 P2.3 P3.1 P3.2 P1.1 P2.1 置 理 理 P2.2 修改查部门员工编 工资返回主页面 密码看简介 号对应添加新查询 和用全部门 员工 户 部 D2 数据存储 D3 数据存储 修改 更改 删除 添加 返回 P1.2 P1.4 P1.3 P1.5 P1.6 D4 数据存储 修改信删除员更改照添加工返回 息 工 片 资信息 信 信息 信息清单 信息清单 信息清单 信息清单 信信息返息清信息清 息清单 清单 回 清数据存储 D5 返返D1 数据存储 单 单 返回 回 回 返回 D6 数据存储

功能分解后的数据流图: 登入系统 系统设置 P1 P2 P3 P4 员工档工资管部门设用户管 案 理 置 理 管理员

登入系统

员工档案管理管理

P1 P2 查看全 添加新部员工 员工

管理员

登入系统 员工详细信息 C P1 P2 修改信更改照 息 片 管理员 P3 删除员工 P4 添加工资信息 P5 返回 第二章 数据库设计

2.1MySQL的概述

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008

年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.2系统数据实体结构描述

用户信息表:用于记录用户信息

功能名称:用户信息表(user) 存储位置:用户信息表 数据元素 存储组织:用户信息信息一条记录 数据采集方式 说明 主键:Id

Id Username Password 自动采集 人工采集 人工采集 主键,必须输入 必须输入 必须输入 相关数据主要功能模块:用户管理 员工信息表:记录员工基本信息

功能名称:员工信息表(personnel) 存储位置:员工信息记录 数据元素 personnelid name Sex Nation Faction birthday department Position Contactphone Mobile Usemodus pohto 存储组织:员工信息一条记录 数据采集方式 自动采集 自动采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 说明 主键,必须输入 不允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 主键:personnelid 相关数据主要功能模块:员工文档管理 部门信息表:记录部门信息

功能名称:部门信息表(department) 存储位置:部门信息 存储组织:部门信息一条记录 数据元素 Departmentid 数据采集方式 自动采集 说明 主键,必须输入 主键:CheckDate

Departmentname Remark 人工采集 人工采集 允许空值 允许空值 相关数据主要功能模块:部门管理 工资表:记录员工工资信息

功能名称:工资表(wage) 存储位置:工资表 存储组织:员工工资一条记录 数据元素 Wageid Time Name Personnid Department Position bank Banknumer Pay 数据采集方式 自动采集 自动采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 人工采集 说明 主键,必须输入 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 允许空值 主键:Wageid 相关数据主要功能模块:工资管理 第三章 系统测试

3.1 系统测试分析

在企业人事管理系统开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,示经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是企业人事管理系统开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占系统开发总工作量的40%以上。所以,我们必须重视测试工作。

由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。

从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。 3.1.1 单元测试

单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。 3.1.2 组合测试

组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。 3.1.3 确认测试

确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。 3.1.4 系统测试

系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。 3.1.5 用户验收测试

在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。

在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。

第四章 系统运行结果

4.1 首先在首页,输入用户名和登陆密码系统,用户可是系统管理员,也可以是普通员工。

4.2然后进入的是系统的主页面,其中主要包括:1.员工档案管理2.工资管理3.用户管理

4.3下面显示的是员工档案管理的界面布局及所实现的功能:1.查看全部员工2.添加新员工

4.4以下是工资管理项的界面,功能是:根据用户输入的内容和选择的查询条件,输出相应的员工工资

4.5以下是部门管理的页面,输出内容是员工编号所对应的部门及部门简介

4.6最后是用户管理,实现的功能是修改用户的登陆密码

第五章 核心代码

UserDao:

package biyesheji.struts.User;

public interface UserDao { public boolean Lonig(UserVo uv); public void xiuugaipass(UserVo vo); }

package biyesheji.struts.User; UserFactry:

public class UserFactry { public static UserDao getusersmple(){ return new UserSmple(); } }

UserVo:

package biyesheji.struts.User;

public class UserVo { private String VOusername; private String VOpassword; public String getVOusername() { return VOusername; } public void setVOusername(String ousername) { VOusername = ousername; } public String getVOpassword() { return VOpassword; } public void setVOpassword(String opassword) { VOpassword = opassword; } }

UserSmple :

package biyesheji.struts.User;

import java.sql.PreparedStatement; import java.sql.ResultSet;

import java.sql.SQLException;

import biyesheji.struts.*; public class UserSmple implements UserDao{ //登陆判断

public boolean Lonig(UserVo uv){ boolean bool=false; String sql =\"select * from user where username=? and password=?\"; Database db=new Database(); try { PreparedStatement ps=db.database().prepareStatement(sql); ps.setString(1, uv.getVOusername()); ps.setString(2, uv.getVOpassword()); ResultSet rs=ps.executeQuery(); if(rs.next()){ bool=true; ps.close(); rs.close(); db.Close(); } } catch (SQLException e) { e.printStackTrace(); } return bool; } //修改密码 public void xiuugaipass(UserVo vo){ String sql =\"update user set password=?;\"; Database UD=new Database(); try {

PreparedStatement ps=UD.database().prepareStatement(sql); ps.setString(1, vo.getVOpassword()); ps.executeUpdate(); ps.close(); UD.Close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl */

.Useraction:

package biyesheji.struts.Useraction;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.actions.DispatchAction;

import biyesheji.struts.User.*;

import biyesheji.struts.Userform.UserForm;

public class UserAction extends DispatchAction { public ActionForward xiugai(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UserForm userForm = (UserForm) form; UserVo vo = new UserVo(); vo.setVOpassword(userForm.getPassword()); UserFactry.getusersmple().xiuugaipass(vo); return mapping.findForward(\"xiugai\"); } public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UserForm userForm = (UserForm) form; UserVo vo = new UserVo(); vo.setVOusername(userForm.getUsername()); vo.setVOpassword(userForm.getPassword()); if(UserFactry.getusersmple().Lonig(vo)){ return mapping.findForward(\"loginok\"); }else{ ActionMessages erorr = new ActionMessages(); erorr.add(\"LoginErorr\ this.saveErrors(request, erorr); return mapping.getInputForward(); } }

} /*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl */

Userform;

package biyesheji.struts.Userform;

import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage;

public class UserForm extends ActionForm { private String username; private String password; public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if(this.username == null || \"\".equals(this.username)) { errors.add(\"namenull\ } if(this.password == null || \"\".equals(this.password)) { errors.add(\"passnull\ } return errors; } public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub } public String getUsername() { return username; }

}

public void setUsername(String username) { this.username = username; }

public String getPassword() { return password; }

public void setPassword(String password) { this.password = password; }

项目总结

通过这次项目的开发,我们学习到了整个开发软件的标准流程,以及在开发过程当中团队合作分工的重要性。能更加深刻地理解了软件开发的相关知识,锻炼了开发能力,知识得到了很大的拓展。在进行分析,设计,编码,调试,维护这几部分的工作的时候,最核心的就是文档的编写。文档的作用在于以下3个方面:一是可以帮助整理思路。把要完成的目标,系统的结构,每一个模块的功能等整理一下,然后分门别类地写下来,这样在开发的过程中,就有据可依,在需要回过头来修改设计的时候,也有证可考。二是便于交流。想象一下开会时的情形,一大帮子人争先恐后,激烈辩论,然后会终人散,思想灵感也就随之散了,结果是开了半天会,什么也没讨论出来。这就是后来会议记录被发明出来的原因。在脑子里的东西一多,就会散而且乱,用语言表达的时候,很容易会丢三落四,别人也很难把握住你的思想。但经过整理写在纸上以后,则会清晰得多,无论是别人还是自己,看起来都可以一目了然。三是可以作为以后维护时的参考资料。有一句名言:“笔和纸永远都比大脑可靠”,意思就是说,放在大脑里的东西说不准哪天就忘了,但写在纸上的东西,只要不发生什么意外,一般是丢不了的。当过了一段时间,你需要再回过头来修改你的程序的时候,你就会发现,你以前写下的文档实在太有价值了。别指望你的源代码,对于复杂一点的程序来说,单纯的源代码几乎会扼杀掉你所有的时间。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top