企业员工信息管理系统的设计与实现(论文 + 源码)

【免费】关于企业员工信息管理系统.zip资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/JW_559/89288191

企业员工信息管理系统的设计与实现

摘  要

随着电子信息的飞速发展,计算机已经融入到了生活的各个方面,越来越多的企业开始使用电子计算机来对企业进行管理,信息化的时代已经到来,各个企业无论大小都需要一个信息化的管理系统来对自己公司内部的员工信息进行管理,企业员工信息管理系统是一个针对此问题而进行开发的系统,使得公司的员工管理不如现代化,开启了一个新的管理模式。

本文首先对比了国内外企业员工信息管理的现状,明确了需求的不同以及需要吸收借鉴的部分,然后在员工信息管理的需求基础上,通过系统的功能需求与系统的可行性分析,确立了企业员工信息管理系统的基本功能,构建了该系统的框架以及结构设计,然后对该系统的各个功能的主要代码进行分析、设计,最后对系统的各个功能进行测试,完成了本次系统的开发。企业员工信息管理系统分为两大模块,管理员模块和普通员工模块,管理员可以操作系统的所有功能,主要包括部门管理、员工信息管理、出勤管理、工资管理以及请假审核等功能;为了信息的保密以及系统的安全性,普通员工只具有查看工资以及请假的功能。

文章以需求分析,系统概要设计,系统功能实现,系统测试等为主要内容,详细介绍了一个基于Web技术的B/S结构的企业员工信息管理系统。本系统主要使用MyEclipse软件进行程序编写,使用JSP作为前台的开发语言,使用MySql作为后台的数据库管理系统,服务器采用tomcat,开发出的一个适应现代社会发展的企业员工信息管理系统。

关键词:员工信息,JSP,B/S结构

The design and implementation of enterprise employee information management system

ABSTRACT

With the rapid development of electronic information, computer has been integrated into all aspects of life, more and more enterprises begin to use computer to manage the enterprise, the information age has arrived, regardless of the size of each enterprise needs an information management system to the company's internal staff information management, employee information a management system is to solve this problem for the development of the system, making the company's employee management as the modernization, opening a new management mode.

This paper first compares the present situation of domestic and foreign enterprise employee information management, clarifies the different demand and need to absorb the part, and then the demand based on the employee information management, through the feasibility of functional requirements and system analysis, establishes the basic function of enterprise staff information management system, construct the system framework and structure design, and then the main code for each function of the system is analyzed and designed, and finally test the various functions of the system, completed the development of this system. Employee information management system is divided into two modules, administrator module and general staff module, the administrator can all functions of the operating system, including department management, employee information management, attendance management, salary management and audit functions in order to leave; information security and secrecy system, general staff wages and leave only with a view the function of.

This paper takes requirement analysis, system outline design, system function realization and system test as the main contents, and introduces a B/S enterprise employee information management system based on Web technology in detail. This system mainly uses MyEclipse software to program and use JSP as the development language, using MySQL as the background database management system, using Tomcat server, an information management system for enterprise employees adapt to the development of modern society developed.

Keywords: employee information,JSP,B / S structure

  1. 绪论

1.1课题背景

计算机网络技术的发展,给信息时代的人们带来了很大的方便。如今在Internet上,随处都可以看到种类繁多的信息管理系统,比如,企业办公化自动管理系统,电子商务系统,高校教务管理系统等等。随着信息技术的日益发展已深入到社会的各个角落,各个大的企业,都充分意识到传统的手工管理模式已经逐渐不能适应时代的发展,为了更好的发展,纷纷开发适合自己的管理系统。不管大企业。各种员工信息的小企业也是如此,企业的管理层也深深意识到这一点,以前管理大多为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。他们希望有一个适合自己的管理系统,能够实现员工信息管理,部门管理,请假管理,考勤管理等功能。通过此系统,管理者可以对员工的信息做出及时的修改,通过电脑的数字化管理,方便的管理员工信息,这样可以提高工作效率,解放管理员的双手,也使得管理员工信息所需的各项信息能方便快速进行录入,查询和更新,各种功能能够相应的实现,对相应关键数据也能够方便的统计结果。

当前大量企业的员工管理不能及时的对员工的信息做出修改,管理员与员工之间不能进行良好的互动,尚需要进行手工传达信息,不但效率低下还常常因为信息不能及时的传达下去而造成损失。因此大多数企业需要设计一个高效的企业员工信息管理系统以帮助企业对员工进行更好、更快的管理,加强上级与下级之间的联系,达到提高企业工作效率的目的。员工信息管理系统设计的主要目的是对企业员工的信息进行集中管理,方便对员工的信息进行及时的更新,上级的命令能够准确、高效的传达下去,方便企业建立一个高效的、准确的员工信息数据库。它是以SQL 数据库作为开发平台,使用jsp编写程序完成数据的各项功能并使用SQL数据库形成数据进行数据存储。

1.2目的和意义

