admin 管理员组文章数量: 1086019
2024年5月31日发(作者:网页设计主页代码)
java课程设计
人力资源管理系统
设计选题:人力资源管理系统
专 业:
姓 名:
学 号:
指导老师:
目录
第一章
需求分析报告 .................................................................................................... 4
1.1
目的分析 ........................................................................................................ 4
1.2
操作方式上的可行性 .................................................................................... 4
1.3技术上的可行性 .................................................................................................. 4
1.4经济可行性 .......................................................................................................... 5
1.5 项目目标 ............................................................................................................. 5
第二章 项目开发计划................................................................................................... 6
2.1 人员分配 ............................................................................................................. 6
2.2 运行环境 ............................................................................................................. 6
2.2.1 软件环境 .................................................................................................. 6
2.2.2 硬件环境 .................................................................................................. 6
2.3 开发环境 ............................................................................................................. 7
2.3.1 服务器软件环境 ...................................................................................... 7
2.3.2 服务器硬件环境 ...................................................................................... 7
2.3.3 开发及其软件环境 .................................................................................. 7
2.3.4 开发机器硬件环境 .................................................................................. 7
第三章 系统分析报告................................................................................................... 8
3.1业务流程图 .......................................................................................................... 8
3.2 数据流程图 ......................................................................................................... 9
3.3数据字典功能分析............................................................................................. 11
3.4 数据库设计....................................................................................................... 12
3.4.1 数据库概念模型设计 ............................................................................ 12
3.4.2 数据库物理模型设计 ............................................................................ 13
3.4.3 数据库E-R图 ......................................................................................... 13
3.4.4 数据库表的设计 .................................................................................... 14
3.5 功能分析 ........................................................................................................... 14
3.5.1 人员档案............................................................................................... 14
3.5.2 基本信息 ................................................................................................ 15
3.5.3 人事调配 ................................................................................................ 15
3.5.4 管理员管理 ............................................................................................ 15
3.5.5 管理员权限 ............................................................................................ 15
3.5.6 人力资源功能模块图 ............................................................................ 15
第四章 系统设计报告................................................................................................... 16
4.1 功能模块设计 ................................................................................................... 16
4.2 新系统信息处理流程设计 ................................................................................ 17
4.2.1 处理流程设计的任务 ............................................................................ 17
4.2.2 流程设计 ................................................................................................ 17
4.3 输出设计 ........................................................................................................... 18
4.3.1 输出设计的内容 .................................................................................... 18
4.3.2 输出设计的方法 .................................................................................... 18
4.3.3 输出设计评价 ........................................................................................ 18
4.4 代码设计 ........................................................................................................... 18
4.5 程序设计说明书 ............................................................................................... 19
4.5.1 任务概述 ................................................................................................ 19
4.5.2 系统功能模块 ........................................................................................ 19
第五章 系统实现部分................................................................................................... 21
5.1 程序框图 ........................................................................................................... 21
5.2 源程序框架 ....................................................................................................... 21
5.3 测试用例 ........................................................................................................... 22
5.3.1界面测试 ................................................................................................. 22
5.3.2.功能测试 ................................................................................................. 23
5.3.3需求测试 ................................................................................................. 23
5.3.4性能测试 ................................................................................................. 23
5.4系统使用说明书 ................................................................................................ 23
5.5 功能简介 ........................................................................................................... 26
5.6 操作步骤 ........................................................................................................... 26
5.6.1 系统初始化 ............................................................................................ 26
5.6.2运行控制 ................................................................................................. 26
5.6.3系统结束................................................................................................ 26
5.7 注意事项 ........................................................................................................... 26
5.7.1主要领导的理解和全力支持.................................................................. 27
5.7.2 培训 ........................................................................................................ 27
5.7.3改进企业的相关制度和信息结构 .......................................................... 27
5.7.4明确项目的实施目标 ............................................................................. 28
5.7.5组织精悍的项目实施小组...................................................................... 28
5.7.6 测试软件功能 ........................................................................................ 28
第六章 工作总结........................................................................................................... 29
第七章 附 录 ............................................................................................................ 30
7.1员工信息添加部分原代码: ............................................................................. 30
7.2 日历的部分源代码............................................................................................ 40
第一章 需求分析报告
1.1 目的分析
对于快速发展中的企业,面对市场经济的竞争压力、知识经济的管理
压力,已经开始意识到,企业业务流程的各个环节,如产品的设计、生产、
销售、服务等,都离不开人的参与,任何一个环节出现问题,往往都表现
为人的问题。员工的素质与士气已成为企业生存与发展的基础,人力资源
管理已经成为企业管理和发展的主要症结所在。良好的人力资源管理效率
与开发能力将有助于企业营造人才发展环境,提升竞争能力。企业的人力
资源管理已经成为企业各种管理中的重要基础内容和支柱。利用信息技术,
建立企业人力资源管理信息系统,提高管理的效率和效益,已经成为企业
信息化的重要内容和任务。
人力资源管理是指根据企业发展战略的要求,有计划地对人力资源进
行合理配置,通过对企业中员工的招聘、培训、使用、考核、激励、调整
等一系列过程,调动员工的积极性,发挥员工的潜能,为企业创造价值,
确保企业战略目标的实现。随着企业的信息化和体制改革的步伐,人才竞
争使企业的人力资源面临前所未有的挑战。越来越多的企业不断地加大对
员工的投资,从而更好地吸引、保留和发展所需人才,使企业拥有持久的、
强大的竞争优势。 我们将为企业提供全面的人力资管理解决方案,旨在满
足快速成长的企业管理信息化需求,主要目的就是帮助客户快速持续和健
康成长,并且使人力资源部门借助此管理系统从重复烦杂的日常管理事务
中解脱出来,将更多精力投注于人力资源战略规划以支持和推动企业战略
目标的实现,不断提升人力资源部对企业的价值,有效地提升企业的核心
竞争力。 本说明书目的在于明确说明系统需求,界定系统实现功能的范围,
指导系统设计以及编码。
1.2 操作方式上的可行性
该系统运行平台较为常见,易于操作,组织机构操作可行性较大。主要的数
据如下:
操作系统:Windows XP/2000
数据库系统:Oracle9i
数据库宿主环境:Windows
客户端连接工具:MySQL Connector/NET
客户端软件:MyEclipse7.0
1.3技术上的可行性
随着技术的不断增加,功能的不断加强,和网络技术的不断成熟,信息安全
的不断完善以及开发工具的日益进步,采用计算机系统来管理人事信息要求数据
的采集、更新能够完整、准确和及时。所以开发通用的企业人力资源管理系统已
经完全可以做到。
1.4经济可行性
通过网络化的人力资源管理,大大提高了企业人才的利用率,使之为企业创
造了更大的价值。人才利用率的提高,增强了企业的核心竞争力,全面提升了企
业的管理能力,从而企业适应了信息时代的网络化管理要求。
1.5 项目目标
系统的工作内容包括:员工基本信息的录入与查询;员工档案的维护;员工
合同的保存,录入与维护;员工履历的保存与查询;员工人事调动的记录与查询;
员工受到的奖励以及培训教育的记录与维护。
本系统的目标是满足各企业日常的人力资源管理的各种基本操作,为企业节
约大量时间,为企业增强综合竞争力打下良好基础。
第二章 项目开发计划
2.1 人员分配
姓 名
梁 飞
邓远峰
胡 娜
张 霄
职务
组长
组员
组员
组员
主要负责模块
管理员模块功能的实现,协助其他组员完成任务
数据库设计、系统日志 协助其他组员完成任务
员工模块功能的实现,协助其他组员完成任务
部门模块功能的设计,协助其他组员完成任务
2.2 运行环境
2.2.1 软件环境
分类 名称
操作系统 Windows XP
操作系统的附加功能
数据库平台 Oracle
数据库平台补丁 PLSQL Developer
应用平台 Tomcat
应用平台补丁
邮件系统
客户端软件 Myeclipse7.0
版本
SP3
9i
5.1.2.682
6.0
语种
简体中文
简体中文
简体中文
英文
英文
2.2.2 硬件环境
服务器
应用和
数据库
服务器
邮件服
务器
最低配置
CPU:Intel Core2 E5300
内存:2G
CPU:Intel Core2 E5300
内存:2G
推荐配置
CPU:Intel Core2 E5300
内存:2G
CPU:Intel Core2 E5300
内存:2G
2.3 开发环境
2.3.1 服务器软件环境
分类 名称
操作系统 Windows XP
操作系统的附加功能
数据库平台 Oracle
数据库平台补丁 PLSQL Developer
应用平台 Tomcat
应用平台补丁
邮件系统
客户端软件 Myeclipse7.0
版本
SP3
9i
5.1.2.682
6.0
语种
简体中文
简体中文
简体中文
英文
英文
2.3.2 服务器硬件环境
服务器
应用服务
器、数据库
服务器、邮
件服务器、
目录服务器
最低配置
CPU:Intel Core2 E5300
内存:2G
推荐配置
CPU:Intel Core2 E5300
内存:2G
2.3.3 开发及其软件环境
分类
操作系统
数据库平台
应用平台
开发平台
客户端软件
名称 版本
Windows XP SP3
操作系统的附加功能
Oracle 9i
Tomcat 6.0
Windows XP SP3
DreamweaverMX4+
Myeclipse8.0
语种
简体中文
简体中文
英文
简体中文
简体中文+英文
2.3.4 开发机器硬件环境
分类
开发
机器
最低配置
CPU:Intel Core2 E5300
内存:2G
推荐配置
CPU:Intel Core2 E5300
内存:2G
第三章 系统分析报告
3.1业务流程图
业务流程图(transaction flow diagram)是一种描述系统内各单位、人员
之间业务关系、作业顺序和管理流向的图表,利用它可以帮助分析人员找出业务
流程中不合理流向。业务流程图的绘制基本上按照业务的实际处理步骤和过程绘
制。绘制流程图的目的是为了分析业务流程,在对现有业务流程进行分析的基础
上进行业务流程重组,产生新的更为合理的业务流程图。通过除去不必要的、多
余的业务环节;合并重复的环节;增补缺少的必须的环节;确定计算机系统要处
理的环节等重要步骤,在绘制流程图的过程中可以发现问题,分析不足改进业务
处理过程。
业务流程图的图像符号说明:
外部实体
处理过程
存储信息或者文件
数据库
信息传输过程
人力资源管理信息系统业务流程图
如3-1
招聘人员笔试初试面试培训人员
组织培训
拟录用人员名
单
受培训人员名
单
薪酬福利设计
员工薪酬清单
上岗工作
薪酬人员
绩效管理
人员
正式员工名单
录入所有表格
信息
实施绩效考核
总员工信息
报表打印
图3-1人力资源管理信息系统业务流程图
本系统实现的业务流程图:
人事部
录入员工基本
信息
职工删除信息职工调转信息职工基本信息
员工档案
查询员工档案生成报表
员工信息报表
图3-2 系统业务流程图
3.2 数据流程图
数据流程图描述数据流动、存储、处理的逻辑关系、也成为逻辑数据流图
(logical data flow diagram),一般用DFD表示。
数据流程图一般用到四个基本符号:
外部实体 处理过程 存储文件或信
息
D1 报表
数据流
数据流程图3-3:
F0应聘人员清单
S1
招聘人员
D1拟
录用
表
P1
笔试初试
P2
面试
D1
拟录用
人员名
单
D3
员工薪
酬清单
S3
薪酬专员
P3
薪酬福利设计
S2
培训专员
D2培训人员
表
P4
上岗工作
D4
通
过
考
核
D3试用考
核阶段人
员表
P5
组织培训
D2
受培训人
员名单
D4
正式录用
人员名单
P6
实施绩效考核
S4
绩效管理
人员
S5
劳资关系
管理专员
P7
劳资关系管理
D6
系统管理员
D5
人力资
源总信
息
D5总
信息
清单
P8
录入所有表格
信息
D6
信息报
表
P9
打印报表
图 3-3人力资源管理信息系统数据流程图
本系统实现的数据流程图:
一层数据流程图
3-4
:
员工
人事部
P1
员工管理
企业管理者
图3-4一层数据流程图
二层员工信息流程图3-5:
P1.1
员工基本信息检索
P1.2
员工
DI 员工信息
员工信息录入
人事部
P1.3
员工解雇
P1.4
员工调度
企业管理者
图 3-5 二层员工信息数据流程图
3.3数据字典功能分析
1.员工信息表(emp)=员工编号+员工姓名+年龄+性别+所在部门编号+工资+
奖金+入职时间+职位+上级编号
2.部门信息(dept)= 部门编号+部门名称+部门所在位置
3. 管理员信息表(admins)= 管理员编号+管理员账号+管理员密码+管理员
权限等级
4.管理员权限表(admins-lv)= 管理员权限等级编号+管理员等级权限名称
表 3-1 信息完整性判定条目
系统名:人力资源 编号:01
加工名:信息完整性判断
输入:员工信息 输出:1 判定成功,输出合法的员工信息
2 判定失败,输出实拍的提示信息
加工逻辑:对于员工基本信息
1. 判断员工的员工编号+员工姓名+年龄+性别+所在部门编号+
工资+奖金+入职时间+职位+上级编号不能为空。
2.判断输入记录是否符合要求。
描述:确保信息采集的完整性
表 3-2 信息有效性判定条目
系统名:人力资源 编号:02
加工名:信息有效性判断
输入:员工信息等 输出:1 判定成功,输出有效的员工信息。
2、判定失败,输出失败提示信息
表 3-3 提交信息条目
加工逻辑:
系统名:人力资源1. 判断员工是否存在,员工的基本信息是否确认。 编号: 03
加工名:提交信息2. 判断工号不能重复。
输入:员工信息3. 判断日期是否合法。 输出:1、成功,输出成功提示
2 、失败,输出失败提示
加工逻辑:对于员工
1、 员工信息更新入库
2、 判断是否有变更,提示变更
3、 更新数据库
3.4 数据库设计
3.4.1 数据库概念模型设计
图 3-6 数据库概念模型图
3.4.2 数据库物理模型设计
图 3-5 数据库物理模型图
3.4.3 数据库E-R图
Emp-id
Dept-id
Emp-name
Dept-nameDEPT1partainNEMP
Dept-id
Emp-loc
……
图 3-6 数据库员工信息E-R 图
Level-id
Addmins-id
Level-id
Admins-name
ADMINSN
partain1
ADMINS-LV
Level-name
Admins-isusingAdmins-password
图 3-7 管理员信息 E-R图
3.4.4 数据库表的设计
字段类型 长度 能否为空 主键
emp表
emp_id 员工编号 Number 4 否 ●
dept_id 部门编号 Number 4 否
emp_name 员工姓名 Var char 10 否
emp_sex 员工性别 Var char 2 否
emp_age 员工年龄 Number 2 否
emp_job 目前的作 Var char 10 否
emp_mgr 上级领导编号 Number 4 否
emp_hiredate 入职时间 Date -- 否
emp_sal 工资 Number 5 否
emp_comm 奖金 Number 5 否
dept表
dept_id 部门编号 Number 4 否 ●
dept_name 部门名称 Var char 10 否
dept_loc 部门所在地 Var char 20 否
admins表
admins_id 管理员编号 Number 4 否 ●
level_id 管理等级编号 Number 4 否
admins_name 管理员账号 Var char 10 否
admins_password 管理员密码 Var char 10 否
admins_isusing 是否在使用 Number 1 否
admins_lv表
level_id 管理员等级编号 Number 4 否 ●
level_name 管理员等级名称 Var char 10 否
dept表与emp表存在主外键关系dept_id与emp表为一对多关系
admins_lv表与admins表存在主外键关系level_id与admins表为一对多关系
字段名 基本信息
3.5 功能分析
3.5.1 人员档案
建立符合公司组织机构的组织模型和完整人事档案库,记录一定范围内的职
工和雇工的档案信息,并且这些信息可以和绩效考核的成绩关联,方便存档和查
询。 系统重点围绕数据维护、查询和分析便捷的要求,并通过关键业务节点的
业务流程化,提高HR业务的处理效率。
3.5.2 基本信息
记录员工基本信息,包括姓名、性别、年龄、部门、职务、上级人员编号、
入职时间等相关信息。员工(在职、兼职、离退)基本信息的管理,包括:增加、
删除、修改; 员工基本信息的浏览;提供员工信息表(查询);
在系统提供的标准人事信息基础上,用户可自行定义其他人事信息子集及项
目(即导向员工档案、员工履历、员工合同等界面)。根据选择的条件可进行快
速筛选、定位所需的人员信息,并方便地进行员工自然信息的修改,便于人员信
息的维护。 各级单位可分别对本单位员工进行管理,即可分别维护本单位员工
的基本信息。
3.5.3 人事调配
部门信息,记录部门详细信息,编号,地址。
3.5.4 管理员管理
系统管理员进行后台管理的模块,包括管理员的账号,编号,密码,权限级
别。
3.5.5 管理员权限
系统管理员权限进行后台管理的模块,包括管理员的权限编号和名称。
3.5.6 人力资源功能模块图
第四章 系统设计报告
4.1 功能模块设计
作为一个具有应用价值的管理信息系统,在本质上说,其操作对象为数据库
中存储的具体记录,因此,不仅要求所有使用的数据库系统具有比较高的稳定性、
安全性及高负载下保持足够响应的能力,还要求设计者清楚需求,作为科学家的
数据库逻辑结构设计,以提高数据库的利用效率,减少数据冗余。
本系统共包括两大模块,分别是工作管理模块和人员管理模块。每个模块的
功能如下:
1.登录模块
在本系统中,不同级别的使用者拥有不同的权限,本系统的用户身份分为职
工、管理员、主管四种:职工登录后能进行的操作包括修改登录密码和查询个人
信息;管理员负责维护职工基本信息和职工流动信息,同时也具备修改密码和查
询个人信息的权限;主管主要负责组织机构编制的管理,对新增子公司和各下属
机构部门信息的管理。也可更改登录密码或查询个人信息。
2. 员工管理模块功能:
(1)实现个人档案信息的查询;
(2)实现个人档案信息的更新,包括增加、删除、修改功能;
(3)实现职位变动信息的查询;
(4)实现职位变动信息的更新,包括增加、删除、修改功能;
3. 部门管理模块功能:
(1)实现职位信息的查询;
(2)实现职位信息的更新,包括增加、删除、修改功能;
(3)实现部门信息的查询;
(4)实现部门信息的更新,包括增加、删除、修改功能;
4.系统用户管理模块
(1)系统用户模块分为两个部分。第一部分是系统为每个系统的使用者提供
了修改登录密码的权限。第二部分是登录人员可对个人基本信息、调动信息以及
各项考勤信息进行查询。
(2)修改登录密码:在管理人员添加用户时,系统会把每个新添用户的密码设
置为一个默认值,管理人员无法对此默认值进行修改。用户一旦被分配了职工编
号和权限,就可登录本系统,并对个人登录密码进行修改。
(3)查询个人信息:用户登录后可以查看个人基本信息并进行核对,但为了系
统安全性考虑,本系统没有给职工修改个人基本信息的权限,所以当用户基本信
息发生变更,或者用户发现显示的基本信息与现实不符时,须向人事管理人员提
出人事基本信息修改的申请。
5.日志功能模块
在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它
可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日
志系统所 记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调
整系统的行为。在安全领域,日志系统的重要地位尤甚,可以说是安全审计方面
最主要的工具之 一。
4.2 新系统信息处理流程设计
4.2.1 处理流程设计的任务
设计出所有模块和他们之间的相互关系(即联结方式),并具体地设计出每
个模块内部的功能和处理过程,为程序员提供详细的技术资料。
4.2.2 流程设计
员工
人事部
P1
员工管理
企业管理者
图 4-1 人力资源管理 顶层数据流
P1.1
员工基本信息检索
P1.2
员工
DI 员工信息
员工信息录入
人事部
P1.3
员工解雇
P1.4
员工调度
企业管理者
图 4-2 人力资源管理员工管理流程图
4.3 输出设计
输出设计的任务是使管理信息系统输出满足用户需求的信息。
输出设计的目的是为了正确及时反映和组成用于管理各部门需要的信息。信
息能够满足用户需要,直接关系到系统的使用效果和系统的成功与否。
4.3.1 输出设计的内容
输出信息使用情况。企业管理者可以为新加入的员工建档,保存员工的基本
信息,查询部门的分布。
输出信息内容。输出项目、精度、信息形式(文字、数字)。
员工信息输出内容包括
图4-3 员工信息输出表
4.3.2 输出设计的方法
在系统设计阶段,设计人员应给出系统输出的说明,这个说明既是将来编
程人员在软件开发中进行实际输出设计的依据,也是用户评价系统实用性的依
据。因此,设计人员要能选择合适的输出方法,并以清楚的方式表达出来
。
表格信息。一般而言,表格信息是系统对各管理层的输出,以表格的形式
提供给信息使用者,一般用来表示详细的信息。
4.3.3 输出设计评价
本系统输出设计为用户提供及时、准确、全面的信息服务; 便于阅读和理
解,符合用户的习惯; 充分考虑和利用了输出设备的功能; 为今后的发展预留
一定的余地。
4.4 代码设计
代码是代表事物名称、属性、状态等的符号,一般用数字、字母或它们的组
合来表示。
数据库占用码
码
0
1
分类
未使用
正在使用
员工代码的设计:
员工代码设计
X x xx
部门号
工种号
编号
4.5 程序设计说明书
4.5.1 任务概述
本系统能满足各企业日常的人力资源管理的各种基本操作,为企业节约大量
时间,为企业增强综合竞争力打下良好基础。
系统的应用范围包括:员工基本信息的录入与查询;员工档案的维护;员工
合同的保存,录入与维护;员工履历的保存与查询;员工人事调动的记录与查询;
员工受到的奖励以及培训教育的记录与维护
4.5.2 系统功能模块
为一个具有应用价值的管理信息系统,在本质上说,其操作对象为数据库中
存储的具体记录,因此,不仅要求所有使用的数据库系统具有比较高的稳定性、
安全性及高负载下保持足够响应的能力,还要求设计者清楚需求,作为科学家的
数据库逻辑结构设计,以提高数据库的利用效率,减少数据冗余。
本系统共包括两大模块,分别是工作管理模块和人员管理模块。每个模块的
功能如下:
1.登录模块
在本系统中,不同级别的使用者拥有不同的权限,本系统的用户身份分为职
工、管理员、主管四种:职工登录后能进行的操作包括修改登录密码和查询个人
信息;管理员负责维护职工基本信息和职工流动信息,同时也具备修改密码和查
询个人信息的权限;主管主要负责组织机构编制的管理,对新增子公司和各下属
机构部门信息的管理。也可更改登录密码或查询个人信息。
2. 员工管理模块功能:
(1)实现个人档案信息的查询;
(2)实现个人档案信息的更新,包括增加、删除、修改功能;
(3)实现职位变动信息的查询;
(4)实现职位变动信息的更新,包括增加、删除、修改功能;
2. 部门管理模块功能:
(1)实现职位信息的查询;
(2)实现职位信息的更新,包括增加、删除、修改功能;
(3)实现部门信息的查询;
(4)实现部门信息的更新,包括增加、删除、修改功能;
3.系统用户管理模块
(1)系统用户模块分为两个部分。第一部分是系统为每个系统的使用者提供
了修改登录密码的权限。第二部分是登录人员可对个人基本信息、调动信息以及
各项考勤信息进行查询。
(2)修改登录密码:在管理人员添加用户时,系统会把每个新添用户的密码设
置为一个默认值,管理人员无法对此默认值进行修改。用户一旦被分配了职工编
号和权限,就可登录本系统,并对个人登录密码进行修改。
(3)查询个人信息:用户登录后可以查看个人基本信息并进行核对,但为了系
统安全性考虑,本系统没有给职工修改个人基本信息的权限,所以当用户基本信
息发生变更,或者用户发现显示的基本信息与现实不符时,须向人事管理人员提
出人事基本信息修改的申请。
4.日志功能模块
在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它
可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日
志系统所 记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调
整系统的行为。在安全领域,日志系统的重要地位尤甚,可以说是安全审计方面
最主要的工具之 一。
第五章 系统实现部分
5.1 程序框图
5.2 源程序框架
项目结构图
view 包总目录
Adutil 表总目录 dao 包总目录
Record 和 tools 包 impl 包总目录
po包总目录
5.3 测试用例
测试总共划分为以下几个方面进行测试。
5.3.1界面测试
界面测试是测试里面比较简单直接的一种测试方法,只有心细应该就可以没
有什么问题了,可是着往往也是设计人员忽略的问题和遗漏的地方,往往会出现
问题的。以下是界面测试中可能出现问题的几个地方:
错别字:即在界面的标题中或者是文本中出现了错别字,这种错误如果是测
试人员不注意,就很难找出来,也许酒会出现在界面上或者是提示信息中。
出现了一些更本读不懂得东西 一般会出现在程序的提示信息中或者是较长
的文本文档中这种情况一般是出现在平起来的文档中间页面的简单陈述是通过
变量平起来的通过程序把字一个一个的输出来,通常是因为程序的错误和程序人
员没有经过认真的自测引起来得,
程序员自创的词语:虽然意思对单不符和界面的标准几需求,这种问题一般
是程序人员使用了一些专业术语,并且混杂着自己的理解,主要是因为开发过程
中团队没有明确的分工,没有规定统一的用语。
页面类似的内容中,明显有字体和字号的不同情况,使界面整体风格上看上
去不一直,这种情况只出现在没有css定义的情况下,或者已经定义了css,开
发人员在开发过程中没有调用.
标题相近的程序及模块,把标题弄混.这种情况多是因为业务方面的定义名
称很相似或很类似,并且业务实体方面也很类似,开发人员在开发过程中忽略了
开发名称和模块,只单独地实现其功能.
5.3.2.功能测试
① 查询功能中,有按单一查询条件进行查询的,也有按多个查询条件组合查
询的,这里要注意多个查询条件之间的关系,还有一些常识性的问题,比如按月查
询,闰年中二月的天数.
② 录入功能中,需要注意的是前台设置的数值长度是否大于后台数值长度,
以及前台与后台的数据结构是否相符,很多时候录入功能无法实现是由于这些原
因.还有就是必须录入的字段的设置是否有误.
③ 测试删除功能中需要注意的是单击”删除”按钮后,一般会出现提示信息,
询问确定删除.通常情况下,我们单击”确认”按钮查看信息是否被删除掉了,而
忽略了单击”取消”按钮后程序的反应,这时有可能的是没有删除,还有一种可能
是即便单击了”取消”按钮,也一样删除了数据.另外,在删除多条记录的时候,
要注意连续选中的几条记录是否真正都被删除了,即如果再按照这种查询方式查
询,是否还能查询出来.有的时候需要在数据库中设一个标志位,而不是真正的物
理删除.所以在下一次查询中,可能还会被查询出来,这主要是因为在查询条件中
没有将标志位考虑在内.
④关于修改功能的测试,主要是看修改确认后是否数据真正已被修改了.这
是最基本的功能,需要注意的是看是否能把不应该修改的数据也修改成功了
5.3.3需求测试
针对需求测试,是测试中很重要的一个环节.因为需求是在软件设计,开发乃
至软件测试中重要的依据.要针对需求测试,首先就要对项目的需求和业务有一
定的了解.这些需求很多时候是在实现增,删,查,改这些基本功能之上,针对项目
和相关业务所作的一些逻辑上的控制.这就要求程序员在设计和编码的时候要去
充分理解考虑需求.
5.3.4性能测试
性能测试在软件的质量保证中起着重要的作用..通常我们把性能指标全部
归结到硬件,操作系统和开发环境上,而忽略了代码本身性能上的考虑.性能需求
指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块
在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击
的可能性
5.4系统使用说明书
该系统名为人力资源管理系统,用户可以通过在该系统注册,从而获取的登
录名,然后可以登录该系统,但是对里面员工,部门,管理员权限只能进行查询,
不可以进行修改,如果进入该系统的用户具有管理员权限,可以对该系统进行查
询,添加,删除等工作,但是当权限过高时,却不能对该系统里面的信息进行修
改。
该系统还给用户提供了一些快捷菜单和换肤功能,对于快捷键的使用,必须首先选中对象,
然后才可以对该系统进行操作,不然系统就会出现在故障(这部分我们设计人员做了多次修
改,可是由于设计人员知识水平有限,并且没有充足的时间,所以在这里很遗憾的出现了一
个小bug,不过正常情况下不影响系统的正常运行),当选中对象以后,就可以根据用户的权
限的不同对系统进行操作,我们这个系统最大的亮点就是做出来了换肤功能,用户可以根据
自己的心情,设置自己喜欢的系统皮肤,以便是心情愉快,更好的提高工作效率。下面介绍
一些主要的界面
4.1登陆界面
4.2主界面
4.3新增员工、部门、管理员界面
4.4查询员工界面
5.5 功能简介
系统的应用范围包括:员工基本信息的录入与查询;员工档案的维护;员工
合同的保存,录入与维护;员工履历的保存与查询;员工人事调动的记录与查询;
员工受到的奖励以及培训教育的记录与维护。
本系统能满足各企业日常的人力资源管理的各种基本操作,为企业节约大量
时间,为企业增强综合竞争力打下良好基础。
实现了按照权限对各表进行操作(添加、修改、删除)以及 数据的
更新功能;
实现了更换皮肤功能;
实现了日志功能。
5.6 操作步骤
5.6.1 系统初始化
说明本系统的初始化过程。以流程的方式描述系统依次的动作,包括内存使
用情况、数据初始化、对象的初始化等。
5.6.2运行控制
说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,
说明每种运行所历经的内部模块和支持软件。
说明每一种外界运行控制的方式方法和操作步骤。
说明每种运行模块组合将占用各种资源的情况。
说明系统运行时的安全控制。
5.6.3系统结束
说明本系统的结束过程。以流程的方式描述系统退出时依次的动作,包括内
存释放情况、对象的释放等。
一般情况下系统出错设计和系统维护设计不应简化,但对特定情况下(如用
户需求中未明确规定或项目周期较短、经费较少、项目复杂程度较少等)这两部
分的设计可以简化。
5.7 注意事项
要想通过人力资源管理系统来提高企业的管理水平,光是选取一个好的或比
较好的、适合本企业特点的人力资源管理软件还是远远不够的。人力资源管理软
件通常只是一个通用的系统框架,它提供诸如报表生成、查询、宏,等等辅助工
具来协助使用者工作。作为一种通用的系统,它适用于多种行业和企业的需要,
能够处理各种各样包括规范的和不规范的、普遍存在的和特殊的、相对简单的和
错综复杂的情景。因此,实施中根据企业的实际情况和企业所在地的政策法规,
进行给这个骨架里添血加肉的工作就非常重要。毫不夸张地说,人力资源管理系
统项目成功与否的关键就在于这种被称为实施过程添血加肉的工作。
由于人力资源管理系统管理的是所有与人相关的数据,信息量大,变化频繁,
内部关联性较弱,数据的采集、确认、更新和检查都比较困难,而且其管理的信
息与员工的切身利益密切相关,特别是工资计算不能有任何错误,因此,实施工
作尤为繁琐和困难,其难度和工作量远远大于一般人的预计。根据实施经验,笔
者认为,为了最大限度地提高企业的人力资源管理水平,成功地实施人力资源管
理系统,需要特别注意以下七点:
5.7.1主要领导的理解和全力支持
人力资源管理系统的实施不只是人事部门或计算机部门的事。为了保证数据
的完整、准确和及时,需要企业内各个部门和全体员工的积极配合。同时,采用
人力资源管理软件,需要在充分回顾企业政策的基础上,根据先进的人力资源管
理理念,从程序到操作进行全面改进。所有这些工作,如没有企业决策层的参与
是很难实现的。
5.7.2 培训
要想使人力资源管理系统真正地发挥应有的效用,必须通过培训转变人们特
别是中高层领导的思维方式和行为方式。要让他们学会并习惯于通过系统来进行
科学的管理,而不是决策凭感觉,分析凭经验。培训不光要使中高层领导明白采
用人力资源管理系统的好处,更重要的是使他们了解系统的功能和系统的运行方
式,学习软件系统中蕴涵的先进理念,主动积极地反思现行的体系,探讨改进的
方案
。
5.7.3改进企业的相关制度和信息结构
由于历史的原因和条件的局限,很多企业现行的相关制度、人事相关信息的
组成和报表不尽合理和科学。而实施人力资源管理系统正是一个非常好的契机来
回顾本企业不合理、不科学或不符合国家相关法律和规章的地方,重新合理地组
织人事相关信息和报表,从而减少企业运行的潜在风险,将人力资源部员工的工
作放在刀刃上。因此,实施人力资源软件不应只是单纯地将现行的制度和报表计
算机化,而是应该充分地回顾本企业的相关政策和信息组成,去掉不合理的成分,
将改进的建议报告给企业的决策领导并争取付诸实施。
5.7.4明确项目的实施目标
在项目的初期,应该明确:整个项目的实施计划和目标,需要采集的数据,
需要保留的历史信息,现有数据如何规范化,以及项目实施的时间和进度安排等
等。
5.7.5组织精悍的项目实施小组
项目实施小组人员的组成应包括企业管理人员,人事、薪资、计算机专业人
员,他们将负责整个项目的组织协调、进度控制、数据分析和数据有效性的检查,
提供相关建议,培训其他人员,建立系统和检查各部门的运行程序。项目实施小
组应明确每个小组成员的工作职责。他们也将是该企业运行人力资源管理系统的
主要骨干和技术支持。
5.7.6 测试软件功能
项目实施小组在明确实施目标和进度后,一项重要的任务就是根据实施目标
全面测试购买的软件系统,争取在三个月内将软件系统95%的错误解决掉。由于
人力资源管理系统需处理的信息关系非常复杂,各企业的需求也不尽相同,再加
上软件的商品化程度远不如已经运行多年的成熟软件产品,存在的错误较多。如
果不在项目实施的初期解决这些问题,随着问题的不断暴露,不仅会浪费大量的
人力,更严重的是会使他人失去信心,严重影响工作的进展。
5.7.7建立科学的程序性文件
人事相关信息的特点是信息量大、变化频繁、采集和确认困难而且无内联关
系。采用计算机系统来管理人事信息要求数据的采集、更新能够完整、准确和及
时。这两者之间的矛盾会因为新系统的投入运行而变得越来越突出。新系统在运
行后无疑会迫使一部分员工改变已经熟悉了的工作方法和习惯,学习包括计算机
知识在内的新知识、新方法、新程序,一部分人的利益也许会受到影响。在系统
的实施过程中,很多企业由于有关人员素质较低、工作责任心不强,加上某些管
理人员的随意指挥,会造成系统的实施和运行事倍功半,而且降低了系统的功效。
所以,除加强培训外,建立必要的科学的程序性文件,做到有章可循,减少和杜
绝各种特例情形,才能为人力资源管理系统的实施和正常运行提供有效的保证。
第六章 工作总结
通过开发本系统,我掌握了java的一些基本知识和编程技巧,由于自己的
理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题
甚至错误,通过不断地调试、修改这些错误使我的java开发能力得到了进一步
的提高。如:更进一步的JDBC深入数据对象技术,java语言的使用;学过的软
件MIS、数据库系统概论及操作也得到了充分的应用。
在开发过程中我学到了一些经验:其一,编程的重要步骤是分析,系统分
析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因
素。我们在着手开发之前不要急于编程,先应有较长的时间去把分析做好,做好
数据库设计工作,写出相关的开发文档等。然后再开始编写程序代码,这样做到
每写一步代码心底有数,有条不絮。当然也有些还需待继续深入地方如:技术等。
其二,我还觉得,我个人在这次设计中走了很多弯路。主要是因为平时很少
接触软件开发工作,在应用方面缺乏经验,各种语言仅仅是我们手中的工具,我
们应该领悟解决问题的思想和方法。在这次编程中最初想用链表解决,后来小组
讨论改用了函数,这样让我们的程序简便不少,也省去了不少麻烦。
此外,本次系统开发设计,我觉得在今后的学习中,要加强对思想的培养和
积累,打破局限性,将各门课融会贯通。如果及时得到老师的指点,象这样的系
统开发起来应该还比较容易。
第七章 附 录
7.1员工信息添加部分原代码:
package ;
import ion;
import yout;
import Event;
import Listener;
import vent;
import istener;
import ist;
import or;
import ;
import n;
import Box;
import con;
import ;
import ;
import nPane;
import ;
import ield;
import ;
import ;
import ;
@SuppressWarnings("serial")
public class EmpAdd extends JFrame implements ActionListener {
private JPanel panel;
private JLabel emp_id, dept_id, emp_name, emp_sex, emp_age, emp_job,
emp_mgr, emp_hiredate, emp_sal, emp_comm;
private JTextField txtemp_id, txtemp_name, txtemp_age, txtemp_job,
txtemp_hiredate, txtemp_sal, txtemp_comm;
private JComboBox cboSex;
private JButton Add, Cancel;
private JFrame jframe = null;
private JComboBox cboemp_mgr, cbodept_name;
static String user = null;
public EmpAdd(String username) {
user = username;
Init();
}
@SuppressWarnings("unchecked")
private void Init() {
e(new Dimension(220, 340));
le("Emp表员工添加");
izable(false);
ationRelativeTo(this);
ImageIcon titleIcon = new ImageIcon("");
nImage(ge());
= (JPanel) tentPane();
out(new FlowLayout());
_id = new JLabel("员工编号:");
_id = new JLabel("部门名称:");
_name = new JLabel("员工姓名:");
_sex = new JLabel("员工性别:");
_age = new JLabel("员工年龄:");
_job = new JLabel("目前工作:");
_mgr = new JLabel("上级领导:");
_hiredate = new JLabel("入职时间:");
_sal = new JLabel("工 资:");
_comm = new JLabel("奖 金:");
_id = new JTextField();
_umns(15);
// t_id = new JTextField();
// t_umns(15);
t_name = new JComboBox();
t_m("---请选择---");
String Dept_strSQL = "select * from dept";
List
Dept_list = ery(Dept_strSQL, new Object[] {}, "dept");
Iterator
while (Dept_t()) {
}
t_m(Dept_().getDept_name());
_name = new JTextField();
_umns(15);
_age = new JTextField();
_umns(15);
_job = new JTextField();
_umns(15);
// _mgr = new JTextField();
// _umns(15);
_mgr = new JComboBox();
_m("---请选择---");
_m("---不存在---");
String Emp_strSQL = "select * from emp";
List
Emp_list = ery(Emp_strSQL, new Object[] {}, "emp");
Iterator
while (Emp_t()) {
_m(Emp_().getEmp_id());
}
_hiredate = new JTextField("请选择日期");
_umns(16);
_table(false);
_seListener(new MouseListener() {
@SuppressWarnings("deprecation")
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if (ifiers() == 16) {
jframe = new JFrame();
tentPane(new CalenderTrain(txtemp_hiredate,
jframe));
ible(true);
();
ation(500, 250);
();
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
_sal = new JTextField();
_umns(16);
_comm = new JTextField();
_umns(16);
= new JComboBox();
m(" 男 ");
m(" 女 ");
= new JButton("确定");
= new JButton("清空");
// //给按钮加监听
ionListener(this);
ionListener(this);
(_id);
(_id);
(_id);
(t_name);
(_name);
(_name);
(_sex);
();
(_age);
(_age);
(_job);
(_job);
(_mgr);
(_mgr);
(_hiredate);
(_hiredate);
(_sal);
(_sal);
(_comm);
(_comm);
();
();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub KV
if (ionCommand() == "确定") {
Submit_Click();
}
if (ionCommand() == "清空") {
Clear_Click();
}
}
public static void main(String[] args) {
new EmpAdd(user).setVisible(true);
}
private void Submit_Click() {
boolean noerr = true;
String emp_id = _t();
int dept_id = 0;
String dept_name = t_ectedItem().toString()
.trim();
String emp_age = _t();
String emp_mgr = _ectedItem().toString().trim();
String emp_name = _t();
String emp_sex = ectedItem().toString().trim();
String emp_job = _t();
String emp_hiredate = _t().trim();
String emp_sal = _t();
String emp_comm = _t();
// 输入内容的逻辑判断
if (_t().length() == 0) {
ssageDialog(this, " 员工编号不能为空!", "
提示",
G_MESSAGE);
txtemp_cus();
noerr = false;
}
final String txtemp__id = txtemp_t().trim();
final String regex1 = "d{4}";
// 利用正则表达式判定输入部门编号是不是数字以及位数是否正确
if (!txtemp__s(regex1) && noerr != false) {
ssageDialog(this, "员工编号输入格式不正确n请参考
1000 格式输入",
"提示", G_MESSAGE);
txtemp_cus();
noerr = false;
}
if (dept_("---请选择---") && noerr) {
ssageDialog(this, " 请选择部门名称!", "提
示",
G_MESSAGE);
noerr = false;
}
if (!dept_("---请选择---") && noerr) {
dept_id = tID(dept_name);
noerr = true;
}
// 利用正则表达式判定输入部门编号是不是数字以及位数是否正确
// if (t_t().length() == 0 && noerr != false) {
// ssageDialog(this, " 部门编号不能为空!",
// "提示", G_MESSAGE);
// txtdept_cus();
// noerr = false;
// }
// final String txtdept__id = txtdept_t().trim();
@SuppressWarnings("unused")
final String regex2 = "d{4}";
// if (!txtdept__s(regex2) && noerr) {
// ssageDialog(this,
// "部门编号输入格式不正确n请参考 2000 格式输入", "提示",
// G_MESSAGE);
// txtdept_cus();
// noerr = false;
// }
if (_t().length() == 0 && noerr) {
ssageDialog(this, " 员工姓名不能为空!", "
提示",
G_MESSAGE);
txtemp_cus();
noerr = false;
}
if (_t().length() == 0 && noerr) {
ssageDialog(this, " 员工年龄不能为空!", "提
示",
G_MESSAGE);
txtemp_cus();
noerr = false;
}
final String txtemp__age = txtemp_t().trim();
final String regex3 = "d{2}";
if (!txtemp__s(regex3) && noerr) {
ssageDialog(this, "员工年龄输入格式不正确n请参考
20 格式输入",
"提示", G_MESSAGE);
txtemp_cus();
noerr = false;
}
if (_t().length() == 0 && noerr) {
"提示",
期!",
",
ssageDialog(this, " 目前的工作不能为空!",
G_MESSAGE);
txtemp_cus();
noerr = false;
}
if (emp_("---请选择---") && noerr) {
ssageDialog(this,
" 请选择上级编号,若没有请选择不存在!", "提示",
G_MESSAGE);
noerr = false;
}
if (emp_("---不存在---") && noerr) {
emp_mgr = "0";
noerr = true;
}
if (emp_("请选择日期") && noerr) {
ssageDialog(this, " 日期未选择,请选择日
"提示", G_MESSAGE);
// txtemp_cus();
txtemp_cus();
noerr = false;
}
// final String txtemp__mgr = txtemp_t().trim();
@SuppressWarnings("unused")
final String regex4 = "d{4}";
// if (!txtemp__s(regex4) && noerr) {
// ssageDialog(this,
// "上级员工编号输入格式不正确n请参考 2000 格式输入", "提示",
// G_MESSAGE);
// txtemp_cus();
// noerr = false;
// }
if (_t().length() == 0 && noerr) {
ssageDialog(this, " 工资不能为空!", "提示
}
G_MESSAGE);
txtemp_cus();
noerr = false;
if (_t().length() > 5 && noerr) {
ssageDialog(this,
" 工资输入格式不正确n输入的数字不能超出99999",
"提示",
G_MESSAGE);
txtemp_cus();
noerr = false;
}
if (_t().length() == 0 && noerr) {
ssageDialog(this, " 奖金不能为空!若没有
请输入0",
"提示", G_MESSAGE);
txtemp_cus();
noerr = false;
}
if (_t().length() > 6 && noerr) {
ssageDialog(this,
" 奖金输入格式不正确n输入的数字不能超出99999",
"提示",
G_MESSAGE);
txtemp_cus();
}
// 判断非法字符
if (noerr) {
if (Char(emp_id)) {
noerr = false;
}
if (Char(emp_name)) {
noerr = false;
}
if (Char(emp_age)) {
noerr = false;
}
if (Char(emp_sex)) {
noerr = false;
}
if (Char(emp_sal)) {
noerr = false;
}
if (Char(emp_comm)) {
noerr = false;
}
if (Char(emp_job)) {
noerr = false;
}
if (Char(emp_mgr)) {
noerr = false;
}
}
// 通过判断连接数据库进行查找
if (noerr) {
List> lst = ery("select * from emp where emp_id = ?",
new Object[] { emp_id }, "emp");
if (!y()) {
ssageDialog(this, " 添加失败:已经存
在的员工!",
"提示", G_MESSAGE);
txtemp_cus();
noerr = false;
onn();
}
}
// 添加
if (noerr) {
int rows = Tools
.ExecOther(
"insert into emp
values(?,?,?,?,?,?,?,to_date(?,'yyyy-mm-dd'),?,?)",
new Object[] { nt(emp_id), dept_id,
emp_name, emp_sex,
nt(emp_age), emp_job,
nt(emp_mgr), emp_hiredate,
nt(emp_sal),
nt(emp_comm) }, user);
if (rows == 0) {
ssageDialog(this,
" 添加失败:与数据库连接时发生错误!", "错误
",
G_MESSAGE);
txtemp_cus();
} else {
ssageDialog(this, " 添加成功:员工号
为:"
+ emp_id + " 的员工已经添加成功!", "成功",
G_MESSAGE);
}
onn();
e();
}
}
private void Clear_Click() {
_t("");
_t("");
_t("");
_t("");
_t("");
_t("");
t_ectedItem("---请选择---");
_ectedItem("---请选择---");
ectedItem(" 男 ");
txtemp_cus();
}
}
7.2 日历的部分源代码
package ;
import Layout;
import ;
import ion;
import yout;
import Color;
import Event;
import Listener;
import nt;
import vent;
import ar;
import ianCalendar;
import ;
import ;
import Tokenizer;
import Factory;
import n;
import ;
import ;
import ;
import ield;
import eButton;
import onstants;
import ger;
public class CalenderTrain extends JPanel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
// 动态表示年月日
private int year = 0;
private int month = 0;
private int day = 0;
// 主面板
private JPanel Main = new JPanel();
private JPanel MainBtn = new JPanel();
// 日面板
private JPanel jPanelDay = new JPanel();
// 月面板
private JPanel jPanelMonth = new JPanel();
private JPanel jPanelBtn = new JPanel();
// 年的输入位置
private JLabel Year = new JLabel();
// 月的输入位置
private JLabel Month = new JLabel();
// 减少月份
private JButton MonthDown = new JButton();
// 增加月份
private JButton MonthUp = new JButton();
private JButton btn_ok = new JButton("确定");
private JButton btn_cancel = new JButton("取消");
private JPanel jPanelButton = new JPanel();
// 减少年份
private JButton YearDown = new JButton();
// 增加年份
private JButton YearUp = new JButton();
// 显示日期的位置
private static JLabel Out = new JLabel();
// 中国时区,以后可以从这里扩展可以设置时区的功能
private Locale l = E;
// 主日历
private GregorianCalendar cal = new GregorianCalendar(l);
// 星期面板
private JPanel weekPanel = new JPanel();
// 天按钮组
private JToggleButton[] days = new JToggleButton[42];
// 天面板
private JPanel Days = new JPanel();
// 标示
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel jLabel3 = new JLabel();
private JLabel jLabel4 = new JLabel();
private JLabel jLabel5 = new JLabel();
private JLabel jLabel6 = new JLabel();
private JLabel jLabel7 = new JLabel();
// 当前选择的天数按钮
@SuppressWarnings("unused")
private JToggleButton cur = null;
// 月份天数数组,用来取得当月有多少天
// 1 2 3 4 5 6 7 8 9 10 11 12
private int[] mm = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
private JTextField TxtDate;
private JFrame jframe;
// 空日期构造函数
public CalenderTrain() {
try {
jbInit();
} catch (Exception e) {
tackTrace();
}
}
public CalenderTrain(JTextField obj, JFrame jf) {
try {
jbInit();
} catch (Exception e) {
// TODO Auto-generated catch block
tackTrace();
}
e = obj;
= jf;
}
// 带日期设置的构造函数
public CalenderTrain(int year, int month, int day) {
(year, month, day);
try {
jbInit();
} catch (Exception e) {
tackTrace();
}
}
// 带日历输入的构造函数
public CalenderTrain(GregorianCalendar calendar) {
cal = calendar;
try {
jbInit();
} catch (Exception e) {
tackTrace();
}
}
// 带日期输入的构造函数
public CalenderTrain(Date date) {
e(date);
try {
jbInit();
} catch (Exception e) {
tackTrace();
}
}
// 初始化组件
private void jbInit() throws Exception {
// 初始化年、月、日
iniCalender();
out(new BorderLayout());
der(RaisedBevelBorder());
imumSize(new Dimension(200, 200));
imumSize(new Dimension(200, 200));
ferredSize(new Dimension(200, 200));
out(new BorderLayout());
kground();
der(null);
// kground(ray);
// izontalAlignment();
// imumSize(new Dimension(100, 19));
// imumSize(new Dimension(100, 19));
// ferredSize(new Dimension(100, 19));
eground();
izontalAlignment();
izontalTextPosition();
t("日");
eground();
izontalAlignment();
izontalTextPosition();
t("六");
izontalAlignment();
izontalTextPosition();
t("五");
izontalAlignment();
izontalTextPosition();
t("四");
izontalAlignment();
izontalTextPosition();
t("三");
der(null);
izontalAlignment();
izontalTextPosition();
t("二");
kground(ray);
eground();
der(null);
izontalAlignment();
izontalTextPosition();
t("一");
kground(UIManager
.getColor("TitleGradient"));
der(EtchedBorder());
out(new GridLayout(1, 7));
(jLabel1, null);
(jLabel7, null);
(jLabel6, null);
(jLabel5, null);
(jLabel4, null);
(jLabel3, null);
(jLabel2, null);
gnmentX((float) 0.0);
ionMap(null);
kground();
out(new BorderLayout());
der(EtchedBorder());
der(null);
izontalAlignment();
seListener(new dapter() {
public void mouseClicked(MouseEvent e) {
Month_mouseClicked(e);
}
});
Listener(new pter() {
public void keyPressed(KeyEvent e) {
Month_keyPressed(e);
}
});
der(null);
// t("u25C4");
t("▼");
ionListener(new Listener() {
public void actionPerformed(ActionEvent e) {
MonthDown_actionPerformed(e);
}
});
der(null);
t("▲");
ionListener(new Listener() {
public void actionPerformed(ActionEvent e) {
MonthUp_actionPerformed(e);
}
});
out(null);
der(null);
jPanelButton
.addComponentListener(new entAdapter() {
public void componentResized(
entEvent evt) {
}
});
jPanelButtonComponentResized(evt);
der(EtchedBorder());
imumSize(new Dimension(80, 25));
imumSize(new Dimension(80, 25));
ferredSize(new Dimension(80, 25));
izontalAlignment();
seListener(new dapter() {
public void mouseClicked(MouseEvent e) {
Year_mouseClicked(e);
}
});
Listener(new pter() {
public void keyPressed(KeyEvent e) {
Year_keyPressed(e);
}
});
der(null);
imumSize(new Dimension(16, 16));
imumSize(new Dimension(16, 16));
ferredSize(new Dimension(16, 16));
e(new Dimension(16, 16));
t("▼");
ionListener(new Listener() {
public void actionPerformed(ActionEvent e) {
YearDown_actionPerformed(e);
}
});
der(null);
imumSize(new Dimension(16, 16));
imumSize(new Dimension(16, 16));
ferredSize(new Dimension(16, 16));
e(new Dimension(16, 16));
t("▲");
ionListener(new Listener() {
public void actionPerformed(ActionEvent e) {
YearUp_actionPerformed(e);
}
});
out(new BorderLayout());
out(new GridLayout(6, 7));
kground();
for (int i = 0; i < 42; i++) {
days[i] = new JToggleButton();
days[i].setBorder(null);
days[i].setBackground();
days[i].setHorizontalAlignment();
days[i].setHorizontalTextPosition();
// days[i].setSize(l,l);
days[i].addActionListener(new Listener() {
public void actionPerformed(ActionEvent e) {
day = nt(((JToggleButton) rce())
.getText());
showDate();
showDays();
}
});
(days[i]);
}
_ionListener(this);
_ionListener(this);
(YearUp);
(YearDown);
out(new BorderLayout());
(Main, );
(jPanelMonth, );
(weekPanel, );
(Days, );
(Month, );
(MonthUp, );
(MonthDown, );
// (jPanelBtn,);
// (jPanelMonth,);
(btn_ok, );
(btn_cancel, );
// (MainBtn,);
// (Out, );
// (jPanelButton);
(YearUp, );
(Year, );
(YearDown, );
(MainBtn, );
(jPanelDay, );
(jPanelBtn, );
showMonth();
showYear();
showDate();
showDays();
}
// 自定义重画年选择面板
void jPanelButtonComponentResized(entEvent evt) {
ation(0, 0);
ation(0, ght());
e(th(), ght() * 2);
ferredSize(new Dimension(th(), YearUp
.getHeight() * 2));
UI();
}
// 以字符串形式返回日期,yyyy-mm-dd
public static String getDate() {
return t();
}
// 测试用
static JFrame f = new JFrame();
public static void main(String[] args) {
// tentPane(new CalenderTrain());
// ();
// String a=e();
// n(a);
// //izable(false);
// ();
}
// 增加年份
void YearUp_actionPerformed(ActionEvent e) {
year++;
showYear();
showDate();
showDays();
}
// 减少年份
void YearDown_actionPerformed(ActionEvent e) {
year--;
showYear();
showDate();
showDays();
}
// 减少月份
void MonthDown_actionPerformed(ActionEvent e) {
month--;
if (month < 0) {
month = 11;
year--;
showYear();
}
showMonth();
showDate();
showDays();
}
// 增加月份
void MonthUp_actionPerformed(ActionEvent e) {
month++;
if (month == 12) {
month = 0;
year++;
showYear();
}
showMonth();
showDate();
showDays();
}
// 初始化年月日
void iniCalender() {
year = ();
month = ();
day = (_OF_MONTH);
}
// 刷新月份
void showMonth() {
t(ng(month + 1) + "月");
}
// 刷新年份
void showYear() {
t(ng(year) + "年");
}
// 刷新日期
void showDate() {
t(ng(year) + "-" + ng(month + 1)
+ "-" + ng(day));
}
// 重画天数选择面板
void showDays() {
(year, month, 1);
int firstDayOfWeek = (_OF_WEEK);
int n = mm[month];
if (Year(year) && month == 1)
n++;
int i = 0;
for (; i < firstDayOfWeek - 1; i++) {
days[i].setEnabled(false);
days[i].setSelected(false);
days[i].setText("");
}
int d = 1;
for (; d <= n; d++) {
days[i].setText(ng(d));
days[i].setEnabled(true);
if (d == day)
days[i].setSelected(true);
else
days[i].setSelected(false);
;
i++;
}
for (; i < 42; i++) {
days[i].setEnabled(false);
days[i].setSelected(false);
days[i].setText("");
}
}
// 单击年份面板选择整个年份字符串
// void SelectionYear(){
// ectionStart(0);
// ectionEnd(t().length());
// }
//
// //单击月份面板选择整个月份字符串
// void SelectionMonth(){
// ectionStart(0);
// ectionEnd(t().length());
// }
// 月份面板响应鼠标单击事件
void Month_mouseClicked(MouseEvent e) {
// SelectionMonth();
inputMonth();
}
// 检验输入的月份
void inputMonth() {
String s;
if (t().endsWith("月")) {
s = t().substring(0, t().length() - 1);
} else
s = t();
month = nt(s) - 1;
();
}
// 月份面板键盘敲击事件响应
void Month_keyPressed(KeyEvent e) {
if (Char() == 10)
inputMonth();
}
// 年份面板响应鼠标单击事件
void Year_mouseClicked(MouseEvent e) {
// SelectionYear();
inputYear();
}
// 年份键盘敲击事件响应
void Year_keyPressed(KeyEvent e) {
// (new Integer(Char()).byteValue());
if (Char() == 10)
inputYear();
}
// 检验输入的年份字符串
void inputYear() {
String s;
if (t().endsWith("年")) {
s = t().substring(0, t().length() - 1);
} else
s = t();
year = nt(s);
();
}
// 以字符串形式输入日期,yyyy-mm-dd
public void setDate(String date) {
if (date != null) {
StringTokenizer f = new StringTokenizer(date, "-");
if (eTokens())
year = nt(ken());
if (eTokens())
month = nt(ken());
if (eTokens())
day = nt(ken());
(year, month, day);
}
();
}
// 以日期对象形式输入日期
public void setTime(Date date) {
e(date);
ender();
();
}
// 返回日期对象
public Date getTime() {
return e();
}
// 返回当前的日
public int getDay() {
return day;
}
// 设置当前的日
public void setDay(int day) {
= day;
(, , );
();
}
// 设置当前的年
public void setYear(int year) {
= year;
(, , );
();
}
// 返回当前的年
public int getYear() {
return year;
}
// 返回当前的月
public int getMonth() {
return month;
}
// 设置当前的月
public void setMonth(int month) {
= month;
(, , );
();
}
// 刷新
public void showMe() {
ys();
nth();
ar();
te(); }
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (ionCommand().equals("确定")) {
t(e());
ible(false);
}
if (ionCommand().equals("取消")) {
// t("请选择日期");
ible(false);
}
}
版权声明:本文标题:人力资源管理系统java程序设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1717117544a701454.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论