人事管理系统实施.docx
《人事管理系统实施.docx》由会员分享,可在线阅读,更多相关《人事管理系统实施.docx(27页珍藏版)》请在冰豆网上搜索。
人事管理系统实施
企业信息系统实施
题目:
人力资源管理系统实施
院系信息管理学院
专业信息管理与信息系统
班级信管Q1241
学号12150287
姓名朱雅飞
指导教师余小高
2016年1月3日
目录
一、系统功能介绍2
1、开发平台描述2
2、功能结构图及文字描述4
3、程序流程图及文字描述5
4、关键代码及注释9
二、数据库实现9
1、采用的数据库技术简介9
2、数据表的描述及字段说明13
三、系统界面描述16
1、输入界面16
2、输出界面16
四、数据查询技术实现17
五、数据统计18
1、实现了哪几种统计图形和表格?
18
2、采用了哪些技术?
19
六、报表打印19
1、实现了哪几种报表的打印?
19
2、采用了哪些技术?
19
七、系统是否有帮助文件?
20
一、系统功能介绍
1、开发平台描述
(1) 硬件配置及外设设备
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。
由于本系统是一个MINI管理系统,因此对计算机硬件的要求不是很高,成本较低,只要配备如表1-1所示的就可以。
计算机硬件配备要求表
内容
最低配置
建议配置
主机
P3/1G
P4/2G以上
内存
256MB
1G以上
硬盘
20GB
60GB以上
图表1-1
(2)开发运行软件环境
软件平台是指系统开发与运行的软件环境。
本系统在开发时选用的操作系统是稳定性较强的Windows XP中文专业版,Java程序设计的开发环境是JDK 5.0,集成开发工具是JCreator专业版,数据库的设计工具选用的Microsoft公司的Access 2003。
Java语言是一种跨平台、适合于分布式计算机环境的面向对象编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释性、可靠、安全、平台无关、可移植、多线程、动态性等。
Java的开发环境大体上分成两种方式。
一种方式是使用JDK(Java Developers Kits)工具集,这是一种命令行的方式。
另一种方式是使用集成开发环境(Integrated Developing Environment,IDE)。
采用JDK开发Java程序,能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。
JDK的另一个显著特点是随着Java 版本的升级而升级。
但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
JCreator 专业版是一款适合于各个 Java 语言编程开发人员的IDE工具。
她为使用者提供了大量强劲的功能,例如:
项目管理、工程模板、代码完成、调试接口、高亮语法编辑、使用向导以及完全可自定义的用户界面。
JCreator 具有无限撤销、代码缩进、自动类库方法提示、安所选职能定位查阅JavaAPI文档的功能,它支持JSP、Ant、CVS,其.小巧、易用、美观,是Java初级程序员的理想IDE。
Access2003 是一款Window环境下的数据库管理软件,是Office办公套件中一个极为重要的组成部分,是Microsoft公司于2003年推出的微机数据库管理系统,它不仅解决了以往的Acess中处理中文的麻烦,而且具有了新的优点,在功能上做了加强。
它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面关系数据库管理系统。
利用它可以方便的实现对信息保存、维护、查询、统计等,而且它可以十分方便的与Office其他组件交流数据。
2、功能结构图及文字描述
系统的功能框架分析
构建一个人事信息管理系统,该系统主要由六个子系统组成,分别包括个人信息管理子系统,职务信息管理子系统,出勤信息管理子系统,工资信息管理子系统,惩罚信息管理子系统以及福利信息管理子系统。
同时,为了增强系统的安全性,首先需要通过用户权限认证,只有在登陆界面上输入正确的用户名和密码,才能的登陆本系统进行操作。
通过了系统功能框架的分析,得到了如图2的系统功能模块。
图2系统功能框架
下面简单说明一下各个框架的功能:
(1)系统设置模块:
本应用模块的主要功能是进行管理员设置、返回主页面、以及系统的安全退出。
(2)公司结构模块:
本应用模块的主要功能是进行公司结构的说明,相关部门的管理以及职位的调整。
(3)员工管理模块:
本应用模块的主要功能是实现对员工信息的增加、信息的修改、信息的查询以及信息的删除等操作。
(4)职务管理模块:
本应用模块的主要功能是实现对员工现任职务、员工植物变更记录的管理,以及职务的设置。
(5)出勤管理模块:
本应用模块的主要功能是实现对员工上下班时间登记,员工请假信息,员工加班信息记录的管理。
(6)工资管理模块:
本应用模块的主要功能是实现对员工工资信息的管理,包括工资的查询和调整。
(7)奖惩管理模块:
本应用模块的主要功能是实现对员工的奖惩信息的管理,包括奖惩的查询和添加。
(8)福利管理模块:
本应用模块的主要功能是实现对员工福利信息的管理,包括福利的查询和调整。
(9)帮助模块:
本应用模块的主要功能是实现系统帮助,关于系统。
3、程序流程图及文字描述
1总的系统流程图如图3所示:
图3总的系统流程
2
业务流程图(TransactionFlowDiagram,TFD)是一种描述系统内各单位人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理的流向。
通过前面对企业仓库管理情况进行的一系列调研与分析,得到如图4所示的业务流程图。
图4业务流程图
人事管理系统的业务处理过程如下:
企业认识管理系统记录基本的信息并能对系统的已有信息进行查询;信息添加记录中对基本信息添加;信息输出记录对基本信息并能进行查询。
3
根据业务流程图分析,对于其中的数据流向,处理及存储进行逐层分解,可以得到数据流程图(DataFlowDiagram,DFD)。
数据流程图是分层次的,绘制是采取自顶向下逐层分解的方法。
顶层数据流程图只有一张,它说明了系统总的处理功能、输入和输出。
下一步是对顶层数据流程图中的“处理”进行分解,也就是对第一层数据流程图的再分解。
数据流程图如图5所示。
第3章管理系统主界面设计开发
3.1程序设计
3.1.1程序设计思想与原则
编写程序应符合软件工程化思想。
应用软件的编程工作量极大,而且要经常维护、修改。
如果编写程序不遵守正确的规律,就会给系统的开发维护带来不可逾越的障碍。
软件工程的思想即利用工程化的方法进行软件开发,通过建立软件工程环境来提高软件开发效率。
自顶向下的模块化方法描述了大程序设计的原则,在具体编程中,则应采用结构化程序设计方法。
这种方法指导人们用良好的思想方法却设计程序,其特点是采用顺序结构、循环结构和选择结构三种基本逻辑结构来编写程序。
3.2功能界面设计
虽说程序设计最核心的地方是程序的功能,但程序的界面设计是不可忽视的,它直接影响到程序的易用性。
尤其在Windows时代,一个良好的应用界面会给你的程序锦上添花,甚至有画龙点睛之韵味。
一般来说,在完成核心算法的编制后,就要开始精心设计应用界面了。
图6系统登录界面
系统主页面代码为:
importjava.awt.*;
importjavax.swing.*;
importjavax.sql.*;
importjava.awt.event.*;
publicclassAppMainextendsJFrame
{
privateJMenuBarbarMain=newJMenuBar();
privateMenuBarListener_MenuBarListener=newMenuBarListener();
publicfinalJDesktopPanedesktop=newJDesktopPane();
publicstaticDbConnectionconnetion=newDbConnection();
privateinti,j;
publicAppMain()
{
super("人事管理系统");
Containercontainer=getContentPane();
container.add(desktop,BorderLayout.CENTER);
MenuBarListener.setDeskTop(desktop);
BuildBarMain();
this.setJMenuBar(barMain);setSize(900,700);
intw=(Toolkit.getDefaultToolkit().getScreenSize().width-900)/2;
inth=(Toolkit.getDefaultToolkit().getScreenSize().height-700)/2;
setLocation(w,h);setVisible(true);
addWindowListener(newWindowAdapter()
{
publicvoidwindowClosing(WindowEventevent)
{
intresult=JOptionPane.showOptionDialog(null,"是否真的退出人事信息管理系统?
","系统提示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,
null,newString[]{"确定","取消"},"取消");
if(result==JOptionPane.YES_OPTION)
{
try
{
AppMain.connetion.connection.close();
}
catch(java.sql.SQLExceptionsql)
{
sql.printStackTrace();
}
System.exit(0);
}}});}
privateJMenuBarBuildBarMain()
{
finalJMenu[]_Menu={newJMenu("系统设置"),
newJMenu("公司结构"),newJMenu("员工管理"),
newJMenu("职务管理"),newJMenu("出勤情况"),
newJMenu("工资管理"),newJMenu("奖罚管理"),
newJMenu("福利管理"),newJMenu("帮助")};
finalJMenuItem[][]_MenuItem={{newJMenuItem("管理员设置"),newJMenuItem("返回主界面"),newJMenuItem("安全退出")},{newJMenuItem("公司结构"),newJMenuItem("部门管理"),newJMenuItem("职位调整")},{newJMenuItem("增加员工"),newJMenuItem("信息修改"),newJMenuItem("信息查询"),newJMenuItem("减少员工")},{newJMenuItem("现任职务查询"),newJMenuItem("职务变更查询"),newJMenuItem("职务变更")},{newJMenuItem("上下班登记"),newJMenuItem("请假管理"),newJMenuItem("加班管理")},{newJMenuItem("工资查询"),newJMenuItem("工资调整")},{newJMenuItem("奖罚查询"),newJMenuItem("添加奖罚")},{newJMenuItem("福利查询"),newJMenuItem("福利调整")},{newJMenuItem("系统帮助"),newJMenuItem("关于系统")}};
finalString[][]MenuItemName={{"setmanager_sysMenu","MainInterface_sysMenu","exit_sysMenu"},{"company_structure_Menu","manageDepartment_Menu","setduty_Menu"},{"add_employeeMenu","updata_employeeMenu","select_employeeMenu","delete_employeeMenu"},{"duty_dutyMenu","select_dutyMenu","change_dutyMenu"},{"start_attendance","finish_attendance","askforleave_attendance","Over_Time_attendance"},
{"select_wageMenu","change_wageMenu"},{"select_award_punishMenu","add_award_punishMenu"},{"select_welfareMenu","updata_welfareMenu"},
{"help_helpMenu","about_helpMenu"}};
for(j=0;j<_Menu.length;j++)
{
_Menu[j].setFont(newFont("TimesRoman",Font.PLAIN,14));
for(i=0;i<_MenuItem[j].length;i++)
{
_MenuItem[j][i].setFont(new
Font("TimesRoman",Font.PLAIN,12));
_MenuItem[j][i].addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
_MenuBarListener.setEventName(MenuItemName[j][i]);
}});
_MenuItem[j][i].addActionListener(_MenuBarListener);
_Menu[j].add(_MenuItem[j][i]);
}
barMain.add(_Menu[j]);
}
_MenuItem[0][1].addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
dispose();
}});
returnbarMain;
}
publicstaticvoidmain(String[]args)
{
AppMainappmain=newAppMain();
appmain.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}}
系统主界面如图7所示:
图7系统主页面
4、关键代码及注释
登陆界面的代码:
publicclassHRM_App
{
publicstaticvoidmain(String[]args)
{
Login_Login=newLogin();
}
}
二、数据库实现
1、采用的数据库技术简介
数据库设计是在选定的数据库管理系统基础上建立数据库的过程。
数据库设计除了用户分析外,还包括概念结构设计、逻辑结构设计和物理结构设计等三个阶段。
数据库系统已经成为一门独立的学科,所以,当我们把数据库设计原理应用到MIS开发中,数据库设计的几个步骤与系统开发的各个阶段相对应,且融为一体,它们的对应关系如图8所示。
图8数据库设计与系统开发阶段对应关系图
(1)概念模型E-R图
这一设计阶段是在逻辑关系分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的数据库逻辑设计打下基础。
本文根据上面的分析规划出的实体有部门设计、员工信息、职务管理、职务变更、上班登记、下班登记、员工请假信息、员工加班信息、员工奖惩信息、员工工资信息、员工福利信息、管理员信息等。
实体与实体之间的关系E-R图如图9至图20所示
图9部门设计实体E-R图
图10员工信息实体E-R图
图11职务管理实体E-R图
图12职务变更实体E-R图
图13上班登记实体E-R图
图14下班登记实体E-R图
图15员工请假实体E-R图
图16员工加班实体E-R图
图17员工奖惩实体E-R图
图18员工工资实体E-R图
图19员工福实体E-R图
图20管理员信息实体E-R图
2、数据表的描述及字段说明
根据本系统功能需求,数据库采用Microsoft公司的Access2003,它完全可以适合工作需求,并且它所支持的数据类型十分丰富,维护简单,费用比较低,开发人员技术要求不是很高。
根据模块的设计,以及规范化的设计要求,为满足系统需要,本系统共建立12个表分别是:
部门设计表,雇员信息表,职务管理表,职务变更表,上班登记表,下班登记表,员工请假信息表,员工加班信息表,员工奖罚信息表,员工工资表,员工福利表,管理员信息表。
各个数据表的结构如表2-2至表2-13所示。
表2-2部门设计表(Department_Infor)
字段名
数据类型
字段大小
是否主键
部门编号
文本
20
是
部门名称
文本
20
备注
备注
表2-3员工信息表(employee_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
性别
逻辑
2
年龄
数字
密码
文本
10
身份证号
文本
18
联系电话
文本
20
地址
文本
50
入员时间
日期/时间
8
照片
OLE对象
备注
备注
表2-4职务管理表(Duty_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
现任职务
文本
30
所属部门
文本
20
备注
备注
表2-5职务变更表(Duty_Change_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
现任职务
文本
30
上任时间
日期/时间
8
卸任时间
日期/时间
8
备注
备注
表2-6上班登记表(Start_Register_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
上班时间
日期/时间
8
备注
备注
表2-7下班登记表(Finish_Register_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
下班时间
日期/时间
8
备注
备注
表2-8员工请假信息表(On_Leave_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
请假时间
日期/时间
8
时间长短
文本
20
备注
备注
表2-9员工加班信息表(Over_Time_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
加班日期
日期/时间
8
加班时间
文本
20
备注
备注
表2-10员工奖惩信息表(Award_Punish_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
奖励金
货币
罚款
货币
备注
备注
表2-11员工工资信息表(Wage_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
基本工资
货币
公司补贴
货币
加班费
货币
奖励金
货币
扣除金额
货币
总工资
货币
备注
备注
表2-12员工福利表(Welfare_Infor)
字段名
数据类型
字段大小
是否主键
员工编号
文本
8
是
姓名
文本
20
养老保险
货币
失业保险
货币
工伤保险
货币
总福利金
货币
备注
备注
表2-13管理员信息表(Manager_Infor)
字段名
数据类型
字段大小
是否主键
管理员
文本
20
密码
文本
10
三、系统界面描述
1、输入界面
虽说程序设计最核心的地方是程序的功能,但程序的界面设计是不可忽视的,它直接影响到程序的易用性。
尤其在Windows时代,一个良好的应用界面会给你的程序锦上添花,甚至有画龙点睛之韵味。
一般来说,在完成核心算法的编制后,就要开始精心设计应用界面了。
图3-1系统主页面
2、输出界面
图3-1系统输出页面
四、数据查询技术实现
1、利用CGI实现Web动态技术
在WEB应用中,与其他动态编程技术相比,CGI技术虽然是一项很早期的技术,有很多的不足,性能差、需要大量的HTTP知识、不灵活等等,但笔者认为它还是具有很强的使用性,因为其使用普遍,很多WEB服务器均支持。
就其协议而言,具有简单、易掌握,见效快等特点。
因此本文介绍的应用实例主要是基于它的。
CGI是COMMONGATEWAYINTERFACE的缩写,目前大多数的WEB产品提供此项服务功能,它可以使用任何一种计算机语言编写,使用尤其广泛的有C、PERL、C++语言,在INTERNET上有很多相关的资料和程序及源代码。
IDC(INTERNET数据库连接器)通过使用INTERNET数据库连接器可以发布你的数据库,允许用户访问数据,只需开发者编写最少量的代码。
你只需提供SQL查询(IDC将在数据库上执行它)和模板(描述数据显示和收集的方式),而不用进行复杂的程序设计,这种方