长久以来,企业员工信息管理工作基本上采用的都是过时的管理方式来记录员工的相关信息,这种管理方式的缺点很明显,比如说,员工请假方面需要员工亲自手工申请才能达到请假的目的,严重浪费了太多时间,减少了企业的工作效率。对于小规模企业来说,员工想对较少,这种管理方式还勉强可以接受,但对于规模比较大的企业来说,员工的信息比较多,人工记录非常容易出错,极大的增加了信息管理人员的负担。在国内,大多数企业原有的管理方式已经适应不了形势的发展,急需进行改进,当前的形势下,计算机的出现加强了企业的发展,急需一个信息化管理的系统来实现对员工信息的管理,加强企业的管理模式,使企业更好的适应社会的发展,能够在当前全速发展的浪潮中全速发展。建立一个信息化管理的员工信息管理系统是企业适应社会发展形势的必经之路。

为满足企业发展需求,决定采用各种编程语言JSP开发了基于B/S架构的员工信息管理系统,员工信息管理系统是涉及信息科学、数据计算和计算机技术的复杂的人机交互系统。通过该系统,可以对员工信息管理工作以及考勤工作进行信息化管理,加强上下级之间的联系,有效地记录并查询员工信息、考勤等情况,使企业的员工管理更加高效。

1.3研究的目标与内容

本次论文是企业员工信息管理系统,通过现代化的计算机技术,实现员工信息的高效、快速的管理,有利于加强企业对员工的管理,缩短了企业在员工管理方面的时间,通过该系统能够对员工信息进行整理,分类管理,有利于企业的长久发展。

该系统主要是方便企业对员工信息的管理,主要包括一下几个方面:

  • 能够对部门信息进行管理,方便添加、 修改、删除部门信息,来适应企业今后的发展;
  • 对员工信息进行管理,方便对员工的归属部门,以及员工的基本信息进行录入、管理等操作,实现规范化管理;
  • 对员工的出勤、工资等信息进行电脑化管理,方便企业的一体化管理。
  • 保证员工信息的安全、完整,避免造成信息的泄漏, 员工造成不必要的损失。

1.4软硬件需求

硬件需求:

CPU:Core(IM) i5以上计算机

内存: 4G以上

软件需求:

操作系统版本:Windows XP以上系统

开发工具:MyEclipse 8.5

后台服务器:Apache Tomcat 6.0

开发语言:Java

浏览器:IE8.0

1.5本文组织结构

本文共分为五章,安排如下:

第一章阐述了项目的背景与意义,简单介绍了本次研究的内容与系统软硬件方面的需求。

第二章对系统进行需求分析,通过对系统的功能需求分析以及技术可行性、经济可行性分析、操作可行性分析和法律可行性分析,确立了系统的基本功能,设立了系统的基本模型。

第三章对系统进行概要设计,首先介绍了系统的设计原则,接着对系统的功能进行模块划分,然后对系统进行概念结构设计以及物理结构设计等。

第四章对系统进行详细设计,首先对系统的登录界面进行设计,然后分别对管理员模块和员工模块进行设计,其中管理员模块和员工模块分别又分为若干的小模块,依次对其进行设计。

第五章主要对系统的功能进行测试,首先介绍了系统的测试计划以及方法,然后对系统的各个模块分别进行测试,确保系统能够正常运行。

第六章对本文所做的工作进行全面总结,对存在的问题进行说明并提出解决办法,对进一步工作进行展望。

2  需求分析

2.1系统功能需求

本系统主要针对的是企业员工的信息管理项目而设计。在项目的确立之初,通过与企业管理人员的相互交流,发现了目前所用系统中所存在的一些问题,并对其进行研究,根据企业对员工信息管理方面的需求,做出了以下几方面的需求分析。

2.1.1系统功能需求

系统用户分为两级:管理员与普通员工。系统采用基于Web技术的B/S框架进行设计,确立了企业员工信息管理系统主要功能需求有以下几个方面:

  • 管理公司员工的基本信息:

员工基本信息管理主要负责对员工的基本信息进行管理与更新,基本信息包括姓名,性别,年龄,职位,部门,是否领导,帐号,密码。通过对基本信息的管理,可以清楚的了解员工的信息,及时对员工信息的更新,有助于增加企业对员工的管理。普通员工只能修改自己的密码,不用更改其他信息。

  • 管理公司的部门信息:

公司部门信息的管理主要用于对员工进行分类,分布于各个部门之下,能够及时并准确的找出该员工目前的工作状态。部门管理主要包括添加部门以及添加子部门,删除部门等操作,便于及时更新部门信息。

  • 管理员工的出勤信息:

员工出勤信息的管理主要用于对员工的出勤月份以及天数进行管理,便于计算员工的工资等。出勤信息主要包括月份,天数以及员工姓名,管理员可以录入员工的出勤天数,普通员工只能查看而不能进行更改。

  • 管理员工的工资信息:

员工工资信息的管理主要用于对员工的每个月的工资进行管理,便于对员工的工资进行管理。工资信息主要包括月份,金额以及员工姓名,管理员可以录入员工的工资信息,普通员工只能查看而不能进行更改。

  • 员工的请假审核信息:

员工的请假审核主要用于管理员对员工的请假进行审核并加以回复,便于对员工的请假进行管理。请假主要包括姓名,开始时间,结束时间,请假事由,审核状态以及回复信息,管理员进行回复时说明是否批准以及回复信息,使员工有一个直观的了解,员工可以进行请假申请并查看自己当前请假的状态。

