JA V A语言程序设计设计说明书人事管理系统起止日期:2008 年12 月6 日至2008 年12 月21日学生姓名刘辉班级计051学号0540810128成绩指导教师(签字) 文志诚副教授计算机与通信学院2008年12月26日目录1 绪论 (1)1.1课题背景 (1)1.2系统开发关键技术介绍 (1)2 需求分析 (3)3 系统分析 (4)4 系统设计 (6)4.1设计思想 (6)4.2系统功能模块设计 (6)5 数据库设计 (8)5.1数据库逻辑结构设计 (8)5.2系统E-R图 (8)5.3数据库表设计 (10)6 系统实现 (12)6.1系统运行环境 (12)6.2数据库连接池 (12)6.3增加新部门 (14)6.4挂起人员 (17)7 总结与展望 (19)参考文献 (20)致谢 (21)课程设计检查表 (22)1 绪论1.1课题背景每个企业都有员工,每个员工都有自己的信息,对员工信息的管理就是人事管理。
人事管理系统以企业的员工为中心,把企业的人事管理与信息技术结合起来,将人员的相关信息都放在数据库中。
系统使用都可以对大量的人员信息进行科学、有效、快捷、统一的管理,也可以为决策者提供参考依据。
所以人事管理系统帮助企业规范管理制度、更有效管理人事档案资料,降低成本,使企业管理水平更加科学化,现代化。
本系统主要利用到的技术包括:MVC三层架构开发模式,即Jsp+Servlet+JavaBean三层结构,通过这种设计模型把应用逻辑、处理过程和显示逻辑分成不同的组件来实现,这些组件可以进行交互和重用;数据库连接池的使用,如果程序需要连接,则从此池中取出一个连接使用,使用完后又返回给该池,使这些连接可以复用,提高效率。
1.2系统开发关键技术介绍本系统采用的是MyEclipse + Dreamweaver工具开发系统程序,使用Oracle 10g做数据库后台。
该系统是基于Jsp +JavaBean + Servlet模型的,即所谓的MVC 模式的框架。
这种框架具有的优点是结构清晰,实现了html语言和后台代码的分离。
代码易于重用,系统易于维护。
该框架详细介绍如下:MVC(Model-View-Controller)模的基本思想是数据,显示和处理相分离模型(Model)负责数据管理,它封装了应用程序的数据结构和事务逻辑,集中体现了应用程序的状态。
视图(View)负责数据显示,它是应用程序的外在表现。
它可以访问模型的数据,却不了解模型的情况,同时它也不了解模型的情况,也不了解控制器的情况。
控制器(Controller)负责业务逻辑和响应策略。
它对用户的输入作出反应并且将模型和视图联系在一起,它创建并设置模块。
Servlet能够接受客户端的HTTP 请求,屏弃根据需要所创建所需的JavaBean,然后将模块产生的变化通知给绘图。
另外,我们在前台对数据库表的数据进行调用的时候,采用了数据库存储过程,这样就使得数据库的安全性更高,数据的调用、存储更有条理。
在相关联的表之间,我们还采用了触发器,进行后台的自动触发,使系统职能化。
系统MVC总体结构设计如图1.1所示:图1-1系统MVC总体结构设计2 需求分析一个企业一定有自己的机构组织结构,在每个机构下有相应员工。
人事管理者要根据企业的实际建立起企业的机构组织结构,如果企业的机构组织发生了变化,如更名、撤消、增加等,管理者要及时地修改企业的机构组织的。
人事管理者还要在各个机构组织下建立各员工的信息档案,并根据实际情况进行相应的维护,如修改一个员工的信息档案,将员工从一个部门移动到另外一个部门、当员工离开企业时从系统中删除该员工的信息档案等。
需求分析是人事管理系统开民的第一步,也是最重要的一步,而理解需求是在问题及其最终解决方案之间加高桥梁的第一步。
系统开发者只有充分理解了客户的需求之后才能开始设计系统,否则,一旦需求定义发生任何改进,在设计上都可能需要大量的返工。
下面是本系统的文本需求说明。
◆管理者进入系统后,要能够很清晰地看到企业的机构组织形式,并能够很方便地进入到各个管理功能模块。
◆管理者能够根据企业的实际来实时地改变系统中的机构组织。
主要的改变包括:当有新部门成立时,要将新部门加入到系统中;当有部门发生变更时,如更名、上级部门改变了等,要将变更信息在系统中及时更新;当有部门被撤消时,要从系统中将该部门的信息删除。
◆企业的机构组织的是分级的,最多可以有六级。
◆可以向已经建立的部门下新增人员,并将人员的基本信息输入到系统中去。
◆可以对人员进行修改。
修改的范围有:人员的基本信息,将人员从一个部门移动到另外一个部门。
◆可以删除人员,但是删除的人员要能够被复原回来。
◆可以对人员进行查询。
3 系统分析通过分析人事管理系统我们可以得知,此系统的功能可以划分为两块:◆组织机构管理:组织机构的显示、增加、修改、删除;◆人员管理:人员的增加、修改、查看、挂起、恢复、删除、查询。
根据这两个方面的功能,我们就能够划分出系统中的功能模块。
下面分别描述各个模块以及该功能模块要实现的功能。
3.1.1组织机构的显示在该模块中,要能够很清晰地显示出企业的机构组织形式,能够从组织机构显示界面很方便快捷进入其它的功能模块。
3.1.2增加新的部门增加新组织机构时,要先确定新的部门的上级部门是谁,然后输入新部门的基本信息。
基本信息包括:新部门的名称、它在系统中的排列序号。
对于其他信息,信息系统将会给赋予一个默认值。
3.1.3修改部门信息当一个部门的信息发生变化时,要对相关信息进行修改。
修改的信息有:部门的上级部门、该部门的名称、该部门的排列序号等。
3.1.4删除被撤消的部门当一个部门被撤消后,要将其在系统中的信息删除。
删除一个部门是有条件的:首先该部门下没有子部门,其次该部门下没有人员,只有满足了这两个条件才能将一个部门删除。
3.1.5增加人员每个部门下都都能增加人员。
增加人员时,要先确定他属于哪个部门,然后输入人员的各种信息,包括:姓名、在职状态、用户性质、工号、性别、出生年月、民族、政治面貌、学历、职称、办公电话、家庭电话、移动电话、家庭地址、邮政编码、QQ、Email、个人简介等。
3.1.6修改人员信息当人员的信息发生变化后,要修改系统中该人员的信息,主要的修改内容有:修改人员所属部门、修改人员的在职状态、修改人员的用户性质和修改人员的其他基本信息。
3.1.7 查看人员信息该模块用来让管理者查看指定人员的详细信息。
3.1.8挂起人员当人员离开企业或者其他情况使该人员不属于企业的在职人员时,就要将该人员从在职人员中删除,此时的删除不是从系统中真正的删除该人员的信息,只是修改了人员的状态,将人员挂起。
3.1.9 恢复挂起人员和删除人员当被挂起的人员的信息仍然需要时,可以将他恢复为在职状态。
如果挂起人员的信息真的不再需要时,可以将他从系统中删除。
3.1.10查询人员管理者可以根据自己的需要来查询系统中的人员。
查询的条件可以是姓名、工号等,可以指定查询的部门,也可以指定是否精确查询。
4 系统设计4.1设计思想(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)整个系统采用MVC模式设计。
该程序框架清晰,具有较强的可重用性和可扩展性。
(3)合理的数据流程设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
4.2系统功能模块设计根据对人事管理系统的需求分析及系统分析,我们可以将系统划分为两个大的功能:组织机构管理功能和人员管理功能。
对模块功能进行划分,我们可以得出系统模块结构图如图4-1所示。
图4-1 系统模块结构图人事管理系统的中心对象是部门和人员,根据以上的模块划分和功能分析可知,该系统的的主要描述的是对部门和人员的维护。
部门管理和人员管理虽然被划分到两个不同的系统模块,但是他们之间的联系是很紧密的,因此系统的基本流程只有一个。
图4-2描述的是人事管理系统的操作流程。
首先管理者要增加部门、对部门进行维护,然后才能在部门中增加人员并对人员进行维护。
图4-2 系统流程图5 数据库设计5.1数据库逻辑结构设计根据功能模块划分的结果可知,本系统的操作对象有两类:组织机构和人员,因此在系统中要记录组织机构和人员的数据。
由于组织机构和人员性质和操作功能大不相同,因此在此系统中我们需要分别进行数据记录。
首先需要如下两个数据实体:部门数据实体:该实体记录各个组织机构的信息,包括部门编号、上级部门编号、部门名称、部门级别序号和部门状态等信息。
人员数据实体:该实体记录各个部门下的人员的信息,包括人员所属部门、姓名、在职状态、用户性质、工号、性别、出生年月、民族、政治面貌、学历、职称、办公电话、家庭电话、移动电话、家庭地址、邮政编码、QQ、E-Mail、个人简介等信息。
5.2系统E-R图1、系统E-R模型,如图5-1所示:图5-1 系统E-R模型2、部门实体信息E-R模型,如图5-2所示:图5-2 部门实体信息E-R模型3、人员实体信息E-R模型,如图5-3所示图5-3 人员实体信息E-R模型4、字典表实体信息E-R模型,如图5-4所示图5-4 字典表实体信息E-R模型5.3数据库表设计本系统利用JSP + JavaBean + Servlet + Oracle10g进行数据库的开发,其基本表的设计如下:1、字典表(CODE_ZDB):用于存放一些字典数据记录表5-1 字典表(CODE_ ZDB)2、部门表(ZZ_BMB):用于存放部门记录表5-2 部门表(ZZ_BMB)3、人员表(ZZ_ZGB):用于存放人员记录表5-3 人员表(ZZ_RGB)6 系统实现6.1系统运行环境(1)用户界面本系统采用jsp+javabean+servlet设计,用户交互界面采用的是基于Windows的窗口界面。
(2)硬件接口运行本系统的硬件基本要求如下:CPU:Intel P3及以上;内存:512MB及以上;硬盘:40GB及以上。
(3)软件接口Tomca1.4 、Oracle10g 、jdk 1.46.2数据库连接池我们知道,在实现一个功能时,首先要连接数据库。
那么,如果我们在每一次进行数据库操作前都需要加载驱动、创建连接,那么连接的入口参数处理将十分零散,不好管理和维护。
一旦系统移植,数据数据库参数改变,则需要重新修改所有的连接代码,然后重新编译。
这项工作很复杂,但不是必要的,是可以省去的。
所以我们采用了一个数据库连接池类来统一管理数据库的连接。
此类中的主要函数有:创建数据库连接池函数DBConnectionPool,通过该函数可以创建一个连接池。
public DBConnectionPool(String name, String URL, String user, String password, int maxConn) {this.this$0 = paramDBConnectionManager;this.freeConnections = new Vector(); = name;this.URL = URL;er = user;this.password = password;this.maxConn = maxConn;}●从数据库连接池获得连接函数getConnection。