java课程设计人事管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j a v a课程设计人事管理
系统
Newly compiled on November 23, 2020
人事管理系统
一.系统需求分析:
(1)系统的功能设计
i员工信息管理:员工信息管理包括对员工基本信息和情况进行查询、添加、删除和修改及部门管理
ii员工考核管理:包括对员工的考核情况进行操作,还可以对历史考核情况进行浏览
(2)系统功能结构
人事管理的系统结构功能结构如图所示:
(3)数据库设计
员工基本表(Employinfo)
员工考核表(Appraisal)
考核历史记录(History)
二. 功能模块开发
(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.M anager类
Manager类的一个实例,从而生成了人事管理系统的界面,用JSplitPane类将整个界面分为左右两个部分。其中左侧实现了人事管理系统的功能树,采用JTree类构建,同时实现了TreeSelectionListener接口,定义了该接口所必须实现的
valueChanged(TreeSelectionEvent e)方法,JSplitPane右边加入卡片布局CardEmploy 类。当JTree的TreeSelectionEvent事件发生时,调用CardEmploy的方法切换不同卡片,实现不同的管理界面。
2.CardEmploy类
CardEmploy为卡片布局类的面板,主要功能是添加各个界面的卡片,当JTree的TreeSelectionEvent事件发生时。切换不同的卡片
3.EmployModel、AppraisalModel类
这两个类继承了AbstractTableModel,主要实现的功能是,存放调用sqlhelper
类得到的数据。可以通过调用sqlhelper实现增删查改功能
4.SqlHelpe r类
主要就是连接数据库的一些基础操作是,方便代码修改,重复使用
5.SelEmplo y
这个类继承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 .*;
import
import ;
import
import .*;
public class Manager extends JFrame implements TreeSelectionListener { JPanel jp;
JSplitPane js;
JScrollPane jsp;
JTree tree;
DefaultMutableTreeNode root, t1, t2, t1_1, t1_2, t1_3, t1_4, t1_5, t2_1,
t2_2;
CardEmploy ae;
EmployModel em;
public static void main(String[] args) {
Manager manager = new Manager();
}
public Manager() {
dd(js);
("人事管理系统");
(true);
(600, 500);
;
}
public void valueChanged(TreeSelectionEvent e) {
etLastSelectedPathComponent();
;
import .*;
public class CardEmploy extends Panel{
CardLayout c;
;
import .*;
import
public class SelEmploy extends Panel implements ActionListener { EmployModel em;
JLabel jl;
JTextField jtf;
JButton jb;
JTable jt;
JScrollPane jsp;
JPanel jp1;
public SelEmploy() {
;
import .*;
import
public class AddEmploy extends Panel implements ActionListener { JLabel jl, jl1, jl2, jl3, jl4, jl5, jl6, jl7;
JButton jb1, jb2;
JTextField jtf1, jtf2, jtf3, jtf4, jtf5, jtf6, jtf7;
JPanel jp1, jp2, jp3, jp4;
EmployModel em;
public AddEmploy() {
jl1 = new JLabel("工号:");
jl2 = new JLabel("姓名:");
jl3 = new JLabel("性别:");
jl4 = new JLabel("出生年月:");
jl5 = new JLabel("部门:");
jl6 = new JLabel("职位:");
jl7 = new JLabel("工资:");
jtf1 = new JTextField(20);
jtf2 = new JTextField(20);
jtf3 = new JTextField(20);
jtf4 = new JTextField(20);