2.1.2用户特点

1.主要用于公司内部使用,要求操作简单使用,便于企业人员进行操作使用。

2.对于中小型公司,员工较少,相应的对系统的要求也比较少,一般的数据库便足以使用。

3.由于涉及到用户的基本信息,因此系统具有相应的安全措施,防止用户信息的泄漏。

2.2系统模型

2.2.1参与者

参与者是系统的外部用户。系统用户分为两级:管理员及普通用户。管理员主要是企业的系统管理者,管理着主要用来管理公司的部门信息,员工的基本信息,出勤,工资以及请假审核等,主要用来录入员工的一切信息,并及时进行核实,防止有错误发生。由于系统的功能比较简单,对于电脑有一定的基础便可完成系统相应的需求。普通用户为底层用户,可以查询自己的出勤,工资以及请假状态,不能对其做出更改。

2.2.2管理员用例图

管理员是系统的管理者,其中包括六大功能模块,管理员拥有系统的最高权限,可以操作部门、员工、工资等信息,对所有的信息进行更改,适应公司的变化。用例图如图2.1所示:

图2.1 管理员用例图

2.2.3普通员工用例图

出于安全性的考虑,普通员工用户只有请假申请、浏览工资和浏览出勤等功能,其他的删除修改功能都没有设计。普通员工用例图如图2.2所示:

图2.2 普通员工用例图

2.3可行性分析

开发任何一个管理系统,都会受到来自各方面的限制,其中人力、物力上的限制更为明显。因此,在每一个软件项目开发之前,都需要进行可行性分析,来减少项目中所可能走的弯路,减少项目的开发时间以及资源上的浪费。下面就技术、经济、操作和法律四个方面来介绍。

2.3.1技术的可行性

本系统采用的开发工具是MyEclipse和MySQL数据库,MyEclipse是在eclipse 基础上加上自己的插件开发而成的,已经具有多年的历史,技术也已经成熟,具有功能强大的集成开发环境;开发语言是Java,主要使用了J2EE的技术,在大三期间就系统的学习了J2EE的技术,难度不大,java是一种面向对象编程语言,简单易学而且灵活方便,能够熟练的掌握并应用与时间中。JSP与Servlet一样,是在服务器端执行的,Java Servlet是JSP的技术基础,JSP具备了java技术的简单易用,页面由HTML代码和嵌入其中的Java代码所组成。大二期间就学习了java课程,对Java的相关技术也有了一定的了解,能够完成系统基本的开发,也系统的了解了J2EE的知识,企业员工信息管理系统在技术上的问题并不大,大学期间学习的只是完成能够完成本次的开发任务。

在大学期间学习了软件工程导论,java基础,面向对象编程,软件开发等课程,每门课程都会有相应的实验来完成,初步学习了简单的的系统分析、设计、测试和维护,基本掌握了软件开发的流程。因此,完成该系统在技术上完全具有可行性。

2.3.2经济的可行性

现如今已经进入了信息化时代,各行各业都在朝着信息化发展,信息化管理可以使员工信息管理工作在时间空间上都得到很大的提高,相应的减少了企业在这方面所花费的人力、物力等不必要的资源,虽然短期内开发系统的的花费更高,但从长远来看,这用一劳永逸的办法是可行的。通过信息化管理,可以为企业带来较高的工作效益和经济效益,在提高工作效率的基础上,可以考虑减少员工信息管理人员的数量,本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,再者,企业在管理工作上的高效率和便捷性远远超过了开发本系统的成本,所以在经济上具有完全的可行性。

2.3.3操作可行性

本系统操作简单,现有的开发工具和技术JSP、MySQL

完全能够实现。输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对WINDOWS操作熟练,加之对本系统的操作稍加培训即可工作,本系统对管理人员和用户没有任何的特殊要求实际操作基本上以鼠标操作为主并辅以少量的键盘操作操作方式很方便。因此该项目便于操作,具有基本的电脑只是便能够熟练使用该系统,具有良好的易用性。

2.3.4法律的可行性

本员工信息管理系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。

综上所述,开发一个员工信息管理系统与人工记录的方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立一个员工信息管理系统是必要可行的。

3  系统概要设计

概要设计主要完成系统软件结构及数据结构的设计。本章主要探讨了系统设计的相关内容,包括功能模块划分以及数据库设计。

3.1系统设计原则

设计思想遵循以下几点:

  • 采用B/S模式进行开发,是WEB兴起后的一种网络结构模式,其优点是后台与前台处理层次分明,大多数用户都已经习惯了传统的网页模式,不需要进行更大的改动就能够适应该系统。对员工的出勤、工资等信息进行电脑化管理,方便企业的一体化管理。
  • 采用面向对象的开发与设计理念。可以进行一抽象数据类型为特点的基于对象的程序设计,他的前提是对系统的整体有一个全面的了解,通过他可以保证系统的优良,来保证开发出的系统具有良好的稳定性与实用性。
  • 采用模块化设计。是将系统分为若干个功能模块,逐个实现系统的功能,有利于软件的开发、测试以及维护等功能,加强了系统的稳定性以及后期的维护过程。
  • 简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。
  • 速度优先原则。在开发过程中由于实际的需要,所开发出来的系统要尽量做到简洁,一方面利于测试人员的工作,最主要的是要是整个系统所占的资源达到最少,运行速度尽可能的达到最快,来实现企业快速发展的需求。
  • 设计既要突出重点,又要细致周到。要符合企业的基本需求,在有缺陷的地方同企业进行商量并改进,使系统能够完全实现用户的需求,并尽可能的实现在后期添加功能的需求。

