人事管理系统地设计与实现.docx
《人事管理系统地设计与实现.docx》由会员分享,可在线阅读,更多相关《人事管理系统地设计与实现.docx(28页珍藏版)》请在冰豆网上搜索。
人事管理系统地设计与实现
实习报告
实训名称:
人事管理系统的设计与实现
实训项目:
WEB开发实训B
学生:
王宝鑫
学号:
130330118
班级:
网络13级1班
专业:
网络工程
完成日期:
2016年10月24日
建筑大学城建学院
计算机科学与工程系
《实训课名称》成绩评定表
王宝鑫
专业班级
网络13级1班
学号
130330118
学历学制
四年制本科
题目
人事管理系统的设计与实现
实训时间
2016年10月3日至2016年10月28日
实训地点
网络机房415
指导教师
书红,苏丽
指导教师评语:
指导教师签字:
年月日
成绩评定
(按大纲规定)
平时(20%)(出勤、表现、团队意识)
阶段成果(20%)
第一阶段
第二阶段
设计成果(35%)
答辩(25%)
总成绩(五级分制)
教研室主任审核签字:
签字:
年月日
3.2VisualBasic····························································4
3.3JavaServlet技术························································4
第1部分项目描述
1.1人事管理系统背景分析
人事管理系统是一个企业单位不可缺少的部分,是适应现代企业制度,推动企业人事管理走向科学化、规化、自动化的必要条件。
它的容对于企业的决策者和管理者来说都至关重要,所以人事管理系统应该能为领导提供充足的信息和快捷的查询手段,以帮助企业领导了解企业现有的人力资源状况。
为人事管理和高层决策领导提供高校的决策支持。
本系统实现了用户登录,基本信息管理,人事管理,备忘记录,数据库维护,管理工具,系统管理等功能。
其中用户登录用来验证用户的信息是否合法。
系统管理是由系统用户添加新的用户,修改用户权限。
基本信息管理功能主要对部门的管理、工种职务类型、职称类型、文化类型等的管理,如部门信息的添加、修改、删除等。
在系统中主要包括添加新的部门、修改和删除部门信息。
人事管理功能主要实现员工信息的管理功能。
第2部分项目术语表
2.1人事管理系统相关术语
设计中用到的专门术语的定义或外文首字母组词的原词组:
PMS:
即:
PersonnelManagementSystem,人事管理系统(PMS)可以大幅提高企业部领导人事对本公司的人事管理的效率,是企业信息化建设的核心部分。
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
第3部分技术支持
3.1开发软件Access的介绍
MicrosoftAccess是比较流行的关系型数据库管理系统之一,其基本核心是MicrosoftJet数据库引擎,是一些关于某个特定主题或目的的信息集合。
它的作用是用来存储,维护和检索数据。
同时,提供了VBA编程接口,可以为用户提供各种各样的编程功能。
一个数据库对象是由若干表,查询,窗体,报表,宏和模块等对象及对象的集合组成的,这些集合的组合丰富和增强了Access数据库的功能。
在Access中,所有的对象均保存在一个“.MDB”文件中,这给数据库的维护带来了很大的方便。
选择Access作为后台数据库,是因为Access在许多数据管理的系统中已经非常广泛的使用,在数据流管理方面也是比较成熟的。
同时Access相比较SQL作为后台数据库,在连接方面有更为简易的表现,因此选择Access作为后台数据库。
3.2JavaServlet技术
JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。
Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。
许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。
得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规,Servlet是完全平台无关且是Web服务器无关的。
由于JavaServlet部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。
但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个,动态部分和静态页面的整合过程简直就是一场噩梦。
这就是为什么SUN还要推出JavaServerPages的原因。
3.3JavaBeans技术
什么是JavaBeans?
JavaBeans就是Java的可重用组件技术。
ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。
JSP通过JavaBeans实现了同样的功能扩充。
JSP对于在Web应用中集成JavaBeans组件提供了完善的支持。
这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。
JavaBeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。
在实际的JSP开发过程中,读者将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能,许多动态页面处理过程实际上被封装到了JavaBeans中。
3.4开发环境
系统开发语言:
java
数据库管理软件:
MicrosoftSQLServer2005
运行平台:
Windows7
运行环境:
Microsoft.NETFrameworkSDKv2.0
第4部分需求分析
4.1系统功能模块
4.2系统活动图
基本信息模块的流程图如图4-2所示。
人事管理模块的流程图如图4-3所示。
数据库维护管理流程图如图4-4所示。
第5部分概要设计
5.1业务模型
员工基本信息
员工奖惩信息
5.2数据库设计
通讯录表
字段名
数据类型
主键
描述
ID
Varchar(5)
是
编号
Name
Varchar(20)
否
职工名称
Sex
Varchar(4)
否
性别
Phone
Varchar(13)
否
家庭
QQ
Varchar(15)
否
QQ号
Wordphone
Varchar(13)
否
工作
E-mail
Varchar(32)
否
地址
Handset
Varchar(11)
否
手机号
奖惩表
字段名
数据类型
主键
描述
ID
Varchar(5)
是
编号
Sut-ID
Varchar(5)
否
职工编号
RPKind
Varchar(20)
否
奖惩种类
RPDate
Datetime
否
奖惩时间
SealMan
Varchar(10)
否
批准人
QuashDate
Datetime
否
撤销时间
QuashWhys
Varchar(50)
否
撤销原因
职工基本信息表
字段名
数据类型
主键
描述
ID
Varchar(5)
是
职工编号
StuffName
Varchar(15)
否
职工名称
Folk
Varchar(5)
否
民族
Birthday
Datetime
否
出生日期
Age
Int
否
年龄
Kultur
Varchar(14)
否
文化程度
Marriage
Varchar(4)
否
婚姻
Sex
Varchar(4)
否
性别
Visage
Varchar(14)
否
政治面貌
IDCard
Varchar(20)
否
号
Workdate
Datetime
否
单位工作时间
WorkLength
Int
否
工龄
Employee
Varchar(20)
否
职工类型
Business
Varchar(10)
否
职务类型
Laborage
Varchar(10)
否
工资类别
Branch
Varchar(14)
否
部门类别
Duthcall
Varchar(14)
否
职称类别
Phone
Varchar(14)
否
Handset
Varchar(11)
否
手机
School
Varchar(24)
否
毕业学校
Speciality
Varchar(20)
否
主修专业
GraduateDate
Datetime
否
毕业时间
Address
Varchar(50)
否
家庭地址
Photo
Image
否
个人照片
BeAware
Varchar(30)
否
省
City
Varchar(30)
否
市
M-pay
Float
否
月工资
Bank
Varchar(20)
否
银行账号
Pact-B
Datetime
否
合同起始日期
Pact-E
Datetime
否
合同结束日期
Pact-Y
Float
否
合同年限
家庭关系表
字段名
数据类型
主键
描述
ID
Varchar(5)
是
编号
Sut-ID
Vachar(5)
否
职工编号
LeaguerName
Vachar(20)
否
家庭成员名称
Nexus
Vachar(10)
否
与本人关系
BirthDate
Datetime
否
出生日期
WordUnit
Varchar(24)
否
工作单位
Business
Varchar(10)
否
职务
Visage
Varchar(10)
否
政治面貌
个人简历表
字段名
数据类型
主键
描述
ID
Varchar(5)
是
编号
Sut-ID
Varchar(5)
否
职工编号
Memo
Text
否
容
日常记事本表
字段名
数据类型
主键
描述
ID
Int
是
编号
BlotterDate
Datetime
否
记事时间
BlotterSort
Varchar(20)
否
记事类别
Motif
Varchar(20)
否
主题
Wordpa
Text
否
容
培训记录表
字段名
数据类型
主键
描述
ID
Varchar(5)
是
编号
Sut-ID
Varchar(5)
否
职工编号
TrainFashion
Varchar(20)
否
培训方式
BeginDate
Datetime
否
培训开始时间
EndDate
Datetime
否
培训结束时间
Speciality
Varchar(20)
否
培训专业
TrainUnit
Varchar(30)
否
培训单位
KulturMemo
Varchar(50)
否
培训容
Charge
Float
否
费用
Effect
Varchar(20)
否
效果
工作简历表
字段名
类型
主键
描述
ID
Varchar(5)
是
编号
Sut-ID
Varchar(5)
否
职工编号
BeginDate
Datetime
否
开始时间
EndDate
Datetime
否
结束时间
WordUnit
Varchar(24)
否
工作单位
Branch
Varchar(14)
否
部门
Business
Varchar(14)
否
职务
5.3主要工作流程图
5.3.1登录模块
此部分主要用于本系统工作人员的登录,只有在分配了用户名和密码时才可以进入该系统,管理相应的工作,并且工作人员能浏览数据库中的用户表和注册用户名密码,以免非法登录,以便于管理。
用户登录时将按照用户名和密码进行验证,当输入错误或没有用户名和密码时会出现相应的提示(用户名或密码输入错误!
),当用户名和密码都正确时会进入程序主界面,才能进行日常管理工作。
该模块的界面设计如图5-1登录界面所示。
图5-1登录界面
如果登录身份验证成功则进入主界面,主界面是程序操作过程中必不可少的,它是人机交换的重要环节。
通过主界面,用户可以调用系统相关的各个子模块,快速掌握本系统中所实现的各个功能。
人事管理系统中,当登录窗体验证成功后,用户将进入主窗体,主窗体分为四个部分:
最上面是系统菜单栏,可以通过它调用系统中的所有子窗体;菜单栏下面是工具栏,它以按钮的形式使用户能够方便地调用最常用的子窗体;窗体的左边是一个树形导航菜单,该导航菜单中的各节点是根据菜单栏中的项自动生成的;窗体的最下面用状态显示当前登录的用户。
它的界面图如图5-2所示。
图5-2主界面
如果用户名或密码错误则会提示用户名或者密码错误,需要重新输入。
5.3.2基本信息管理模块
1.基本数据管理
主要包括民族类别设置、职工类别设置、文化程度设置政治面貌等,这样方便用户杳看.运行结果会显示如图5-3所示。
图5-3基本数据管理界面
2.员工提示信息管理
主要用提示员工的生日和合同到期日期,并进行保存。
启动之后会显示如图5-4所示。
图5-4员工生日提示管理界面图5-5员工合同提示管理界面
5.3.3管理工具模块
此模块有两个子模块组成,完成对记事本、计算器的设置。
如图5-6/5-7所示。
图5-6计算器设置界面图图5-7记事本设置界面图
5.3.4人事管理模块
此模块由三个子模块组成,人事档案管理模块,对员工的基本信息进行的查询、删除、添加、修改等操作,如添加一个员工的、年龄、出生日期、政治面貌、号等。
人事资料查询模块和人事资料统计模块。
可以对员工的基本信息和员工的个人信息进行相关的操作。
其中人事资料查询模块是实现了员工在部门中的职务、职称、工种,员工信息查询等功能.,设计思路与人事档案管理模块基本相同,为了方便用户操作可以在子窗体中选择要调动的员工.在模块中,父窗体中主要用于添加、浏览、查找、打开“选择员工”窗体(子窗体)。
子窗体用于显示员工信息。
人事资料统计模块主要是按照不同的条件,对员工人数进行统计。
它们的运行界面分别如图所示:
图5-8人事档案管理界面图
图5-9人事资料查询界面图
图5-10人事资料统计界面图
5.3.5备忘记录模块
此模块有两个子模块组成,分别是日常记事、通讯录。
备忘记录模块中可以实现对员工信息的修改、查询、浏览等。
基讯录和日常记事的图如下图所示。
图5-11通讯录管理界面
图5-12日常记事管理界面
5.3.6系统管理模块
此模块用于管理用户的权限,对用户名及密码进行设置、修改、删除,口令设置中只能对当前登录的用户进行密码的修改。
具体的界面如图5-13所示。
图5-13系统管理界面图
5.4代码设计
publicstringstrUserName;
{StringFrmStr="";//记录窗体名称
if(FrmName=="民族类别设置")//判断要打开的窗体
{DataClass.MyMeans.Mean_SQL="select*fromtb_Folk";//SQL语句
DataClass.MyMeans.Mean_Table="tb_Folk";//表名
DataClass.MyMeans.Mean_Field="FolkName";//添加、修改数据的字段名
FrmStr=FrmName;
}if(FrmName=="职工类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_EmployeeGenre";
DataClass.MyMeans.Mean_Table="tb_EmployeeGenre";
DataClass.MyMeans.Mean_Field="EmployeeName";
FrmStr=FrmName;
}if(FrmName=="文化程度设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_Kultur";
DataClass.MyMeans.Mean_Table="tb_Kultur";
DataClass.MyMeans.Mean_Field="KulturName";
FrmStr=FrmName;
}if(FrmName=="政治面貌设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_Visage";
DataClass.MyMeans.Mean_Table="tb_Visage";
DataClass.MyMeans.Mean_Field="VisageName";
FrmStr=FrmName;
}if(FrmName=="部门类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_Branch";
DataClass.MyMeans.Mean_Table="tb_Branch";
DataClass.MyMeans.Mean_Field="BranchName";
FrmStr=FrmName;
}if(FrmName=="工资类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_Laborage";
DataClass.MyMeans.Mean_Table="tb_Laborage";
DataClass.MyMeans.Mean_Field="LaborageName";
FrmStr=FrmName;
}if(FrmName=="职务类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_Business";
DataClass.MyMeans.Mean_Table="tb_Business";
DataClass.MyMeans.Mean_Field="BusinessName";
FrmStr=FrmName;
}if(FrmName=="职称类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_Duthcall";
DataClass.MyMeans.Mean_Table="tb_Duthcall";
DataClass.MyMeans.Mean_Field="DuthcallName";
FrmStr=FrmName;
}if(FrmName=="奖惩类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_RPKind";
DataClass.MyMeans.Mean_Table="tb_RPKind";
DataClass.MyMeans.Mean_Field="RPKind";
FrmStr=FrmName;
}if(FrmName=="记事本类别设置")
{DataClass.MyMeans.Mean_SQL="select*fromtb_WordPad";
DataClass.MyMeans.Mean_Table="tb_WordPad";
DataClass.MyMeans.Mean_Field="WordPad";
FrmStr=FrmName;
}}publicvoidPactDay(inti)
{DataSetDSet=MyDataClass.getDataSet("select*fromtb_Clewwherekind="+i+"andunlock=1","tb_clew");
if(DSet.Tables[0].Rows.Count>0)
{stringVfield="";
stringdSQL="";
intsday=Convert.ToInt32(DSet.Tables[0].Rows[0][1]);
if(i==1){
Vfield="Birthday";
dSQL="select*fromtb_Stuffbusicwhere(datediff(day,getdate(),convert(Nvarchar(12),cast(cast(year(getdate())aschar(4))+'-'+cast(month("+Vfield+")aschar
(2))+'-'+cast(day("+Vfield+")aschar
(2))asdatetime),110))<="+sday+")and(datediff(day,getdate(),convert(Nvarchar(12),cast(cast(year(getdate())aschar(4))+'-'+cast(month("+Vfield+")aschar
(2))+'-'+cast(day("+Vfield+")aschar
(2))asdatetime),110))>=0)";
}else{Vfield="Pact_E";
dSQL="select*fromtb_Stuffbusicwhere((getdate()-convert(Nvarchar(12),"+Vfield+