java课程设计报告人事管理系统Word格式.docx

上传人:b****1 文档编号:616644 上传时间:2023-04-29 格式:DOCX 页数:44 大小:204.83KB
下载 相关 举报
java课程设计报告人事管理系统Word格式.docx_第1页
第1页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第2页
第2页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第3页
第3页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第4页
第4页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第5页
第5页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第6页
第6页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第7页
第7页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第8页
第8页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第9页
第9页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第10页
第10页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第11页
第11页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第12页
第12页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第13页
第13页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第14页
第14页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第15页
第15页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第16页
第16页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第17页
第17页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第18页
第18页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第19页
第19页 / 共44页
java课程设计报告人事管理系统Word格式.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java课程设计报告人事管理系统Word格式.docx

《java课程设计报告人事管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《java课程设计报告人事管理系统Word格式.docx(44页珍藏版)》请在冰点文库上搜索。

java课程设计报告人事管理系统Word格式.docx

工资

Sal

float

员工考核表(Appraisal)

考核

Consequence

no

变更日期

RegDate

datetime

Yes

考核历史记录(History)

流水号

JourNo

Int

上次考核

OldInfo

本次考核

NewInfo

二.功能模块开发

(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的c.show方法切换不同卡片,实现不同的管理界面。

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.Manager;

importjava.awt.*;

importjavax.swing.*;

importjavax.swing.event.TreeSelectionEvent;

importjavax.swing.event.TreeSelectionListener;

importjavax.swing.tree.*;

importjava.awt.event.*;

publicclassManagerextendsJFrameimplementsTreeSelectionListener{

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(){

//给树的各个结点赋值

root=newDefaultMutableTreeNode("

人事管理系统"

);

t1=newDefaultMutableTreeNode("

基本信息管理"

t1_1=newDefaultMutableTreeNode("

查询员工"

t1_2=newDefaultMutableTreeNode("

添加员工"

t1_3=newDefaultMutableTreeNode("

修改员工信息"

t1_4=newDefaultMutableTreeNode("

删除员工资料"

t1_5=newDefaultMutableTreeNode("

查询全体员工"

t2=newDefaultMutableTreeNode("

人员考核管理"

t2_1=newDefaultMutableTreeNode("

人员考核"

t2_2=newDefaultMutableTreeNode("

考核历史查询"

t1.add(t1_1);

t1.add(t1_2);

t1.add(t1_3);

t1.add(t1_4);

t1.add(t1_5);

t2.add(t2_1);

t2.add(t2_2);

root.add(t1);

root.add(t2);

tree=newJTree(root);

//对树进行监听

tree.addTreeSelectionListener(this);

//实例化CardEmploy面板并加到jsplitpane的边

ae=newCardEmploy();

js=newJSplitPane();

js.setLeftComponent(tree);

js.setRightComponent(ae);

this.getContentPane().add(js);

this.setTitle("

this.setVisible(true);

this.setSize(600,500);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

publicvoidvalueChanged(TreeSelectionEvente){

//获取点击结点名称

DefaultMutableTreeNodedpath=(DefaultMutableTreeNode)tree

.getLastSelectedPathComponent();

//通过点击不同结点切换不同界面

if(dpath.equals(t1_1)){

ae.c.show(ae,"

1"

}elseif(dpath.equals(t1_2)){

2"

}elseif(dpath.equals(t1_3)){

3"

}elseif(dpath.equals(t1_4)){

4"

}elseif(dpath.equals(t1_5)){

5"

}elseif(dpath.equals(t2_1)){

6"

}elseif(dpath.equals(t2_2)){

7"

}

}

(2)CardEmploy

/**

*用卡片布局设置各个界面

*/

publicclassCardEmployextendsPanel{

CardLayoutc;

//查询表

SelEmployselE;

//添加表

AddEmployaddE;

//修改员工信息表

ReviseEmployrevE;

//删除员工表格

DelEmploydelE;

//所有员工信息

AllEmployallE;

//员工考核表

ExamineexaE;

//历史记录界面

HistoryHis;

publicCardEmploy()

{

//查询员工表

selE=newSelEmploy();

//添加员工表

addE=newAddEmploy();

//修改员工信息

revE=newReviseEmploy();

delE=newDelEmploy();

allE=newAllEmploy();

exaE=newExamine();

His=newHistory();

JPaneljp=newJPanel();

//定义cardemploy面板为卡片布局

//把各个面板加入到C的卡片布局中

c=newCardLayout();

this.setLayout(c);

this.add(selE,"

this.add(addE,"

this.add(revE,"

this.add(delE,"

this.add(allE,"

this.add(exaE,"

this.add(His,"

(3)SelEmploy

*SelEmploy类设置查询员工界面

publicclassSelEmployextendsPanelimplementsActionListener{

JLabeljl;

JTextFieldjtf;

JButtonjb;

JTablejt;

JPaneljp1;

publicSelEmploy(){

//北部

jp1=newJPanel();

jl=newJLabel("

输入员工号:

"

jtf=newJTextField(20);

jb=newJButton("

查询"

//对查询按钮监听

jb.addActionListener(this);

jp1.add(jl);

jp1.add(jtf);

jp1.add(jb);

//中部

em=newEmployModel();

String[]paras={"

};

em.queryEmploy("

select*fromEmployinfowhere1=?

paras);

jt=newJTable(em);

jsp=newJScrollPane(jt);

this.setLayout(newBorderLayout());

this.add(jp1,BorderLayout.NORTH);

this.add(jsp,BorderLayout.CENTER);

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==jb){

Stringname=this.jtf.getText().trim();

Stringsql="

select*fromEmployinfowhereEmpno=?

;

String[]paras={name};

em=newEmployModel();

em.queryEmploy(sql,paras);

//查找成功更新表

jt.setModel(em);

(4)AddEmploy

publicclassAddEmployextendsPanelimplementsActionListener{

JLabeljl,jl1,jl2,jl3,jl4,jl5,jl6,jl7;

JButtonjb1,jb2;

JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;

JPaneljp1,jp2,jp3,jp4;

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("

取消"

//监听‘添加’‘取消’按钮

jb1.addActionListener(this);

jb2.addActionListener(this);

jp1=newJPanel(newGridLayout(7,1));

jp2=newJPanel(newGridLayout(7,1));

jp3=newJPanel();

jp1.add(jl1);

jp1.add(jl2);

jp1.add(jl3);

jp1.add(jl4);

jp1.add(jl5);

jp1.add(jl6);

jp1.add(jl7);

jp2.add(jtf1);

jp2.add(jtf2);

jp2.add(jtf3);

jp2.add(jtf4);

jp2.add(jtf5);

jp2.add(jtf6);

jp2.add(jtf7);

jp3.add(jb1);

jp3.add(jb2);

jp4=newJPanel(newBorderLayout());

jp4.add(jp1,BorderLayout.WEST);

jp4.add(jp2,BorderLayout.EAST);

jp4.setSize(300,300);

this.setLayout(newFlowLayout());

this.add(jp4);

this.add(jp3);

if(e.getSource()==jb1){

//调用EmployModel里的updEmploy方法,实现对表格的添加

insertintoEmployinfovalues(?

?

)"

String[]paras={jtf1.getText(),jtf2.getText(),jtf3.getText(),

jtf4.getText(),jtf5.getText(),jtf6.getText(),

jtf7.getText()};

if(em.updEmploy(sql,paras)){

//当添加新员工成功时,则弹出”添加成功“的对话框

JOptionPane.showMessageDialog(this,"

添加成功"

}elseif(!

em.updEmploy(sql,paras)){

添加失败"

}

//当新员工加入成功后,要把新加入员工的工号加到考核表

AppraisalModeltemp=newAppraisalModel();

Stringsql1="

insertintoAppraisal(Empno)values(?

String[]paras1={jtf1.getText()};

temp.updAppraisal(sql1,paras1);

}elseif(e.getSource()==jb2){

jtf1.setText("

jtf2.setText("

jtf3.setText("

jtf4.setText("

jtf5.setText("

jtf6.setText("

jtf7.setText("

(5)ReviseEmploy

*修改员工界面

publicclassReviseEmployextendsPanelimplementsActionListener{

JPaneljp1,jp2;

JLabeljl1;

publicReviseEmploy(){

JLabel.CENTER);

jl1.setFont(newFont("

宋体"

Font.BOLD,28));

jp2=newJPanel();

jp2.add(jl1);

修改"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2