3.2系统架构设计

本系统针对的是企业员工信息管理系统设计的,根据需求分析,系统分为两大功能模块:管理员模块和普通员工模块。如图3.1所示:

图3.1功能结构图

  •  管理员模块又分为六个子模块,,以下是六个模块的详细说明:

修改密码:管理员用来修改自己的密码,防止因为密码的泄漏而造成用户信息的泄漏,提高系统的安全,

部门管理:用来管理企业的部门信息,便于对员工进行分类管理。

员工管理:用来管理员工的基本信息,及时对员工的基本信息进行管理,便于企业掌握目前的员工状态,对员工做出合理的安排。

出勤管理:用来管理员工的出勤信息,及时对员工的出勤天数进行录入与修改,便于对员工应得的工资做出合理的安排。

工资管理:用来管理员工的工资信息,根据员工的出勤天数以及工作进行工资录入,及时更新员工的工资,有利于员工的安定,促进企业的发展。

请假管理:用来对员工的请假进行审核,关注员工的请假信息,并及时做出回复,加强对员工当前状态的了解。

  •  员工用户分为三个子模块,以下是三个模块的详细说明:

修改密码:及时修改自己的密码,防止自己的信息造成泄漏。

请假申请:在系统中提出自己的请假申请,填明请假时间级原因,便于管理员做出合理的安排。

查询工资:能够及时查询自己的工资信息。

3.3数据库设计

企业员工信息管理系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分。数据库设计的好坏直接影响到整个系统的质量和效率。

数据库的设计一般经过需求分析阶段、概念设计阶段、逻辑设计阶段、数据库物理设计阶段、数据库实施阶段以及数据库运行与维护6个步骤。

3.3.1数据库的概念结构设计

数据库的概念结构是由分析到生成概念产品的一系列过程,概念设计是完整而全面的过程,设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。

概念设计的目标是产生用户所需求的概念信息,直观的展示出不同用户所具有的不同的功能,即概念模式。

根据以上对信息管理系统的需求分析,以及对系统概念模型的了解,首先建立E-R模型图。

实体

        

属性

3.3.2数据库的逻辑结构设计

逻辑结构设计是将概念设计阶段所得到的概念模型转换为逻辑结构模型,E-R模型向关系数据库模型转换应遵循下列原则:

1)每一个实体要转换成一个关系

2)所有的主键必须定义非空(NOT NULL)

3)对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。

根据E-R模型的特点,员工信息管理系统相应的建立了各个信息的逻辑模型。

以下是不同表的基本信息

(1)部门表主要是记录了部门的基本信息。表结构如表3.1所示。

表3.1部门表(t_organization)

列名

数据员工信息

长度

允许空

是否主键

说明

id

int

4

部门ID

name

varchar

50

部门名称

description

varchar

50

部门描述

p_id

Int

5

父部门ID

(2)员工信息表主要是记录了员工的基本信息,表结构如图3.2所示。

表3.2员工信息表(t_yuangong)

列名

数据员工信息

长度

允许空

是否主键

说明

id

Int

4

编号

org_id

Int

4

部门ID

bianhao

varchar

50

工号

name

varchar

50

姓名

sex

varchar

50

性别

bumenlingdao

varchar

50

是否部门领导

loginname

varchar

50

登陆账号

loginpw

varchar

50

登陆密码

(3)出勤信息表主要是记录了员工出勤的基本信息,表结构如图3.3所示。

表3.3出勤信息表(t_chuqin)

列名

数据员工信息

长度

允许空

是否主键

说明

id

Int

4

编号

yuefen

varchar

4

月份

tianshu

varchar

50

出勤天数

yuangong_id

Int

4

员工ID

(4)请假信息表主要记录了员工的请假信息,表如图3.4所示。

表3.4请假信息表(t_qingjia)

列名

数据员工信息

长度

允许空

是否主键

说明

id

int

2

编号

kaishishijian

varchar

50

开始时间

jieshushijian

varchar

50

结束时间

yuangong_id

int

50

员工编号

beizhu

varchar

50

备注信息

shenhezhuangtai

varchar

50

审核状态

huifuxinxi

varchar

50

恢复信息

(5)公告信息表主要是管理发布的公告订单信息,表结构如图3.5所示。

表3.5工资信息表(t_gongzi)

列名

数据员工信息

长度

允许空

是否主键

说明

id

int

4

编号

yuefen

varchar

4

月份

jiner

 Int

10

工资

yuangong_id

Int

4

员工ID

(6)管理员信息表主要记录的管理员的账号信息,表结构如图3.6所示。

表3.6管理员信息表(t_admin)

列名

数据员工信息

长度

允许空

是否主键

说明

userId

int

4

编号

userName

varchar

50

用户名

