合肥学院
计算机科学与技术系
课程设计报告
2010?2011学年第二学期
课程Java语言程序设计
课程设计名称企业人事管理系统
专业班级08网络工程(1)班
姓名陈涛
指导教师金莹郭昌建
2011 年9 月
一、需求分析系统需求分析:考察中小企业企业,要求设计一套人事管理系统,其中应具有一定的人事档案管理功能。企业人事管理系统是企业进行管理的不可缺少的一部分。职工的个人信息,各部门的信息,以及职工和部门之间的联系。职工的考勤,职务,部门等。为了方便企业领导掌握本企业的人事信息,在系统中加入查询功能,包括职工的所有信息。还加入了对人事变动(删除、添加、修改)的功能。高效的人事管理系统是中小企业系统之所需。
本系统的具体要求为:
①能全面管理公司人事管理中的各类主体,如人员信息查询,人员信息更新,人员添加,部
门分配等;
②通过计算机能方便的维护(包括插入,删除,修改更新等)各类信息表;
③能通过开发语言实现对数据库的操作,查询基于某个信息表的所须信
息;
④系统具有操作方便,简捷等特点。
功能需求分析:①.在数据库服务器如SQL Server 2000中,建立个关系模式对应的库表,并确定主键,索引,参照完整性,用户自定义完整性等。
②能对各库表进行输入,修改,删除,添加,查询等基本操作。
③能实现如下各类查询:
能统计职工的基本情况,如部门,姓名,年龄,性别等能够统计职工在出勤方面的情况
④要求所设计系统界面友好,功能安排合理,操作使用方便,并能进一步考虑子系统在安全性,完整
性,并发控制,备份恢复等方面的功能要求
二. 设计
1.设计思想:这个题目主要是通过在界面上进行操作从而对数据库里的内容进行添加、删除、修
改等各项操作。首先对数据库进行设计,新建一个数据库,在这个数据库里建7 个表,
按照题目需要对各表进行设计。进行界面设计的时候,因为要在主程序界面上进行操作,所以需要在设计时需要设计一个主函数,在主函数上进行操作,根据需要调用不同的子程序进行不同的功能操作。2.功能设计
根据本次课程设计的要求,将该程序的功能设计如下:运行主程序,进入操作界面, 通过链接数据库,对该程序进行各项操作。进入主界面以后,管理员可以对数据库里 各员工的信息进行插入、删除、更新、查询等各项操作,临时添加的用户只能对数据 库里的信息进行查询。进行各项操作后,会显示相应的信息,并以此对原本数据库信 息进行更新。 3.数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库的结构设计的好坏直接影响了数 据库的效率。 在充分需求分析的基础上,经过逐步的抽象,概括,分析,充分研讨,可画出如下反映人 事管理系统的E-R 图:
用户实体图:
用户名 用户
密码 员
工基本信息实体及联系图:
员工调入基本信息实体及联系图:
员工调出基本信息实体及联系图
员工考勤信息表:
上下班时间表:
上班时间
员工考勤信息统计表:
姓名 姓名 性别 调入理由 单位意见
-员工姓名 备注
员工姓名
单位意见
-员工编号 备注 业
邮编 电话
起薪时间
籍贯 年龄 生日 参加工作时间
进入公司时间 考试情
理由 姓
当前日期 事假 病假
差目的地 出差天数 特殊加班天数
正常加班天数 时间表 ------- 下班时间
员工编号_____________________ 迟到次数
早退次数
4.详细设计
数据库详细设计:
新建一个数据库,在其中建立7个不同的表格,分别记录为:上下班时间表,员工信息表,员工考勤信息统计表,员工考勤表,员工调入信息表,员工调出信息表,用户表。
CREATE TABLE [上下班时间表](
[上班时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[下班时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
)ON [PRIMARY]
GO
CREATE TABLE [员工信息表](
[员工编号][char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[员工姓名][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[性别][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[籍贯][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[年龄][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[生日][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[学历][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[专业][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[住址][char] (60) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[邮编][char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[电话][char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[参加工作时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[进入公司时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[原部门][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[现部门][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[起薪时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[职务][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[备注][char] (60) COLLATE Chinese_PRC_CI_AS NULL
)ON [PRIMARY]
GO
CREATE TABLE [员工考勤信息统计表](
[员工编号][char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[员工姓名][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[迟到次数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[早退次数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[病假天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[事假天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[总请假天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[总出差天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[总加班天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL
)ON [PRIMARY]
GO
CREATE TABLE [员工考勤表](
[员工编号][char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[当前日期][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[上班时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[下班时间][char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[病假][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[事假][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[特殊加班天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[正常加班天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[出差目的地][char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[出差天数][char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [ 员工调入信息表] (
[ 员工姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 考试成绩] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 调入理由] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[ 单位意见] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[ 备注] [char] (100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [ 员工调出信息表] (
[ 员工编号] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 员工姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 调出理由] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[ 单位意见] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[ 备注] [char] (100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [ 用户表] (
[ 用户名] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 密码] [float] NULL
) ON [PRIMARY]
GO
主要程序设计:
1 Denglu.java: 登录界面的设计,设计3 个标签分别记录地址、用户名、密码、设计两个明文文
本框,分别输入地址和用户名,设计一个密文文本框,输入密码,保证输入的密码不可见,在登录后,就连接到数据库,并将连接保存到线程中,这样就保证了数据库操作的及时性和高效性。
2 Caozuo.java :主界面的设计,各个功能按钮、菜单的设计,在主程序中,利用线程技术,主程
序界面能显示当前具体的日期时间,在未登录前,主程序的关键按钮和菜单项不可用,当判断到用户登录后关键按钮设为可用,保证了程序使用过程中的安全性。
3 JDBC.java:sqlserver2000 数据库驱动,完成加载驱动、建立数据库连接、关闭数据库连接等功
能,建立的数据库连接保存到线程中。
4 BaseDao.java :主要执行数据库语言插入、修改、删除等操作,发送数据库语言到数据库执
行,执行成功后返回true ,否则返回false 。
5 Dao.java :继承BaseDao.java 类,实现具体的每个表的数据库操作,包括查询、查询、修
改、添加等功能,其中的删除、修改、添加继承BaseDao.Java 类的方法。
6 Permessage.java :实现员工基本信息的管理界面以及功能的设计,在此要对登录用户进行判
断,若是普通用户,只能使用查询按钮,只有管理员账户,才能进行各项操作。
7 Work.java :实现员工考勤信息的管理界面以及功能模块的设计,在此要对登录用户判断,若
是普通用户,只能使用查询按钮,只有管理员账户,才能进行各项操作。
三. 调试及测试
1、调试过程中遇到的主要问题及解决方法在进行程序运行的时候,因为使用的数据库版本不一致,所以必须在机器上安装新的数据库驱动,并且对环境变量进行设置。在数据库驱动加载成功以后,会
出现操作界面,但是单击登录,程序停滞,并且会显示加载数据库失败,经检查发现,这是因为在数据库进行设置的时候没有对数据库登录用户的属性进行设置,需要对数据库访问和数据库角色进行设置,才能进行具体操作。
2、对设计和编码的回顾讨论和分析;程序连接到本地或者远程数据库,这种机制对数据库的安全性起到了有效的保证,在程序中用户分为普通用户和管理员用户,权限分配合理,这样又保证了程序运行的安全性和数据库操作的安全性。程序中的密码存在缺点,本次设计只使用float 类型的密码,密码存在不健壮性。在程序中对两次线程的使用,恰到好处,保证操作的及时性以及准确性。在程序输出查询结果后放到二维表中,在将二维表放到对话框中。
3、程序运行的时空效率分析
①数据库登录连接后就一直保存在线程中,占用系统资源;
②时间显示中使用线程,占用系统资源
③数据库一直连接中,占用网络通信资源
4、测试数据集
X
电话
is入公两时
炖
MUR」
■W
K@