赞
踩
企业员工信息管理系统的设计与实现
随着电子信息的飞速发展,计算机已经融入到了生活的各个方面,越来越多的企业开始使用电子计算机来对企业进行管理,信息化的时代已经到来,各个企业无论大小都需要一个信息化的管理系统来对自己公司内部的员工信息进行管理,企业员工信息管理系统是一个针对此问题而进行开发的系统,使得公司的员工管理不如现代化,开启了一个新的管理模式。
本文首先对比了国内外企业员工信息管理的现状,明确了需求的不同以及需要吸收借鉴的部分,然后在员工信息管理的需求基础上,通过系统的功能需求与系统的可行性分析,确立了企业员工信息管理系统的基本功能,构建了该系统的框架以及结构设计,然后对该系统的各个功能的主要代码进行分析、设计,最后对系统的各个功能进行测试,完成了本次系统的开发。企业员工信息管理系统分为两大模块,管理员模块和普通员工模块,管理员可以操作系统的所有功能,主要包括部门管理、员工信息管理、出勤管理、工资管理以及请假审核等功能;为了信息的保密以及系统的安全性,普通员工只具有查看工资以及请假的功能。
文章以需求分析,系统概要设计,系统功能实现,系统测试等为主要内容,详细介绍了一个基于Web技术的B/S结构的企业员工信息管理系统。本系统主要使用MyEclipse软件进行程序编写,使用JSP作为前台的开发语言,使用MySql作为后台的数据库管理系统,服务器采用tomcat,开发出的一个适应现代社会发展的企业员工信息管理系统。
关键词:员工信息,JSP,B/S结构
The design and implementation of enterprise employee information management system
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
计算机网络技术的发展,给信息时代的人们带来了很大的方便。如今在Internet上,随处都可以看到种类繁多的信息管理系统,比如,企业办公化自动管理系统,电子商务系统,高校教务管理系统等等。随着信息技术的日益发展已深入到社会的各个角落,各个大的企业,都充分意识到传统的手工管理模式已经逐渐不能适应时代的发展,为了更好的发展,纷纷开发适合自己的管理系统。不管大企业。各种员工信息的小企业也是如此,企业的管理层也深深意识到这一点,以前管理大多为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。他们希望有一个适合自己的管理系统,能够实现员工信息管理,部门管理,请假管理,考勤管理等功能。通过此系统,管理者可以对员工的信息做出及时的修改,通过电脑的数字化管理,方便的管理员工信息,这样可以提高工作效率,解放管理员的双手,也使得管理员工信息所需的各项信息能方便快速进行录入,查询和更新,各种功能能够相应的实现,对相应关键数据也能够方便的统计结果。
当前大量企业的员工管理不能及时的对员工的信息做出修改,管理员与员工之间不能进行良好的互动,尚需要进行手工传达信息,不但效率低下还常常因为信息不能及时的传达下去而造成损失。因此大多数企业需要设计一个高效的企业员工信息管理系统以帮助企业对员工进行更好、更快的管理,加强上级与下级之间的联系,达到提高企业工作效率的目的。员工信息管理系统设计的主要目的是对企业员工的信息进行集中管理,方便对员工的信息进行及时的更新,上级的命令能够准确、高效的传达下去,方便企业建立一个高效的、准确的员工信息数据库。它是以SQL 数据库作为开发平台,使用jsp编写程序完成数据的各项功能并使用SQL数据库形成数据进行数据存储。
长久以来,企业员工信息管理工作基本上采用的都是过时的管理方式来记录员工的相关信息,这种管理方式的缺点很明显,比如说,员工请假方面需要员工亲自手工申请才能达到请假的目的,严重浪费了太多时间,减少了企业的工作效率。对于小规模企业来说,员工想对较少,这种管理方式还勉强可以接受,但对于规模比较大的企业来说,员工的信息比较多,人工记录非常容易出错,极大的增加了信息管理人员的负担。在国内,大多数企业原有的管理方式已经适应不了形势的发展,急需进行改进,当前的形势下,计算机的出现加强了企业的发展,急需一个信息化管理的系统来实现对员工信息的管理,加强企业的管理模式,使企业更好的适应社会的发展,能够在当前全速发展的浪潮中全速发展。建立一个信息化管理的员工信息管理系统是企业适应社会发展形势的必经之路。
为满足企业发展需求,决定采用各种编程语言JSP开发了基于B/S架构的员工信息管理系统,员工信息管理系统是涉及信息科学、数据计算和计算机技术的复杂的人机交互系统。通过该系统,可以对员工信息管理工作以及考勤工作进行信息化管理,加强上下级之间的联系,有效地记录并查询员工信息、考勤等情况,使企业的员工管理更加高效。
本次论文是企业员工信息管理系统,通过现代化的计算机技术,实现员工信息的高效、快速的管理,有利于加强企业对员工的管理,缩短了企业在员工管理方面的时间,通过该系统能够对员工信息进行整理,分类管理,有利于企业的长久发展。
该系统主要是方便企业对员工信息的管理,主要包括一下几个方面:
硬件需求:
CPU:Core(IM) i5以上计算机
内存: 4G以上
软件需求:
操作系统版本:Windows XP以上系统
开发工具:MyEclipse 8.5
后台服务器:Apache Tomcat 6.0
开发语言:Java
浏览器:IE8.0
本文共分为五章,安排如下:
第一章阐述了项目的背景与意义,简单介绍了本次研究的内容与系统软硬件方面的需求。
第二章对系统进行需求分析,通过对系统的功能需求分析以及技术可行性、经济可行性分析、操作可行性分析和法律可行性分析,确立了系统的基本功能,设立了系统的基本模型。
第三章对系统进行概要设计,首先介绍了系统的设计原则,接着对系统的功能进行模块划分,然后对系统进行概念结构设计以及物理结构设计等。
第四章对系统进行详细设计,首先对系统的登录界面进行设计,然后分别对管理员模块和员工模块进行设计,其中管理员模块和员工模块分别又分为若干的小模块,依次对其进行设计。
第五章主要对系统的功能进行测试,首先介绍了系统的测试计划以及方法,然后对系统的各个模块分别进行测试,确保系统能够正常运行。
第六章对本文所做的工作进行全面总结,对存在的问题进行说明并提出解决办法,对进一步工作进行展望。
本系统主要针对的是企业员工的信息管理项目而设计。在项目的确立之初,通过与企业管理人员的相互交流,发现了目前所用系统中所存在的一些问题,并对其进行研究,根据企业对员工信息管理方面的需求,做出了以下几方面的需求分析。
系统用户分为两级:管理员与普通员工。系统采用基于Web技术的B/S框架进行设计,确立了企业员工信息管理系统主要功能需求有以下几个方面:
员工基本信息管理主要负责对员工的基本信息进行管理与更新,基本信息包括姓名,性别,年龄,职位,部门,是否领导,帐号,密码。通过对基本信息的管理,可以清楚的了解员工的信息,及时对员工信息的更新,有助于增加企业对员工的管理。普通员工只能修改自己的密码,不用更改其他信息。
公司部门信息的管理主要用于对员工进行分类,分布于各个部门之下,能够及时并准确的找出该员工目前的工作状态。部门管理主要包括添加部门以及添加子部门,删除部门等操作,便于及时更新部门信息。
员工出勤信息的管理主要用于对员工的出勤月份以及天数进行管理,便于计算员工的工资等。出勤信息主要包括月份,天数以及员工姓名,管理员可以录入员工的出勤天数,普通员工只能查看而不能进行更改。
员工工资信息的管理主要用于对员工的每个月的工资进行管理,便于对员工的工资进行管理。工资信息主要包括月份,金额以及员工姓名,管理员可以录入员工的工资信息,普通员工只能查看而不能进行更改。
员工的请假审核主要用于管理员对员工的请假进行审核并加以回复,便于对员工的请假进行管理。请假主要包括姓名,开始时间,结束时间,请假事由,审核状态以及回复信息,管理员进行回复时说明是否批准以及回复信息,使员工有一个直观的了解,员工可以进行请假申请并查看自己当前请假的状态。
1.主要用于公司内部使用,要求操作简单使用,便于企业人员进行操作使用。
2.对于中小型公司,员工较少,相应的对系统的要求也比较少,一般的数据库便足以使用。
3.由于涉及到用户的基本信息,因此系统具有相应的安全措施,防止用户信息的泄漏。
参与者是系统的外部用户。系统用户分为两级:管理员及普通用户。管理员主要是企业的系统管理者,管理着主要用来管理公司的部门信息,员工的基本信息,出勤,工资以及请假审核等,主要用来录入员工的一切信息,并及时进行核实,防止有错误发生。由于系统的功能比较简单,对于电脑有一定的基础便可完成系统相应的需求。普通用户为底层用户,可以查询自己的出勤,工资以及请假状态,不能对其做出更改。
管理员是系统的管理者,其中包括六大功能模块,管理员拥有系统的最高权限,可以操作部门、员工、工资等信息,对所有的信息进行更改,适应公司的变化。用例图如图2.1所示:
图2.1 管理员用例图
出于安全性的考虑,普通员工用户只有请假申请、浏览工资和浏览出勤等功能,其他的删除修改功能都没有设计。普通员工用例图如图2.2所示:
图2.2 普通员工用例图
开发任何一个管理系统,都会受到来自各方面的限制,其中人力、物力上的限制更为明显。因此,在每一个软件项目开发之前,都需要进行可行性分析,来减少项目中所可能走的弯路,减少项目的开发时间以及资源上的浪费。下面就技术、经济、操作和法律四个方面来介绍。
本系统采用的开发工具是MyEclipse和MySQL数据库,MyEclipse是在eclipse 基础上加上自己的插件开发而成的,已经具有多年的历史,技术也已经成熟,具有功能强大的集成开发环境;开发语言是Java,主要使用了J2EE的技术,在大三期间就系统的学习了J2EE的技术,难度不大,java是一种面向对象编程语言,简单易学而且灵活方便,能够熟练的掌握并应用与时间中。JSP与Servlet一样,是在服务器端执行的,Java Servlet是JSP的技术基础,JSP具备了java技术的简单易用,页面由HTML代码和嵌入其中的Java代码所组成。大二期间就学习了java课程,对Java的相关技术也有了一定的了解,能够完成系统基本的开发,也系统的了解了J2EE的知识,企业员工信息管理系统在技术上的问题并不大,大学期间学习的只是完成能够完成本次的开发任务。
在大学期间学习了软件工程导论,java基础,面向对象编程,软件开发等课程,每门课程都会有相应的实验来完成,初步学习了简单的的系统分析、设计、测试和维护,基本掌握了软件开发的流程。因此,完成该系统在技术上完全具有可行性。
现如今已经进入了信息化时代,各行各业都在朝着信息化发展,信息化管理可以使员工信息管理工作在时间空间上都得到很大的提高,相应的减少了企业在这方面所花费的人力、物力等不必要的资源,虽然短期内开发系统的的花费更高,但从长远来看,这用一劳永逸的办法是可行的。通过信息化管理,可以为企业带来较高的工作效益和经济效益,在提高工作效率的基础上,可以考虑减少员工信息管理人员的数量,本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,再者,企业在管理工作上的高效率和便捷性远远超过了开发本系统的成本,所以在经济上具有完全的可行性。
完全能够实现。输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对WINDOWS操作熟练,加之对本系统的操作稍加培训即可工作,本系统对管理人员和用户没有任何的特殊要求实际操作基本上以鼠标操作为主并辅以少量的键盘操作操作方式很方便。因此该项目便于操作,具有基本的电脑只是便能够熟练使用该系统,具有良好的易用性。
本员工信息管理系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。
综上所述,开发一个员工信息管理系统与人工记录的方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立一个员工信息管理系统是必要可行的。
概要设计主要完成系统软件结构及数据结构的设计。本章主要探讨了系统设计的相关内容,包括功能模块划分以及数据库设计。
设计思想遵循以下几点:
本系统针对的是企业员工信息管理系统设计的,根据需求分析,系统分为两大功能模块:管理员模块和普通员工模块。如图3.1所示:
图3.1功能结构图
修改密码:管理员用来修改自己的密码,防止因为密码的泄漏而造成用户信息的泄漏,提高系统的安全,
部门管理:用来管理企业的部门信息,便于对员工进行分类管理。
员工管理:用来管理员工的基本信息,及时对员工的基本信息进行管理,便于企业掌握目前的员工状态,对员工做出合理的安排。
出勤管理:用来管理员工的出勤信息,及时对员工的出勤天数进行录入与修改,便于对员工应得的工资做出合理的安排。
工资管理:用来管理员工的工资信息,根据员工的出勤天数以及工作进行工资录入,及时更新员工的工资,有利于员工的安定,促进企业的发展。
请假管理:用来对员工的请假进行审核,关注员工的请假信息,并及时做出回复,加强对员工当前状态的了解。
修改密码:及时修改自己的密码,防止自己的信息造成泄漏。
请假申请:在系统中提出自己的请假申请,填明请假时间级原因,便于管理员做出合理的安排。
查询工资:能够及时查询自己的工资信息。
企业员工信息管理系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分。数据库设计的好坏直接影响到整个系统的质量和效率。
数据库的设计一般经过需求分析阶段、概念设计阶段、逻辑设计阶段、数据库物理设计阶段、数据库实施阶段以及数据库运行与维护6个步骤。
数据库的概念结构是由分析到生成概念产品的一系列过程,概念设计是完整而全面的过程,设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。
概念设计的目标是产生用户所需求的概念信息,直观的展示出不同用户所具有的不同的功能,即概念模式。
根据以上对信息管理系统的需求分析,以及对系统概念模型的了解,首先建立E-R模型图。
逻辑结构设计是将概念设计阶段所得到的概念模型转换为逻辑结构模型,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 | 否 | 否 | 密码 |
采用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的对象,就可以对数据库进行连接并操作。
在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
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();
}
1.描述:管理员主页面:左方页面展示了管理员可操作的六大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。
2.程序运行效果图如图4.2所示:
图4.2管理员主页面
在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:
if(session.getAttribute("user")==null)
{
out.print("<script>alert('请先登录!');window.open('../index.jsp','_self')</script>");
}
1. 描述:管理员输入部门相关正确信息后点击录入按钮,如果是没有输入完整的部门经理信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法οnsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。
2. 程序效果图如下图4.3所示:
图4.3 部门信息录入
3.流程图如下图4.4所示:
图4.4 部门经理信息录入流程图
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);
}
1.描述:先是点击部门管理,页面跳转到部门管理界面,浏览所有的部门信息,点击要删除的部门,弹出的确定对话框,即可删除该部门信息。
2.程序效果图如下图4.6所示
图4.6 部门信息删除
1.描述:在此页面主要是输入员工的基本信息,包括姓名、性别、年龄、部门编号、登陆账号、密码等,年龄检验输入是否为数字,是否为空也是通过form表单中的οnsubmit="return checkForm()来检查。
2.程序效果图如图4.7所示:
图4.7员工信息信息录入
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);
}
1.描述:输入月份和出勤天数点击提交按钮即可。
2.程序效果图如图4.10所示:
图4.10 出勤录入
1.描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。
2.程序效果图如图4.11所示:
图4.11 修改密码
1:描述:可以选择删除员工工资信息,也可一选择工资录入,进入员工工资录入界面。
2:删除员工工资如下图4.12所示:
图4.12删除员工工资
增添员工工资如下图4.12所示:
图4.12增添员工工资
1.描述:用于对员工请假进行回复管理。
2. 查看员工请假信息如下图4.13所示
图4.13查看员工请假信息
回复员工请假信息如下图4.14所示
图4.14
1.描述:点此按钮回到系统的主页面。
2.关键代码:主要是通过javascript语句来实现, item_word[8][4]="退出系统";
item_link[8][4]="javascript:window.open('../index.jsp','_self')";
1.描述:普通用户输入用户名和密码进入系统后,可以在线申请请假,输入请假时间,点击提交按钮即可,还可以查询请假是否批准。
2.程序效果图如图4.15所示:
图4.15 请假申请页面设计
图4.16查看请假信息
1.描述:点击我的工资浏览菜单,既可查询自己的工资信息。
2.程序效果图如图4.17所示:
图4.17 我的工资浏览界面
1.描述:点击修改密码,输入原密码和新密码,点击提交便可修改成功。
2.程序效果如下图4.18所示。
图4.18修改密码
系统测试是企业员工信息管理系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。
系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样”。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒测试,应覆盖系统随偶联合的部件,系统测试是正对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出需求规格不符合或与之矛盾的地方。
进行软件测试需要建立一个详细的测试计划,才能使得测试任务圆满完成,目前的测试都是都是通过直观感受,去进行软件测试,这样测试出来的结果并不能完全满足系统的需求,还有可能存在着许多漏洞去解决。只有彻底清楚软件的各项功能,从根本上排除可能存在漏洞的地方,才能是系统能够正常、安全、长久的运行下去
目前的测试方法主要都是通过人来想出所有可能存在漏洞的地方,并加以测试,测试的质量与测试人员有着很大的关系,需要有更多的人参与到测试中才能是系统的所有功能都得到测试。
本次测试主要采取黑盒测试方法对软件进行测试,在测试人员知道系统完整的功能的前提下进行测试。黑盒测试就是在不知道系统的内部结构的前提下进行测试。
在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。
这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。
测试流程: 1.打开系统首页,输入错误的登录信息
2.登录
3.输入正确的登录信息
4.登录
5.测试结果
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
登录模块 | 用户名:null 密码:null | 弹出错误提示,请输入用户名 | 登陆失败,提示请输入用户名 | 通过 |
登录模块 | 用户名:m1 密码:null | 弹出错误提示,请输入密码 | 登录失败,提示输入密码 | 通过 |
登录模块
| 用户名:m1 密码:1 | 弹出错误提示,用户名或者密码错误 | 登陆失败,提示用户名或者密码错误 | 通过 |
测试流程: 1.打开密码修改页面,输入错误的原密码和新密码;
2.点击修改;
3.输入正确原密码;
4.修改;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
修改密码 | 原密码:null 新密码:null | 请输入原密码 | 请输入原密码 | 通过 |
修改密码 | 原密码:a 新密码:null | 新密码不能为空 | 新密码不能为空 | 通过 |
修改密码 | 原密码:aa 新密码:null | 原密码不正确 | 原密码不正确 | 通过 |
修改密码 | 原密码:a 新密码:aa | 修改成功 | 修改成功 | 通过 |
测试流程: 1.打开部门管理页面,输入部门名称;
2.点击修改;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
部门管理 | 部门名称: 人事部 | 操作成功 | 操作成功 | 通过 |
部门管理 | 部门名称:null | 请输入部门名称 | 请输入部门名称 | 通过 |
测试流程: 1.打开员工管理页面,不输入部门,工号等信息;
2.点击提交;
3.输入信息;
4.提交;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
员工管理 | 点击删除 | 删除成功 | 删除成功 | 通过 |
员工管理 | 点击添加 | 跳转到录入界面 | 跳转到录入界面 | 通过 |
员工管理 | 不选择部门 | 请选择部门 | 请选择部门 | 通过 |
员工管理 | 工号:null | 请输入工号 | 请输入工号 | 通过 |
员工管理 | 姓名:null | 请输入姓名 | 请输入姓名 | 通过 |
员工管理 | 年龄:null 职位:null | 成功 | 成功 | 通过 |
员工管理 | 帐号:null | 请输入帐号 | 请输入帐号 | 通过 |
员工管理 | 密码:null | 请输入密码 | 请输入密码 | 通过 |
员工管理 | 全部填写 | 成功 | 成功 | 通过 |
测试流程: 1.打开出勤管理页面,不选择员工,月份出勤天数信息;
2.点击提交;
3.输入信息;
4.提交;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
出勤管理 | 员工:null | 请选择员工 | 请选择员工 | 通过 |
出勤管理 | 月份:null | 请选择月份 | 请选择月份 | 通过 |
出勤管理 | 点击出勤录入 | 跳转到出勤 录入界面 | 跳转到出勤 录入界面 | 通过 |
出勤管理 | 点击重置 | 信息清空 | 信息清空 | 通过 |
测试流程: 1.打开工资管理页面,不选择员工,月份,金额信息;
2.点击提交;
3.输入信息;
4.提交;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
工资管理 | 点击工资录入 | 跳转到工资 录入界面 | 跳转到工资 录入界面 | 通过 |
工资管理 | 员工:null | 请选择员工 | 请选择员工 | 通过 |
工资管理 | 月份:null | 请选择月份 | 请选择月份 | 通过 |
工资管理 | 金额:null | 请输入金额 | 请输入金额 | 通过 |
工资管理 | 员工:21 月份:4 金额:200 | 录入成功 | 录入成功 | 通过 |
工资管理 | 点击重置 | 信息清空 | 信息清空 | 通过 |
测试流程: 1.打开请假审核页面,选择审核,删除等操作;
2.点击提交;
3.输入信息;
4.提交;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
请假审核 | 点击审核 | 弹出操作窗口 | 弹出操作窗口 | 通过 |
请假审核 | 点击删除 | 删除成功 | 删除成功 | 通过 |
请假审核 | 回复信息:null | 操作成功 | 操作成功 | 通过 |
测试流程: 1.打开我的请假页面,选择添加,删除等操作;
2.点击提交;
3.输入信息;
4.提交;
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
我的请假 | 点击删除 | 删除成功 | 删除成功 | 通过 |
我的请假 | 点击添加申请 | 跳转到请假 申请界面 | 跳转到请假 申请界面 | 通过 |
我的请假 | 不选择开始结束时间 | 请选择时间 | 请选择时间 | 通过 |
我的请假 | 事由:null | 请输入事由 | 请输入事由 | 通过 |
我的请假 | 点击重置 | 信息清空 | 信息清空 | 通过 |
在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值员工信息不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在servlet路径配置时因粗心错误导致运行导致所报错误,如图5.1:
图 5.1 由于servlet路径配置错误,运行时的提示
本文简要介绍了企业员工信息管理系统的开发设计过程。介绍了实现本系统所需要的开发环境以及工具,详细介绍了本系统的功能需求,以及系统的可行性分析,确立了系统的模型,再由系统的概要设计到详细设计,以及系统最后的测试环节,最终完成了本次系统的开发过程。企业员工信息管理系统的系统模块,基本实现了员工信息管理系统的基本功能,管理员能够及时更新部门、员工考勤以及工资信息,能够及时对员工的请假做出回应,确保公司系统的准确实行,员工能够通过该系统查看自己的工资信息,提出请假申请等操作。企业员工信息管理系统的实现,简化了企业管理员工的工作负担,提高了公司的工作效率, 促进了企业的发展。
本系统研究已经取得了一部分成果,但让存在一些问题有待改正,还需要进一步提高系统的性能,完善系统的各项功能,进一步加强公司领导与员工的沟通等,需要不断进行完善改进。
与一些大公司所应用的系统相比,该系统存在的问题比较明显,员工信息的修改需要重新进行删除、录入操作,浪费了太多不必要的时间,该系统的还没有实现管理员、领导与员工的三级操作,在公司的管理上并不是很方便,需要进一步进行改进。该系统的安全工作并不完善,只有简单的加密措施,有待进一步加强。
改进方案:在时间充足的情况下,实现以上功能并不难,但还需要进一步学习,才能使系统的功能更加完善。
本次毕业设计将我大学四年所学的软件工程理论知识用到了具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力。在这段日子里,我查阅了许多有关员工管理信息系统的资料,翻阅了许多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.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。