userPw

varchar

50

密码

3.3.3数据库的连接原理

采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(Data Access Object,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图3.7所示:

图3.7  DAO模式类图

图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:

public DBContent(){

String CLASSFORNAME="com.mysql.jdbc.Driver";//连接数据库的驱动

String url="jdbc:mysql://localhost:3306/rlzy";

String user="root";//连接数据库的用户名

String password="123456";//连接数据库的密码

try{

Class.forName(CLASSFORNAME);

con= DriverManager.getConnection(url,user,password);//加载数据库的驱动

stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

}

catch(Exception ex){

ex.printStackTrace();

}

}

在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。

4  系统详细设计

在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。

4.1系统登陆页面实现

1.描述:为了保证系统的安全性,要先使用本系统必须先登陆到系统中,并且不同角色的用户进入不同的界面,功能也随之不同。

2.程序运行效果图如图4.1所示:

图4.1 系统登陆页面设计

3.在登陆页面输入用户名和密码以,选择登陆身份后,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,并根据相应的用户角色进入对应的页面,loginservice关键代码:

public String login(String userName,String userPw,int userType)

{

System.out.println("userType"+userType);

try

{

Thread.sleep(700);

} catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

String result="no";

if(userType==0)//系统管理员登陆

{

String sql="select * from t_admin where userName=? and userPw=?";

Object[] params={userName,userPw};

DB mydb=new DB();

mydb.doPstm(sql, params);

try

{

ResultSet rs=mydb.getRs();

boolean mark=(rs==null||!rs.next()?false:true);

if(mark==false)

{

 result="no";

}

else

{

 result="yes";

 TAdmin admin=new TAdmin();

 admin.setUserId(rs.getInt("userId"));

 admin.setUserName(rs.getString("userName"));

 admin.setUserPw(rs.getString("userPw"));

 WebContext ctx = WebContextFactory.get();

 HttpSession session=ctx.getSession();

 session.setAttribute("userType", 0);

             session.setAttribute("admin", admin);

}

rs.close();

}

catch (SQLException e)

{

System.out.println("登录失败!");

e.printStackTrace();

}

finally

{

mydb.closed();

}

}

if(userType==1)

{

String sql="select * from t_yuangong where del='no' and loginname=? and loginpw=?";

Object[] params={userName,userPw};

DB mydb=new DB();

mydb.doPstm(sql, params);

try

{

ResultSet rs=mydb.getRs();

boolean mark=(rs==null||!rs.next()?false:true);

if(mark==false)

{

 result="no";

}

else

{

    result="yes";

    Yuangong yuangong=new Yuangong();

yuangong.setId(rs.getInt("id"));

yuangong.setBianhao(rs.getString("bianhao"));

yuangong.setName(rs.getString("name"));

yuangong.setSex(rs.getString("sex"));

yuangong.setShifoubumenlingdao(rs.getString("shifoubumenlingdao"));

yuangong.setLoginname(rs.getString("loginname"));

yuangong.setLoginpw(rs.getString("loginpw"));

yuangong.setOrg_id(rs.getInt("org_id"));

yuangong.setDel(rs.getString("del"));

 WebContext ctx = WebContextFactory.get();

 HttpSession session=ctx.getSession();

 session.setAttribute("userType", 1);

             session.setAttribute("yuangong", yuangong);

}

rs.close();

}

catch (SQLException e)

{

System.out.println("登录失败!");

e.printStackTrace();

}

finally

{

mydb.closed();

4.2管理员模块

1.描述:管理员主页面:左方页面展示了管理员可操作的六大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。

2.程序运行效果图如图4.2所示:

图4.2管理员主页面

在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:

if(session.getAttribute("user")==null)

{

 out.print("<script>alert('请先登录!');window.open('../index.jsp','_self')</script>");  

}

4.2.1部门信息管理

4.2.1.1部门信息录入

1. 描述:管理员输入部门相关正确信息后点击录入按钮,如果是没有输入完整的部门经理信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法οnsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。

2. 程序效果图如下图4.3所示:

图4.3 部门信息录入

3.流程图如下图4.4所示:

图4.4 部门经理信息录入流程图

4.2.1.2部门信息管理

1.描述:管理员点击左侧的菜单“部门管理”,页面跳转到部门管理界面,调用后台的servlet类查询所有部门经理。

2.程序效果图如下图4.5所示

图4.5 部门信息管理

部门管理关键代码:

public void orgMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

List orgList=new ArrayList();

String sql="select * from t_organization where del='no'";

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TOrganization organization=new TOrganization();

organization.setId(rs.getInt("id"));

organization.setName(rs.getString("name"));

organization.setDescription(rs.getString("description"));

organization.setP_id(rs.getInt("p_id"));

organization.setDel(rs.getString("del"));

organization.setParenOrganization(liuService.getOrg(rs.getInt("p_id")));

orgList.add(organization);

    }

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();

req.setAttribute("orgList", orgList);

req.getRequestDispatcher("admin/org/orgMana.jsp").forward(req, res);

}

public void orgAdd(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

String name=req.getParameter("name");

String description=req.getParameter("description");

int p_id=Integer.parseInt(req.getParameter("p_id"));

String del="no";

String sql="insert into t_organization values(?,?,?,?)";

Object[] params={name,description,p_id,del};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("msg", "操作成功");

req.getRequestDispatcher("common/msg.jsp").forward(req, res);

}

public void orgDel(HttpServletRequest req,HttpServletResponse res)

{

int orgId=Integer.parseInt(req.getParameter("orgId"));

String sql="update t_organization set del='yes' where id="+orgId;

Object[] params={};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "org?type=orgMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

4.2.1.3部门信息删除

1.描述:先是点击部门管理,页面跳转到部门管理界面,浏览所有的部门信息,点击要删除的部门,弹出的确定对话框,即可删除该部门信息。

2.程序效果图如下图4.6所示

图4.6 部门信息删除

4.2.2员工信息管理

4.2.2.1员工信息信息录入

1.描述:在此页面主要是输入员工的基本信息,包括姓名、性别、年龄、部门编号、登陆账号、密码等,年龄检验输入是否为数字,是否为空也是通过form表单中的οnsubmit="return checkForm()来检查。

2.程序效果图如图4.7所示:

图4.7员工信息信息录入

4.2.2.2员工信息管理

1.描述:管理员点击左侧的菜单“员工管理”,页面跳转到员工管理界面,调用后台的yuangongServlet类查询出所有的员工信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出员工信息。

2.程序效果图如下图4.8所示

图4.8 员工信息管理页面

员工管理关键代码:

public void yuangongAdd(HttpServletRequest req,HttpServletResponse res)

{

int org_id=Integer.parseInt(req.getParameter("org_id"));

String bianhao=req.getParameter("bianhao");

String name=req.getParameter("name");

String sex=req.getParameter("sex");

String shifoubumenlingdao=req.getParameter("shifoubumenlingdao");

String loginname=req.getParameter("loginname");

String loginpw=req.getParameter("loginpw");

String del="no";

String sql="insert into t_yuangong values(?,?,?,?,?,?,?,?)";

Object[] params={org_id,bianhao,name,sex,shifoubumenlingdao,loginname,loginpw,del};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "yuangong?type=yuangongMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

public void yuangongDel(HttpServletRequest req,HttpServletResponse res)

{

int id=Integer.parseInt(req.getParameter("id"));

String sql="update t_yuangong set del=? where id=?";

Object[] params={"yes",id};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "yuangong?type=yuangongMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

public void yuangongMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

List yuangongList=new ArrayList();

String sql="select * from t_yuangong where del='no' order by org_id desc";

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

Yuangong yuangong=new Yuangong();

yuangong.setId(rs.getInt("id"));

yuangong.setBianhao(rs.getString("bianhao"));

yuangong.setName(rs.getString("name"));

yuangong.setSex(rs.getString("sex"));

yuangong.setShifoubumenlingdao(rs.getString("shifoubumenlingdao"));

yuangong.setLoginname(rs.getString("loginname"));

yuangong.setLoginpw(rs.getString("loginpw"));

yuangong.setOrg_id(rs.getInt("org_id"));

yuangong.setDel(rs.getString("del"));

yuangong.setOrganization(liuService.getOrg(rs.getInt("org_id")));

yuangongList.add(yuangong);

}

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();

req.setAttribute("yuangongList", yuangongList);

req.getRequestDispatcher("admin/yuangong/yuangongMana.jsp").forward(req, res);

}

4.2.3出勤管理

4.2.3.1出勤录入

1.描述:输入月份和出勤天数点击提交按钮即可。

2.程序效果图如图4.10所示:

图4.10 出勤录入

4.2.4修改密码

1.描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。

2.程序效果图如图4.11所示:

图4.11 修改密码

4.2.5工资管理

1:描述:可以选择删除员工工资信息,也可一选择工资录入,进入员工工资录入界面。

2:删除员工工资如下图4.12所示:

图4.12删除员工工资

增添员工工资如下图4.12所示:

图4.12增添员工工资

4.2.6请假审核管理

1.描述:用于对员工请假进行回复管理。

2. 查看员工请假信息如下图4.13所示

图4.13查看员工请假信息

回复员工请假信息如下图4.14所示

图4.14

4.2.7退出系统

1.描述:点此按钮回到系统的主页面。

2.关键代码:主要是通过javascript语句来实现, item_word[8][4]="退出系统";

item_link[8][4]="javascript:window.open('../index.jsp','_self')"; 

4.3普通员工模块

4.3.1请假申请

1.描述:普通用户输入用户名和密码进入系统后,可以在线申请请假,输入请假时间,点击提交按钮即可,还可以查询请假是否批准。

2.程序效果图如图4.15所示:

图4.15 请假申请页面设计

图4.16查看请假信息

4.3.2我的工资浏览

1.描述:点击我的工资浏览菜单,既可查询自己的工资信息。

2.程序效果图如图4.17所示:

图4.17 我的工资浏览界面

4.3.3修改密码

1.描述:点击修改密码,输入原密码和新密码,点击提交便可修改成功。

2.程序效果如下图4.18所示。

图4.18修改密码

5  系统测试

5.1系统测试目的与意义

系统测试是企业员工信息管理系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。

系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样”。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖系统随偶联合的部件,系统测试是正对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出需求规格不符合或与之矛盾的地方。

5.2系统测试方法

5.2.1系统测试计划

进行软件测试需要建立一个详细的测试计划,才能使得测试任务圆满完成,目前的测试都是都是通过直观感受,去进行软件测试,这样测试出来的结果并不能完全满足系统的需求,还有可能存在着许多漏洞去解决。只有彻底清楚软件的各项功能,从根本上排除可能存在漏洞的地方,才能是系统能够正常、安全、长久的运行下去

5.2.2系统测试方法

目前的测试方法主要都是通过人来想出所有可能存在漏洞的地方,并加以测试,测试的质量与测试人员有着很大的关系,需要有更多的人参与到测试中才能是系统的所有功能都得到测试。

本次测试主要采取黑盒测试方法对软件进行测试,在测试人员知道系统完整的功能的前提下进行测试。黑盒测试就是在不知道系统的内部结构的前提下进行测试。

5.2系统功能测试

在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。

这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。

5.2.1主页面的登录模块测试

测试流程: 1.打开系统首页,输入错误的登录信息

           2.登录

           3.输入正确的登录信息

           4.登录

5.测试结果

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:null   密码:null  

弹出错误提示,请输入用户名

登陆失败,提示请输入用户名

通过

登录模块

用户名:m1

密码:null  

弹出错误提示,请输入密码

登录失败,提示输入密码

通过

登录模块

用户名:m1

 密码:1

弹出错误提示,用户名或者密码错误

登陆失败,提示用户名或者密码错误

通过

5.2.2修改密码的模块测试

测试流程: 1.打开密码修改页面,输入错误的原密码和新密码;

           2.点击修改;

           3.输入正确原密码;

           4.修改;

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码

原密码:null

新密码:null

请输入原密码

请输入原密码

通过

修改密码

原密码:a

新密码:null

新密码不能为空

新密码不能为空

通过

修改密码

原密码:aa

新密码:null

原密码不正确

原密码不正确

通过

修改密码

原密码:a

新密码:aa

修改成功

修改成功

通过

5.2.3部门管理的模块测试

测试流程: 1.打开部门管理页面,输入部门名称;

           2.点击修改;

模块名称

测试用例

预期结果

实际结果

是否通过

部门管理

部门名称:

人事部

操作成功

操作成功

通过

部门管理

部门名称:null

请输入部门名称

请输入部门名称

通过

5.2.4员工管理的模块测试

测试流程: 1.打开员工管理页面,不输入部门,工号等信息;

           2.点击提交;

           3.输入信息;

           4.提交;

模块名称

测试用例

预期结果

实际结果

是否通过

员工管理

点击删除

删除成功

删除成功

通过

员工管理

点击添加

跳转到录入界面

跳转到录入界面

通过

员工管理

不选择部门

请选择部门

请选择部门

通过

员工管理

工号:null

请输入工号

请输入工号

通过

员工管理

姓名:null

请输入姓名

请输入姓名

通过

员工管理

年龄:null

职位:null

成功

成功

通过

员工管理

帐号:null

请输入帐号

请输入帐号

通过

员工管理

密码:null

请输入密码

请输入密码

通过

员工管理

全部填写

成功

成功

通过

5.2.5出勤管理的模块测试

测试流程: 1.打开出勤管理页面,不选择员工,月份出勤天数信息;

           2.点击提交;

           3.输入信息;

           4.提交;

模块名称

测试用例

预期结果

实际结果

是否通过

出勤管理

员工:null

请选择员工

请选择员工

通过

出勤管理

月份:null

请选择月份

请选择月份

通过

出勤管理

点击出勤录入

跳转到出勤

录入界面

跳转到出勤

录入界面

通过

出勤管理

点击重置

信息清空

信息清空

通过

5.2.6工资管理的模块测试

测试流程: 1.打开工资管理页面,不选择员工,月份,金额信息;

           2.点击提交;

           3.输入信息;

           4.提交;

模块名称

测试用例

预期结果

实际结果

是否通过

工资管理

点击工资录入

跳转到工资

录入界面

跳转到工资

录入界面

通过

工资管理

员工:null

请选择员工

请选择员工

通过

工资管理

月份:null

请选择月份

请选择月份

通过

工资管理

金额:null

请输入金额

请输入金额

通过

工资管理

员工:21

月份:4

金额:200

录入成功

录入成功

通过

工资管理

点击重置

信息清空

信息清空

通过

5.2.7请假审核的模块测试

测试流程: 1.打开请假审核页面,选择审核,删除等操作;

           2.点击提交;

           3.输入信息;

           4.提交;

模块名称

测试用例

预期结果

实际结果

是否通过

请假审核

点击审核

弹出操作窗口

弹出操作窗口

通过

请假审核

点击删除

删除成功

删除成功

通过

请假审核

回复信息:null

操作成功

操作成功

通过

5.2.8我的请假的模块测试

测试流程: 1.打开我的请假页面,选择添加,删除等操作;

           2.点击提交;

           3.输入信息;

           4.提交;

模块名称

测试用例

预期结果

实际结果

是否通过

我的请假

点击删除

删除成功

删除成功

通过

我的请假

点击添加申请

跳转到请假

申请界面

跳转到请假

申请界面

通过

我的请假

不选择开始结束时间

请选择时间

请选择时间

通过

我的请假

事由:null

请输入事由

请输入事由

通过

我的请假

点击重置

信息清空

信息清空

通过

5.3其他错误

在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值员工信息不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在servlet路径配置时因粗心错误导致运行导致所报错误,如图5.1:

图 5.1 由于servlet路径配置错误,运行时的提示

6  总结与展望

6.1论文的主要工作

本文简要介绍了企业员工信息管理系统的开发设计过程。介绍了实现本系统所需要的开发环境以及工具,详细介绍了本系统的功能需求,以及系统的可行性分析,确立了系统的模型,再由系统的概要设计到详细设计,以及系统最后的测试环节,最终完成了本次系统的开发过程。企业员工信息管理系统的系统模块,基本实现了员工信息管理系统的基本功能,管理员能够及时更新部门、员工考勤以及工资信息,能够及时对员工的请假做出回应,确保公司系统的准确实行,员工能够通过该系统查看自己的工资信息,提出请假申请等操作。企业员工信息管理系统的实现,简化了企业管理员工的工作负担,提高了公司的工作效率, 促进了企业的发展。

本系统研究已经取得了一部分成果,但让存在一些问题有待改正,还需要进一步提高系统的性能,完善系统的各项功能,进一步加强公司领导与员工的沟通等,需要不断进行完善改进。

6.2存在问题

与一些大公司所应用的系统相比,该系统存在的问题比较明显,员工信息的修改需要重新进行删除、录入操作,浪费了太多不必要的时间,该系统的还没有实现管理员、领导与员工的三级操作,在公司的管理上并不是很方便,需要进一步进行改进。该系统的安全工作并不完善,只有简单的加密措施,有待进一步加强。

改进方案:在时间充足的情况下,实现以上功能并不难,但还需要进一步学习,才能使系统的功能更加完善。

结  论

本次毕业设计将我大学四年所学的软件工程理论知识用到了具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力。在这段日子里,我查阅了许多有关员工管理信息系统的资料,翻阅了许多JSP的书籍,结合自己的经验,详细调查了员工信息管理的工作内容与细节,开发设计了这个员工信息管理系统,虽然企业每个学期都会有相应课程的课程设计和实训来作为动手练习训练,不过在本次毕业设计具体的实践的时候还是遇到了很多小问题,比如说在jsp页面将输入框设为不可用是添加属性readonly=“true”,而我在实际编程中却错写成disable=“true”,这样直接导致了request对象取不到数据,调试了程序很久才发现request对象获得的返回值一直是空,之前一直以为是代码哪里出了问题,总是在查源程序的逻辑。这些虽然都是小问题,但是由于不细心在具体实践中却浪费了不少时间,看来平时还是要多多实践才是。

在系统的开发过程中,我运用到了B/S三层结构技术和自己在平时学习中掌握的一些技术,通过这些技术的实现,整个系统的性能得到了大大的提高。这些技术都在论文中做了比较详细的介绍。本系统还存在许多的缺陷和不足之处,比如很多细节上做的还不行,有些功能模块还应再加强。希望在以后的时间里,我可以把这些缺陷都弥补过来,进一步完善系统。

通过本次毕业设计我锻炼了自己的自学、研究能力,也从中学到不少在企业在课堂上学不到的东西.通过实践我也深刻的体会到软件开发的艰辛及问题解决后的喜悦心情,培养我的独立思考问题的能力,同时也增强了我的理论联系实际的能力,这为自己以后的工作奠定了良好的基础。

本系统可以在很大程度上减轻企业员工信息管理人员的工作负担,但由于时间按和技术条件的限制,还存在一些不足之处,有些功能还需要改进,还应该做进一步的系统调查需求分析工作,更深入的完善系统。总之,一个紧跟时代步伐的真正使用的软件必需有一个不断完善改进的过程。

参考文献

1施维敏. 数据库设计的数据规范化问题[J]. 现代情报,2003(08).

2罗建平. 企业信息化平台的构建与精细化管理[J] . 石油化工管理干部学院学报, 2010(04).

3仲秋雁,陆牡丹.企业信息系统评价的复杂性研究[J] .科技管理研究. 2004(01).

4王锐芳. 基于身份的密钥管理研究[D]. 兰州:兰州理工大学,2007.

5郭军. 基于角色的访问控制分级授权管理的研究[D]. 西安:西安电子科技大学,2012.

6许清. 基于BS架构的动态口令统一认证平台研究[D]. 浙江:浙江工业大学,2012.

7罗建平.业信息化平台的构建与精细化管理[J].石油化工管理干部学院学报.2010(04).

8王志毅,陈宁. 基于信息化建设的企业数据库设计[J]. 商业时代,2010(05).

9 N.Darren.SP.NET 2.0 Web Parts in Action:Building Dynamic Web Portals.Journal of Women s Health,2006.

10 M.Rezayat.The Enterprise-Web portal for life-cycle support[J].Computer-Aided Design ,2000 (2).

11 A.Touran,R. Lopez.Modeling cost escalation in large infrastructure projects. Journal of Construction Research . 2006.

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值