java课程设计人事管理系统.docx
- 文档编号:23288737
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:18
- 大小:196.47KB
java课程设计人事管理系统.docx
《java课程设计人事管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计人事管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
java课程设计人事管理系统
人事管理系统
一.系统需求分析:
2
(1)系统的功能设计2
(2)系统功能结构2
(3)数据库设计2
二.功能模块开发3
(1)查询人员信息界面3
(2)添加员工界面3
(3)修改员工信息界面4
(4)删除员工界面5
(5)员工考核界面5
(6)员工考核历史记录界面6
三.各个类说明6
四.程序代码9
(1)Manager9
(2)CardEmploy11
(3)SelEmploy12
(4)AddEmploy14
(5)ReviseEmploy16
iUpdDialog18
(6)DelEmploy21
(7)AllEmploy22
(8)Examine23
(9)History27
(10)EmployModel28
(11)AppraisalModel30
(12)SqlHelper33
一.系统需求分析:
(1)系统的功能设计
i员工信息管理:
员工信息管理包括对员工基本信息和情况进行查询、添加、删除和修改及部门管理
ii员工考核管理:
包括对员工的考核情况进行操作,还可以对历史考核情况进行浏览
(2)系统功能结构
人事管理的系统结构功能结构如图所示:
(3)数据库设计
员工基本表(Employinfo)
名称
字段名称
数据类型
主键
非空
工号
Empno
varchar(10)
Yes
Yes
姓名
Ename
varchar(10)
No
yes
性别
Sex
varchar(4)
No
yes
出生年月
Birthday
Datetime
No
Yes
部门
DeptNo
Char(10)
No
Yes
职务
Ejob
Char(20)
No
Yes
工资
Sal
float
No
Yes
员工考核表(Appraisal)
名称
字段名称
数据类型
主键
非空
工号
Empno
varchar(10)
yes
yes
考核
Consequence
varchar(10)
no
yes
变更日期
RegDate
datetime
No
Yes
考核历史记录(History)
名称
字段名称
数据类型
主键
非空
流水号
JourNo
Int
Yes
yes
工号
Empno
varchar(10)
no
yes
姓名
Ename
varchar(10)
No
Yes
上次考核
OldInfo
varchar(10)
No
Yes
本次考核
NewInfo
varchar(10)
No
Yes
变更日期
RegDate
datetime
No
Yes
二.功能模块开发
(1)查询人员信息界面
实例一个SelEmploy类,当点击“查询”时调用EmployModel类的queryEmploy方法实现查询
(2)添加员工界面
实例一个AddEmploy类当点击“添加”时调用EmployModel类的updEmploy方法实现添加功能
(3)修改员工信息界面
实例一个ReviseEmploy类当点击“修改”时,先调用UpdDialo弹跳出一个修改信息对话框,信息修改完毕后,调用EmployModel类的updEmploy方法实现修改功能
(4)删除员工界面
实例一个DelEmploy类当点击“删除”时调用EmployModel类的updEmploy方法实现删除功能
(5)员工考核界面
实例一个Examine类当点击“确认”时调用AppraisalModel类的updAppraisal方法来完成考核功能
(6)员工考核历史记录界面
实例一个History类当点击时调用AppraisalModel类的updAppraisal方法来完成考核功能
三.各个类说明
类之间的关系图:
1.Manager类
Manager类的一个实例,从而生成了人事管理系统的界面,用JSplitPane类将整个界面分为左右两个部分。
其中左侧实现了人事管理系统的功能树,采用JTree类构建,同时实现了TreeSelectionListener接口,定义了该接口所必须实现的valueChanged(TreeSelectionEvente)方法,JSplitPane右边加入卡片布局CardEmploy类。
当JTree的TreeSelectionEvent事件发生时,调用CardEmploy的方法切换不同卡片,实现不同的管理界面。
2.CardEmploy类
CardEmploy为卡片布局类的面板,主要功能是添加各个界面的卡片,当JTree的TreeSelectionEvent事件发生时。
切换不同的卡片
3.EmployModel、AppraisalModel类
这两个类继承了AbstractTableModel,主要实现的功能是,存放调用sqlhelper
类得到的数据。
可以通过调用sqlhelper实现增删查改功能
4.SqlHelper类
主要就是连接数据库的一些基础操作是,方便代码修改,重复使用
5.SelEmploy
这个类继承Panel,为“查询员工”的界面。
实现了Actionlistener接口,当ActionEvent事件发生时,调用EmployModel类的queryEmploy方法实现查询
6.AddEmploy、ReviseEmploy、DelEmploy类
这些类继承Pane,分别为“添加员工信息”“修改员工信息”“删除员工信息”的界面,这些类实现了Actionlistener接口,当ActionEvent事件发生时,调用EmployModel类的updEmploy方法实现添加、查询、删除、功能
7.Examine类
这个类继承Panel,为“考核员工”界面。
这个类实现了Actionlistener接口,当ActionEvent事件发生时,
(1)先通过调用AppraisalModel的queryAppraisal获取上次考核成绩,
(2)修改Appraisal表的考核成绩(3)再把上次考核成绩跟本次考核成绩加到History表中
8.History
这个类主要是把History表中的信息显示到界面上。
四.程序代码
(1)Manager
package;
import.*;
import.*;
importclassManagerextendsJFrameimplementsTreeSelectionListener{
JPaneljp;
JSplitPanejs;
JScrollPanejsp;
JTreetree;
DefaultMutableTreeNoderoot,t1,t2,t1_1,t1_2,t1_3,t1_4,t1_5,t2_1,
t2_2;
CardEmployae;
EmployModelem;
publicstaticvoidmain(String[]args){
Managermanager=newManager();
}
publicManager(){
dd(js);
("人事管理系统");
(true);
(600,500);
;
}
publicvoidvalueChanged(TreeSelectionEvente){
etLastSelectedPathComponent();
;
import.*;
publicclassCardEmployextendsPanel{
CardLayoutc;
;
import.*;
importclassSelEmployextendsPanelimplementsActionListener{
EmployModelem;
JLabeljl;
JTextFieldjtf;
JButtonjb;
JTablejt;
JScrollPanejsp;
JPaneljp1;
publicSelEmploy(){
;
import.*;
importclassAddEmployextendsPanelimplementsActionListener{
JLabeljl,jl1,jl2,jl3,jl4,jl5,jl6,jl7;
JButtonjb1,jb2;
JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;
JPaneljp1,jp2,jp3,jp4;
EmployModelem;
publicAddEmploy(){
jl1=newJLabel("工号:
");
jl2=newJLabel("姓名:
");
jl3=newJLabel("性别:
");
jl4=newJLabel("出生年月:
");
jl5=newJLabel("部门:
");
jl6=newJLabel("职位:
");
jl7=newJLabel("工资:
");
jtf1=newJTextField(20);
jtf2=newJTextField(20);
jtf3=newJTextField(20);
jtf4=newJTextField(20);
jtf5=newJTextField(20);
jtf6=newJTextField(20);
jtf7=newJTextField(20);
jb1=newJButton("添加");
jb2=newJButton("取消");
;
import.*;
publicclassReviseEmployextendsPanelimplementsActionListener{
JTablejt;
JScrollPanejsp;
JButtonjb1,jb2;
JPaneljp1,jp2;
EmployModelem;
JLabeljl1;
publicReviseEmploy(){
jl1=newJLabel("修改员工信息",;
(newFont("宋体",,28));
jp2=newJPanel();
(jl1);
em=newEmployModel();
String[]paras={"1"};
("select*fromEmployinfowhere1=",paras);
jt=newJTable(em);
jsp=newJScrollPane(jt);
jb1=newJButton("修改");
jb2=newJButton("刷新");
;
import.*;
importclassUpdDialogextendsJDialogimplementsActionListener{
JLabeljl1,jl2,jl3,jl4,jl5,jl6,jl7;
JButtonjb1,jb2;
JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;
JPaneljp1,jp2,jp3;
publicUpdDialog(EmployModelem,introwNums){
jl1=newJLabel("工号:
");
jl2=newJLabel("姓名:
");
jl3=newJLabel("性别:
");
jl4=newJLabel("出生年月:
");
jl5=newJLabel("部门:
");
jl6=newJLabel("职位:
");
jl7=newJLabel("工资:
");
jtf1=newJTextField(20);
jtf2=newJTextField(30);
jtf3=newJTextField(30);
jtf4=newJTextField(30);
jtf5=newJTextField(30);
jtf6=newJTextField(30);
jtf7=newJTextField(30);
;
import.*;
importclassDelEmployextendsPanelimplementsActionListener{
JTablejt;
JScrollPanejsp;
JButtonjb1,jb2;
JPaneljp1,jp2;
JLabeljl1;
EmployModelem;
publicDelEmploy(){
;
import.*;
publicclassAllEmployextendsPanel{
EmployModelem;
JTablejt;
JScrollPanejsp;
JLabeljl1;
JPaneljp;
publicAllEmploy()
{
;
import.*;
import.*;
publicclassExamineextendsPanelimplementsActionListener{
JLabeljl1,jl2,jl3,jl4;
JTablejt;
JScrollPanejsp;
JTextFieldjtf1,jtf2;
Choicech;
JButtonjb1,jb2;
JPaneljp1,jp2,jp3,jp4;
AppraisalModelam;
SqlHelpersqh;
publicExamine(){
;
import.*;
publicclassHistoryextendsPanelimplementsActionListener{
AppraisalModelam;
JTablejt;
JScrollPanejsp;
JLabeljl1;
JPaneljp,jp1,jp2;
JButtonjb1,jb2;
publicHistory(){
;
import.*;
publicclassEmployModelextendsAbstractTableModel{
VectorrowData,columnNames;
;
import.*;
publicclassAppraisalModelextendsAbstractTableModel{
VectorrowData,columnNames;
;
publicclassSqlHelper{
Connectionct=null;
PreparedStatementps=null;
ResultSetrs=null;
Stringdriver="";
Stringurl="jdbc:
odbc:
Manager";
//查询数据库操作
publicResultSetqueryExecute(Stringsql,String[]paras){
try{
(driver);
ct=(url);
ps=(sql);
for(inti=0;i<;i++){
(i+1,paras[i]);
}
rs=();
}catch(Exceptione){
();
}
returnrs;
}
//没注入式查询数据库操作
publicResultSetqueryExecute(Stringsql){
try{
(driver);
ct=(url);
ps=(sql);
rs=();
}catch(Exceptione){
();
}
returnrs;
}
//增删改功能
publicbooleanupdExecute(Stringsql,String[]paras){
booleanb=true;
try{
(driver);
ct=(url);
ps=(sql);
for(inti=0;i<;i++){
(i+1,paras[i]);
}
if()!
=1)
b=false;
}catch(Exceptione){
b=false;
();
}finally{
();
}
returnb;
}
//重写close关闭数据库资源
publicvoidclose(){
try{
if(rs!
=null)
();
if(ps!
=null)
();
if(ct!
=null)
();
}catch(Exceptione2){
();
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 人事管理系统