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

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

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

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

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

java课程设计报告人事管理系统

人事管理系统

 

一.系统需求分析:

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

ae.c.show(ae,"2");

}elseif(dpath.equals(t1_3)){

ae.c.show(ae,"3");

}elseif(dpath.equals(t1_4)){

ae.c.show(ae,"4");

}elseif(dpath.equals(t1_5)){

ae.c.show(ae,"5");

}elseif(dpath.equals(t2_1)){

ae.c.show(ae,"6");

}elseif(dpath.equals(t2_2)){

ae.c.show(ae,"7");

}

}

}

(2)CardEmploy

/**

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

*/

package.Manager;

importjavax.swing.*;

importjava.awt.*;

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,"1");

this.add(addE,"2");

this.add(revE,"3");

this.add(delE,"4");

this.add(allE,"5");

this.add(exaE,"6");

this.add(His,"7");

}

}

(3)SelEmploy

/**

*SelEmploy类设置查询员工界面

*/

package.Manager;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassSelEmployextendsPanelimplementsActionListener{

EmployModelem;

JLabeljl;

JTextFieldjtf;

JButtonjb;

JTablejt;

JScrollPanejsp;

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={"1"};

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

package.Manager;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassAddEmployextendsPanelimplementsActionListener{

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("取消");

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

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);

}

publicvoidactionPerformed(ActionEvente){

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

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

Stringsql="insertintoEmployinfovalues(?

?

?

?

?

?

?

)";

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

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

jtf7.getText()};

em=newEmployModel();

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

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

JOptionPane.showMessageDialog(this,"添加成功");

}elseif(!

em.updEmploy(sql,paras)){

JOptionPane.showMessageDialog(this,"添加失败");

}

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

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

package.Manager;

/**

*修改员工界面

*/

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassReviseEmployextendsPanelimplementsActionListener{

JTablejt;

JScrollPanejsp;

JButtonjb1,jb2;

JPaneljp1,jp2;

EmployModelem;

JLabeljl1;

publicReviseEmploy(){

jl1=newJLabel("修改员工信息",JLabel.CENTER);

jl1.setFont(newFont("宋体",Font.BOLD,28));

jp2=newJPanel();

jp2.add(jl1);

em=newEmployModel();

String[]paras={"1"};

em.queryEmploy("select*fromEmployinfowhere1=?

",paras);

jt=newJTable(em);

jsp=newJScrollPane(jt);

jb1=newJButton("修改");

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

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

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

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