人事档案管理系统4889730.docx
《人事档案管理系统4889730.docx》由会员分享,可在线阅读,更多相关《人事档案管理系统4889730.docx(29页珍藏版)》请在冰豆网上搜索。
人事档案管理系统4889730
XX航空航天大学
课程设计报告
课程设计名称:
软件综合课程设计
课程设计题目:
人事档案管理系统
院(系):
计算机学院
专业:
班级:
学号:
姓名:
指导教师:
完成日期:
1系统分析
1.1需求分析
伴随着企业人事管理系统化的日益完善,企业人事管理系统在企业管理中越来越受到企业管理者的青睐。
企业人事管理系统的功能全面、操作简单,可以快速地为员工建立电子档案,这样做不但便于修改、保存和查看,而且实现了无纸化存档,为企业节省了大量资金和空间。
通过企业人事管理系统,还可以实现对企业员工的个人信息管理、奖惩管理、培训管理、待遇管理和相关信息查询。
1.2编程技术简介
本次课设我主要使用的软件是NetBeansIDE7.1.3和NavicatforMySQL,语言则以Java为主。
NetBeansIDE7.1.3:
NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java、C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。
在NetBeansPlatform平台中,应用软体是用一系列的软体模组(ModularSoftwareponents)建构出来。
而这些模组是一个jar档(JavaArchiveFile)它包含了一组Java程式的类别而它们实作全依据依NetBeans定义了的公开界面以及一系列用来区分不同模组的定义描述档(ManifestFile)。
有赖于模组化带来的好处,用模组来建构的应用程式可只要加上新的模组就能进一步扩充。
由于模组可以独立地进行开发,所以由NetBeans平台开发出来的应用程式就能利用着第三方软件,非常容易及有效率地进行扩充。
NavicatforMySQL:
NavicatforMySQL[1]是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。
NavicatforMySQL基于Windows平台,为MySQL量身订作,提供类似于MySQL的用管理界面工具。
此解决方案的出现,将解放PHP、J2EE等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。
NavicatforMySQL使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。
用户可完全控制MySQL数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中(LocaltoRemote、RemotetoRemote、RemotetoLocal),进行档案备份。
NavicatforMySQL支援Unicode,以及本地或远程MySQL服务器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行SQLqueries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援CSV,TXT,DBF和XML档案种类)等。
软件与任何MySQL5.0.x伺服器版本兼容,支援Triggers,以及BINARYVARBINARY/BIT数据种类等的规X。
Java语言:
Java编程语言的风格十分接近C、C++语言。
Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。
Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
2系统设计
2.1系统模块设计
企业人事管理系统主要包括系统管理信息管理和信息查询三大功能模块用来提供对企业员工的信息管理和查询以及对相关部门的管理,还包括用户的管理。
根据企业对人事管理的要求,本系统需要实现以下目标:
(1)操作简单方便、界面简洁大方。
(2)方便快捷的人员信息管理。
(3)简单实用的奖惩管理。
(4)简单实用的培训管理。
针对企业中不同的待遇标准,实现待遇薪酬管理。
企业人事管理系统的功能结构如图2.1所示
图2.1企业人事管理系统功能模块图
2.2系统预览
企业人事管理系统由多个界面组成,下面仅列出几个典型界面,其他界面效果可参见源程序。
企业人事管理系统的主体界面效果如图2.2所示。
图2.2企业人事管理系统的主体界面
员工信息界面效果如图2.3所示。
图2.3员工信息界面
员工信息查询界面效果如图2.4所示。
图2.4员工信息查询界面
员工薪酬信息管理界面效果如图2.5所示。
图2.5薪酬信息管理界面
2.3主流程图
进入时,先输入用户名和密码验证登录,验证成功后,再选择与需求相应的页面,按要求输入相应的信息,页面会自动判断以提供满足用户要求的信息。
如果验证失败,则需要用户添加注册信息。
如图2.6所示。
图2.6系统主流程图
2.4.1数据库设计
企业人事管理系统的需求主要包括对人员信息的管理和查询,其中包括对人员个人信息职位部门的查询添加修改删除;人事奖惩培训信息的管理和人员薪酬信息的管理。
2.4.2数据库概念设计
数据库设计是系统设计过程中的重要组成部分,它是通过管理系统的整体需求而制定的,数据库的好坏直接影响到系统的后期开发。
下面对本系统中具有代表性的数据库设计进行详细说明。
在开发企业人事管理系统时,最重要的是人员信息。
人员信息表实体属性图如图2.7所示。
图2.7人员信息表实体属性图
本系统还提供用户信息管理和部门信息管理,下面给出用户信息表和部门信息表的实体属性图如图2.8和2.9所示。
图2.8用户表实体属性图图2.9部门表实体属性图
本系统同时也提供培训信息管理和奖惩信息管理,下面给出培训信息表和奖惩信息表的实体属性图如图2.10和2.11所示
图2.10信息表实体属性图图2.11奖惩表实体属性图
系统也提供了薪酬信息管理,下面给出薪酬信息表的实体属性图如图2.14所示。
图2.12薪酬信息表实体属性图
2.4.3数据库逻辑设计
在MySQL数据库中,创建名为xiezhenghuip的数据库。
然后在数据库中根据数据表的E-R图创建数据表。
(1)userinformation的结构如表2.1所示。
表2.1userinformation表
字段名
数据类型
长度
是否允许空值
UserName
Varchar
20
否
Upassword
Varchar
20
否
uLimit
Int
4
否
Bak
Varchar
100
是
(2)employeeinformation的结构如表2.2所示。
表2.2employeeinformation
字段名
数据类型
长度
是否允许空值
E_Number
Int
15
否
E_Name
varchar
20
否
E_Sex
varchar
4
否
E_BornDate
varchar
10
否
E_Marriage
varchar
10
否
E_PoliticsVisage
varchar
20
否
E_SchoolAge
varchar
20
否
E_EnterDate
varchar
10
否
E_InDueFormDate
varchar
10
否
E_Department
varchar
20
否
E_Headship
varchar
20
否
E_Estate
varchar
20
否
E_DepartureDate
varchar
10
是
E_Remark
varchar
100
是
(3)departmentinformation的结构如表2.3所示。
表2.3departmentinformation
字段名
数据类型
长度
是否允许空值
D_Number
Int
15
否
D_Name
Varchar
20
否
D_Count
Varchar
10
否
(4)encouragementpunishinformation的结构如表2.4所示。
表2.4encouragementpunishinformation
字段名
数据类型
长度
是否允许空值
EP_Number
Int
15
否
EP_Name
varchar
20
否
EP_Date
varchar
10
否
EP_Address
varchar
50
否
EP_Causation
varchar
100
否
EP_Remark
varchar
150
否
(5)traininformation的结构如表2.5所示。
表2.5traininformation
字段名
数据类型
长度
是否允许空值
T_Number
Int
15
否
T_Content
varchar
50
否
T_Name
varchar
20
否
T_Date
varchar
10
否
T_Money
varchar
10
否
(6)wageinformation的结构如表2.6所示
表2.6wageinformation
字段名
数据类型
长度
是否允许空值
W_Number
Int
15
否
W_Name
varchar
20
否
W_BasicWage
Int
10
否
W_Boon
varchar
20
否
W_Bonus
Int
10
否
W_CountMethod
varchar
20
否
W_FactWage
Int
10
否
3具体设计
3.1系统登录界面设计
系统用户登录窗体主要用来验证用户的登录信息,完成用户的登录功能,该模块的运行结果如图3.1所示。
图3.1用户登录窗体
登陆系统是验证用户是否可以使用此系统,如果输入的用户名和密码正确,选择身份正确,才可以验证成功,登录此系统进行使用,否则,信息不正确或者身份不争取,都不可以进入此系统。
如图3.2所示
图3.2登录系统流程图
3.2系统主体窗体设计
主窗体是软件系统的一个重要组成部分,是提供人机交互的一个必不可少的操作平台。
通过主窗体,用户可以打开与系统相关的各个子操作模块,完成对软件的操作和使用;另外通过主窗体,用户还可以快速掌握本系统的基本功能。
首先通过菜单栏可以打开本系统所有的子模块,菜单栏的效果如图3.3所示。
图3.3菜单栏
部分实现码:
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
lp1.setFont(newjava.awt.Font("新宋体",1,18));//NOI18N
lp1.setText("欢迎使用企业人事管理系统!
");
javax.swing.GroupLayoutpLayout=newjavax.swing.GroupLayout(p);
p.setLayout(pLayout);
pLayout.setHorizontalGroup(
utton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
utton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
utton5.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
utton5ActionPerformed(evt);
}
});
jToolBar1.add(utton5);
systemM.setText("系统管理");
password.setText("密码修改");
password.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
passwordMouseClicked(evt);
}
});
password.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
passwordActionPerformed(evt);
}
});
systemM.add(password);
land.setText("重新登录");
land.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
landMouseClicked(evt);
}
});
systemM.add(land);
addDelete.setText("添加/删除用户");
addDelete.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
addDeleteMouseClicked(evt);
}
});
systemM.add(addDelete);
exit.setText("退出系统");
exit.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
exitMouseClicked(evt);
}
});
exit.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
exitActionPerformed(evt);
}
});
systemM.add(exit);
jMenuBar1.add(systemM);
manageM.setText("信息管理");
employeeMM.setText("员工信息管理");
employeeM.setText("基本信息管理");
employeeM.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
employeeMMouseClicked(evt);
}
});
employeeMM.add(employeeM);
trainM.setText("培训信息管理");
trainM.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
trainMMouseClicked(evt);
}
});
employeeMM.add(trainM);
encouragementPunishM.setText("奖罚信息管理");
encouragementPunishM.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
encouragementPunishMMouseClicked(evt);
}
});
employeeMM.add(encouragementPunishM);
wageM.setText("薪资信息管理");
wageM.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
wageMMouseClicked(evt);
}
});
employeeMM.add(wageM);
manageM.add(employeeMM);
departmentM.setText("部门信息管理");
departmentM.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
departmentMMouseClicked(evt);
}
});
manageM.add(departmentM);
jMenuBar1.add(manageM);
selectM.setText("信息查询");
employeeSM.setText("员工信息查询");
employeeS.setText("基本信息查询");
employeeS.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
employeeSMouseClicked(evt);
}
});
employeeSM.add(employeeS);
trainS.setText("培训信息查询");
trainS.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
trainSMouseClicked(evt);
}
});
employeeSM.add(trainS);
encouragementPunishS.setText("奖罚信息查询");
encouragementPunishS.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
encouragementPunishSMouseClicked(evt);
}
});
employeeSM.add(encouragementPunishS);
wageS.setText("薪资信息查询");
wageS.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
wageSMouseClicked(evt);
}
});
employeeSM.add(wageS);
selectM.add(employeeSM);
departmentS.setText("部门信息查询");
departmentS.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
departmentSMouseClicked(evt);
}
});
selectM.add(departmentS);
jMenuBar1.add(selectM);
helpM.setText("帮助");
jMenuBar1.add(helpM);
aboutM.setText("关于");
jMenuBar1.add(aboutM);
setJMenuBar(jMenuBar1);
工具栏的设计,为了方便用户使用系统,在工具栏中为常用的系统子模块提供了快捷按钮,用户可以快速地进入系统中常用的子模块。
工具栏的效果如图3.4所示。
图3.4工具栏
部分实现代码:
pLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pLayout.createSequentialGroup()
.addponent(lp1,javax.swing.GroupLayout.PREFERRED_SIZE,632,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0,0,Short.MAX_VALUE))
);
pLayout.setVerticalGroup(
pLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pLayout.createSequentialGroup()
.addGap(20,20,20)
.addponent(lp1)
.addContainerGap(23,Short.MAX_VALUE))
);
jToolBar1.setRollover(true);
utton1.setText("员工基本信息管理");
utton1.setFocusable(false);
utton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
utton1.s