职工档案管理系统课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

职工档案管理系统
一.引言
1.1项目背景和目标
职工档案管理系统主要是对在校教师的个人基本信息以及教学信息进行管理,对教职工提供查询简介信息、教学信息功能;对管理员用户提供查询教师简介信息、查询教学信息、添加教师信息、修改教师信息、删除教师信息等功能。

我们的目标就是为该系统提供后台连接MYSQL数据库程序设计以及前台用户界面设计。

1.2项目的可行性研究
设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据
库应用知识做出一个这样的学生信息管理系统
二.需求分析
2.1系统概述
此系统提供给教职工用户和学校管理者,教职工登陆后可以对能自己基本信息进行查看,管理员登陆后能对教师的基本信息进行增删改操作。

2.2系统运行环境
Java程序运行在eclipse软件上编译并且运行,数据库用MYSQL数据库三.系统设计
3.1开发与设计的总体思想
教职工方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以进行查询信息操作。

学校管理员方面:管理员通过自己的密码登入后可以选择:查询功能、文件功能、修改功能。

在查询功能里面,可以选择是查询教职工简介基本信息,还是查询教学信息。

在查询教职工简介信息时,可以从依据不同字段,即简介表中的不同属性进行查找。

在查找教学信息时,只能依据教师姓名进行查找。

在修改功能里面,包括对教师简介信息表和教学表进行增加和删除记录
3.2系统模块结构图
3.3数据库结构设计
为了支持此职工档案管理系统,创建数据库employeemanage,在这个数据库里包含四个表:worker表,manager表,employee表和teaching表,它们的截图如下:在worker表中,有八个属性列,分别为:id(职工号),wname(姓名),sex(性别),age(年龄),degree(学历),worktime(参加工作时间),salary(工资),dept(院别)。

其基本数据类型分别为:char,char,char,int,char,char,int,char.
表1 worker
在manager表中,有两个属性列,分别为:mname(管理员姓名),password(密码)其基本数据类型分别为:char,char。

当管理员登录系统时从此表获取数据,其截图如下:
表2 manager
在employee表中,有两个属性列,分别为:wname(职工姓名),password(密码)其基本数据类型分别为:char,char。

当教职工登录系统时从此表获取数据,其截图如下:
表3 employee
在teaching表中,有七个属性列,分别为:id(职工号),wname(姓名),grade(年级),tmajor(教授专业),snum(学生人数),passrate(及格率),comment(教学总评)。

其基本数据类型分别为:char,char,char,int,char,char,char。

其截图如下:
表4 teaching
3.4模块设计
在整个系统主界面,可以选择登录方式,是教职工登录还是管理员登录。

如果选择教职工,则进入教职工登录界面,在这个界面上要求输入教职工姓名和密码。

输入后单击“确认登录”按钮,若密码正确,则转换到教职工教学信息查询页面,当输入教职工姓名后即可显示该名教职工的教学信息,若密码不正确,这提示密码错误。

如果选择是管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“教职工信息管理”按钮,则进入管理员主界面。

在管理员主界面可以选择进行文件操作,查询操作还是修改操作。

若要查询教职工简介信息,点击查询菜单项则进入教职工简介信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个教职工的姓名。

输入后,单击“检索”按钮,则开始对数据库中数据进行查询。

如果数据库检索到所需信息,则生成列表显示检索结构,如果没有所需信息,则页面列表中显示为空。

若要查询教职工教学信息,则点击教职工教学信息查询菜单项,进入教学查询界面。

在此界面的文本框中输入要查询教学信息的教职工姓名,然后单击检索按钮。

若数据库中有该教职工的教学信息,则生成列表显示教学信息,若没有此记录,则列表显示内容为空。

如果管理员要对数据库中进行修改操作,则在管理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:添加教职工简介信息,删除教职工简介信息(这两个是对数据库中worker表的操作),添加教职工教学信息,删除教职工教学信息(这两个是对数据库中teaching表的操作)。

在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。

在删除信息操作中,输入要删除信息的教职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。

以上就是该职工档案管理系统涉及的操作步骤。

3.5系统流程描述
四、系统实现DBconnection类
本系统所编写的程序保存在以下四个包中:connection包,first包,second包,
finally包
1.connection包中的类:
(1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。

若连接成功,提示:connection success,若连接失败,提示:
connection failure
DBconnection类源代码:
package connection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import finallys.TeachQuery;
public class DBconnection {
public static void main(String[] args) {
new DBconnection();
}
public static Connection con=null;
public static Connection getConnection()
{
try {
String dbDriver="com.mysql.jdbc.Driver";
Class.forName(dbDriver);
System.out.println("Driver Suceess");
} catch (ClassNotFoundException e) {
System.out.println("Driver not found");
e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/employeemanage","r oot","07031124一八");
System.out.println("Connection Suceess");
} catch (SQLException e) {
System.out.println("Connetion failure");
e.printStackTrace();
}
return con;
}
public static void closeConnection()
{
if(con!=null)
try {
con.close();
System.out.println("database close success");
} catch (SQLException e) {
System.out.println("close failure");
e.printStackTrace();
}
}
}
2.first包中的类:
(1)Workerfirst类:此类中有四个方法,managerLogin,addWorker,deleteWorker,
queryworker,作用分别是控制管理员登陆系统,增加教职工基本信息,删除学生基本信息,查询教职工基本信息。

managerLogin()方法中,有两个参数,分别传给select语句中的mname(管理员姓名)和password(登录密码),利用select语句在employee表中检索管理员登录信息。

若存在此信息,返回true,否则返回false
addWorker)方法中,有八个参数,分别传给insert语句中的id(职工号),wname(教职工姓名),age(年龄),sex(性别),degree(学历),worktime(参加工作时间),salary(工资)和dept(院别),利用insert语句向worker教职工信息简介表中插入记录。

若插入成功,返回true,否则返回false
deleteWorker()方法中,有一个参数,传给delete语句中的wname(教职工姓名),利用delete语句,把worker表中相关教职工信息删除。

若删除成功,返回true,否则返回false
queryWorker()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从worker表中检索教职工简介信息。

若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理
Workerfirst类源代码:
package first;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import second.Work;
import connection.DBconnection;
public class Workerfirst {
public boolean managerLogin(String mname,String password) {
DBconnection db=new DBconnection();
Connection con=db.getConnection();
boolean isfound=false;
PreparedStatement pst;
try {
pst = con.prepareStatement("select * from manager where mname=? and password=?");
pst.setString(1, mname);
pst.setString(2,password);
ResultSet rs=pst.executeQuery();
if(rs.next())
isfound=true;
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(isfound);
return isfound;
}
public boolean addWorker(String id, String wname, String sex, int age,String degree,String worktime,int salary ,String dept)
{
Connection con = DBconnection.getConnection();
PreparedStatement pst;
try {
pst = con.prepareStatement("insert into worker
values(?,?,?,?,?,?,?,?)");
pst.setString(1, id);
pst.setString(2, wname);
pst.setString(3, sex);
pst.setInt(4, age);
pst.setString(5, degree);
pst.setString(6, worktime);
pst.setInt(7, salary);
pst.setString(8, dept);
int count = pst.executeUpdate();// 返回修改的记录数
if (count == 1)
return true;
else
return false;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public ArrayList queryWorker(String field, String key) {
ArrayList lis = new ArrayList();
Connection con = DBconnection.getConnection();
Statement stm;
try {
stm = con.createStatement();
String sql = "select * from worker where " + field + " like '%"
+ key + "%' ";
System.out.println(sql);
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {
Work work= new Work(rs.getString(1), rs.getString(2),
rs.getString(3), rs.getInt(4),
rs.getString(5),rs.getString(6),rs.getInt(7),rs.getString(8));
lis.add(work);
}
} catch (SQLException e) {
e.printStackTrace();
}
return lis;
}
public boolean deleteWorker(String key) {
Connection con = DBconnection.getConnection();
Statement stm;
try {
stm = con.createStatement();
String sql = "delete from worker where wname like '%"
+ key + "%' ";
System.out.println(sql);
int count = stm.executeUpdate(sql);
if (count == 1)
return true;
else
return false;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
(2)Employeefirst类:此类中有一个方法:queryEmployee(),作用是控制教职工登陆 queryEmployee()方法中,有两个参数,分别传给select语句中的wname(教职工姓名)和password(登陆密码),利用select语句在teacher表中检索教师登陆信息。

若存在此信息,返回true,否则返回false
Employeefirst类源代码:
package first;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import connection.DBconnection;
public class Employeefirst {
public boolean queryEmployee(String wname,String password) {
DBconnection db=new DBconnection();
Connection con=db.getConnection();
boolean isfound=false;
PreparedStatement pst;
try {
pst = con.prepareStatement("select * from employee where wname=? and password=?");
pst.setString(1, wname);
pst.setString(2,password);
ResultSet rs=pst.executeQuery();
if(rs.next())
isfound=true;
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(isfound);
return isfound;
}
public static void main(String[] args) {
}
}
(3)Teaching类:在该类中有四个方法queryTeaching,addTeaching,deleteTeaching 作用分别是为教职工用户提供查询教学信息的功能,为管理者用户提供
询教职工教学信息,添加教学信息,删除教学信息功能。

queryTeaching()方法中,有一个参数,传给select语句中的wname(学生姓名),利用select语句,查询教学信息表中的内容。

若查询成功,则返回一个ArrayList类的对象lis (表格),否则,异常处理
addTeaching()方法中,有七个参数,分别传给insert语句中的id(职工号),wname(教职工姓名),grade(年级),tmajor(教学专业),snum(学生人数),passrate(及格率),comment(教学总评)。

利用insert语句,将这些记录写入teaching表中。

若插入成功返回
true,否则返回false
deleteTeaching()方法中,有一个参数,传给delete语句中的wname(教职工姓名),利用delete语句,把steaching表中相关教职工的教学信息删除。

若删除成功,返回 true,否则返回false
Teaching类源代码:
package first;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import finallys.ManagerDD;
import second.Teaching;
import second.Work;
import connection.DBconnection;
public class Teachingfirst {
public ArrayList queryTeaching(String key) {
ArrayList lis = new ArrayList();
Connection con = DBconnection.getConnection();
Statement stm;
try {
stm = con.createStatement();
String sql = "select * from teaching where wname like '%" + key
+ "%' ";
System.out.println(sql);
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {
Teaching teach = new Teaching(rs.getString(1), rs.getString(2), rs
.getString(3), rs.getString(4),
rs.getInt(5),rs.getString(6),rs.getString(7));
lis.add(teach);
}
} catch (SQLException e) {
e.printStackTrace();
}
return lis;
}
public ArrayList queryTeach(String key) {
ArrayList lis = new ArrayList();
Connection con = DBconnection.getConnection();
Statement stm;
try {
stm = con.createStatement();
String sql = "select * from teaching where wname like '%" + ManagerDD.st1
+ "%' ";
System.out.println(sql);
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {
Teaching teach = new Teaching(rs.getString(1), rs.getString(2), rs
.getString(3), rs.getString(4),
rs.getInt(5),rs.getString(6),rs.getString(7));
lis.add(teach);
}
} catch (SQLException e) {
e.printStackTrace();
}
return lis;
}
public boolean addTeaching(String id, String wname, String grade, String tmajor,
int snum,String passrate,String comment) {
Connection con = DBconnection.getConnection();
PreparedStatement pst;
try {
pst = con.prepareStatement("insert into teaching
values(?,?,?,?,?,?,?)");
pst.setString(1, id);
pst.setString(2, wname);
pst.setString(3, grade);
pst.setString(4, tmajor);
pst.setInt(5, snum);
pst.setString(6, passrate);
pst.setString(7, comment);
int count = pst.executeUpdate();// 返回修改的记录数
if (count == 1)
return true;
else
return false;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public boolean deleteTeaching(String key) {
Connection con = DBconnection.getConnection();
Statement stm;
try {
stm = con.createStatement();
String sql = "delete from teaching where wname like '%" + key + "%' ";
System.out.println(sql);
int count = stm.executeUpdate(sql);
if (count == 1)
return true;
else
return false;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
3.second包中的类:
(1)Work类:此类中有八个成员变量,String id;String wname;String sex;
int age;String degree;String worktime;int salary;String dept,和十六个成员方法,类中分别获取和设置了这八个变量,即为worker表中八个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值
Work类源代码:
package second;
public class Work {
String id;
String wname;
String sex;
int age;
String degree;
String worktime;
int salary;
String dept;
public String getID() {
return id;
}
public void setID(String id) {
this.id= id;
}
public String getWname() {
return wname;
}
public void setWname(String wname) {
this.wname = wname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public String getWorktime() {
return worktime;
}
public void setWorktime(String worktime) {
this.worktime= worktime;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public Work(String id, String wname, String sex, int age,String degree,String worktime,int salary,String dept)
{
super();
this.id = id;
this.wname = wname;
this.sex = sex;
this.age = age;
this.degree=degree;
this.worktime=worktime;
this.salary=salary;
this.dept = dept;
}
}
(2)Teaching类:此类中有七个成员变量,String id;String wname;String grade;String tmajor;int snum;String passrate;String comment,和十四个成员方法,类中分别获取和设置了这七个变量,即为teaching表中七个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值
Teaching类源代码:
package second;
public class Teaching {
String id;
String wname;
String grade;
int snum;
String tmajor;
String passrate;
String comment;
public String getID() {
return id;
}
public void setID(String id) {
this.id = id;
}
public String getWname() {
return wname;
}
public void setWname(String wname) {
this.wname = wname;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade= grade;
}
public int getSnum() {
return snum;
}
public void setSnum(int snum) {
this.snum = snum;
}
public String getTmajor() {
return tmajor;
}
public void setTmajor(String tmajor) {
this.tmajor = tmajor;
}
public String getPassRate() {
return passrate;
}
public void setPassRate(String passrate) {
this.passrate= passrate;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this x ment = comment;
}
public Teaching(String id, String wname, String grade, String tmajor,int snum,String passrate,String comment)
{
super();
this.id = id;
this.wname = wname;
this.grade = grade;
this.tmajor= tmajor;
this.snum=snum;
this.passrate=passrate;
this x ment=comment;
}
}
4.finally包中的类:
(1)LoginDD类:此类为登陆主界面类,在这个界面上,设置有两个按钮,教职工按钮和管理员按钮。

给这两个按钮注册事件addActionListener,分别在内部类
TeacherLoginActionListene和StudentLoginActionListener中的默认方法
actionPerformed()中创建EmployeeDD类和 ManagerDD类的对象,即打开教职工登陆界面和管理员登录界面,并将原登陆界面关闭。

LoginDD类源代码:
package finallys;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginDD extends JFrame{
JLabel l1;
JButton bt1, bt2;
Container cp;
public LoginDD() {
l1 = new JLabel("请选择用户类型");
bt1 = new JButton("教职工");
bt2 = new JButton("管理员");
JPanel p1 = new JPanel();
p1.setLayout(null);
l1.setBounds(一五0, 一五0, 120, 40);
p1.add(l1);
bt1.setBounds(120, 230, 80, 30);
p1.add(bt1);
bt2.setBounds(220, 230, 80, 30);
p1.add(bt2);
bt1.addActionListener(new TeacherLoginActionListener());//注册事件
bt2.addActionListener(new StudentLoginActionListener());//注册事件
cp = getContentPane();
this.setBounds(200, 200, p1.getHeight(), p1.getHeight());
cp.add(p1);
this.setTitle("用户登录界面");
this.setSize(400, 400);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
class TeacherLoginActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){
new EmployeeDD();
dispose();
}
}
class StudentLoginActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){
new ManagerDD();
dispose();
}
}
public static void main(String[] args) {
new LoginDD();
}
}
截图如下:
图1 用户登录主界面
(2)ManagerDD类:此类为管理员登陆界面,在这个界面上有两个文本框,分别输入管理员姓名和登录密码,还有两个按钮,登陆和退出。

输入后,从两个文本框中获取用
户输入的内容,点击“登陆”按钮时,调用Workerfirst类中的managerLogin()
方法验证是否存在该用户。

若存在,则创建Mainlogin类的对象,即打开教职工简介
界面进行操作,若不存在,则提示密码错误。

ManagerDD类源代码:
package finallys;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import first.Workerfirst;;
public class ManagerDD extends JFrame{
JLabel l1, l2;
JTextField t1;
JPasswordField t2;
JButton bt1, bt2;
Container cp;
public static String st1;
public String st2;
public ManagerDD(){
l1 = new JLabel("管理员姓名");
l2 = new JLabel("密码");
t1 = new JTextField(12);
t2 = new JPasswordField(12);
bt1 = new JButton("教职工信息管理");
bt2 = new JButton("退出");
JPanel p1 = new JPanel();
p1.setLayout(null);
l1.setBounds(一五0, 一五0, 80, 40);
p1.add(l1);
t1.setBounds(250, 一五0, 80, 30);
p1.add(t1);
l2.setBounds(一五0, 190, 80, 40);
p1.add(l2);
t2.setBounds(250, 190, 80, 30);
p1.add(t2);
bt1.setBounds(一五0, 230, 一五0, 30);
p1.add(bt1);
bt2.setBounds(320, 230, 80, 30);
p1.add(bt2);
bt1.addActionListener(new LoginActionListener());//注册事件bt2.addActionListener(new ExitActionListener());//注册事件
cp = getContentPane();
this.setBounds(200, 200, p1.getHeight(), p1.getHeight());
cp.add(p1);
this.setTitle("管理员登录界面");
this.setSize(400, 400);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
class LoginActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
st1 = t1.getText();
st2 = t2.getText();
Workerfirst workerfirst = new Workerfirst();
boolean isSuccess = workerfirst.managerLogin(st1, st2);
if (isSuccess) {
new Mainlogin();
dispose();
} else
JOptionPane.showMessageDialog(null, "用户名密码错误", "提示信息",
RMATION_MESSAGE);
}
}
class ExitActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public static void main(String[] args) {
new ManagerDD();
}
}
截图如下:
图2 管理员登录界面
图3 教职工教学与简介信息操作
(3)Managerteaching类:此类为教职工教学界面,这个界面上有一个标签和一个表格。

标签中从ManagerDD类中获取教职工登录时使用的用户名,显示在标签中以表示以下是某某教职工的教学信息。

表格中为此学生的成绩。

调用Teachinfirst类中的queryTeaching(),将得到的ArrayList对象lis放入Vector对象中,形成表格。

Managerteaching类源代码:
package finallys;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.event.*;
import javax.swing.table.DefaultTableModel;
import second.Teaching;
import first.Teachingfirst;;
public class Managerteaching extends JFrame{
String aa=ManagerDD.st1;
JLabel selectionLabel;
JPanel topPanel;
Container container;
JTable table;
JScrollPane bookScrollPane;
JPanel bottomPanel;
public Managerteaching(){
container = this.getContentPane();
selectionLabel = new JLabel(aa+"老师教学情况如下");
topPanel = new JPanel();
topPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
topPanel.add(selectionLabel);
this.add(BorderLayout.NORTH, topPanel);
table = new JTable();
bookScrollPane = new JScrollPane(table);
this.add(BorderLayout.CENTER, bookScrollPane);
bottomPanel = new JPanel();
this.add(BorderLayout.SOUTH, bottomPanel);
this.setTitle("教师教学情况查询");
this.setSize(600, 450);
this.setVisible(true);
Teachingfirst teach=new Teachingfirst();
ArrayList lis = teach.queryTeaching(aa);
Vector<String> head = new Vector();
head.add("职工号");
head.add("教职工姓名");
head.add("年级");
head.add("教授专业");
head.add("学生人数");
head.add("及格率");
head.add("教学总评");
Vector<Vector> content = new Vector();
for (int i = 0; i < lis.size(); i++) {
Vector row = new Vector();
Teaching teaching = (Teaching) lis.get(i);
row.add(teaching.getID());
row.add(teaching.getWname());
row.add(teaching.getGrade());
row.add(teaching.getTmajor());
row.add(teaching.getSnum());
row.add(teaching.getPassRate());
row.add(teaching.getComment());
content.add(row);
}
DefaultTableModel model = new DefaultTableModel(content, head);
table.setModel(model);
repaint();
}
}
(4)EmployeeDD类:此类为教职工登陆界面,在这个界面上有两个文本框,分别输入教职工姓名和密码,还有两个按钮,登陆和退出。

输入后,从两个文本框中获取用户输入的内容,点击“登陆”按钮时,调用Employeefirst 类中的queryEmployee ()方法验证是否存在该用户。

若存在则创建TeachQuery类的对象,即打开教师主界面,若不存在,则提示密码错误。

EmployeeDD类源代码:
package finallys;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import first.Employeefirst;
public class EmployeeDD extends JFrame {
JLabel l1, l2;
JTextField t1;
JPasswordField t2;
JButton bt1, bt2;
Container cp;
public EmployeeDD(){
l1 = new JLabel("教职工姓名");
l2 = new JLabel("密码");
t1 = new JTextField(12);
t2 = new JPasswordField(12);
bt1 = new JButton("登录");
bt2 = new JButton("退出");
JPanel p1 = new JPanel();
p1.setLayout(null);
l1.setBounds(一五0, 一五0, 80, 40);
p1.add(l1);
t1.setBounds(250, 一五0, 80, 30);
p1.add(t1);
l2.setBounds(一五0, 190, 80, 40);
p1.add(l2);
t2.setBounds(250, 190, 80, 30);
p1.add(t2);
bt1.setBounds(一五0, 230, 80, 30);
p1.add(bt1);
bt2.setBounds(250, 230, 80, 30);
p1.add(bt2);
bt1.addActionListener(new LoginActionListener());//注册事件
bt2.addActionListener(new ExitActionListener());//注册事件
cp = getContentPane();
this.setBounds(200, 200, p1.getHeight(), p1.getHeight());
cp.add(p1);
this.setTitle("教职工登录界面");
this.setSize(400, 400);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
class LoginActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String st1 = t1.getText();
String st2 = t2.getText();
Employeefirst employee = new Employeefirst();
boolean isSuccess = employee.queryEmployee (st1, st2);
if (isSuccess) {
new TeachQuery();
dispose();
} else
JOptionPane.showMessageDialog(null, "用户名密码错误", "提示信息
",
RMATION_MESSAGE);
}
}
class ExitActionListener implements ActionListener { public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public static void main(String[] args) {
new EmployeeDD();
}
}
截图如下:
图4 教职工登录页面
(5)Mainlogin类:该类为操作教职工信息的主界面类,在此界面上有一个菜单栏,三个菜单:文件,查询,修改。

其中“文件”菜单中有“退出”菜单项,点击时跳出对话框问是否真的退出,若点击是,窗口关闭,若点击否,回复原界面。

“查询”菜单中有“教职工信息简介信息”和“教职工教学信息查询”两个菜单项:当点击“教职工信息简介”时,通过注册事件,创建ManagerQuery类的对象,即打开查询教职工简介信息的窗口,当点击“教职工教学信息”时,通过注册事件,创建TeachQuery类的对象,即打开查询教职工教学信息的窗口。

修改菜单中有“添加教职工简介信息”“删除教职工简介信息”“添加教职工教学信息”和“删除教职工教学信息”四个菜单项,当点击“添加教职工简介信息”时,通过注册事件,创建ManagerAdd类的对象,即打开添加教职工简介信息的窗口,当点击“删除教职工简介信息”时,通过注册事件,创建ManagerDelete类的对象,即打开删除教职工简介信息的窗口,当点击“添加教职工教学信息”时,通过注册事件,创建TeachAdd类的对象,即打开添加教职工教学信息的窗口,当点击“删除教职工教学信息”时,通过注册事件,创建TeachDelete 类的对象,即打开删除教职工教学的窗口。

Mainlogin类源代码:
package finallys;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Mainlogin extends JFrame {
Container ctp;
Mainlogin(){
ctp = this.getContentPane();
this.setTitle("欢迎进入教职工教学系统!");
ctp.setLayout(new BorderLayout());
JMenuBar menuBar = new JMenuBar();
buildMainMenu(menuBar);
this.setJMenuBar(menuBar);
this.setBounds(100, 100, 400, 300);
this.setVisible(true);
}
public void buildMainMenu(JMenuBar menuBar){
JMenu fileMenu=new JMenu("文件");
JMenuItem exitMenuItem=new JMenuItem("退出");
exitMenuItem.addActionListener(new ExitActionListener());//注册事件
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
JMenu queryMenu=new JMenu("查询");
JMenuItem queryMenuItem=new JMenuItem("教职工信息简介");
JMenuItem queryScoreMenuItem=new JMenuItem("教职工教学信息查询");
queryMenuItem.addActionListener(new QueryActionListener());//注册事件 queryScoreMenuItem.addActionListener(new QueryScoreActionListener());//注册事件
queryMenu.add(queryMenuItem);
queryMenu.add(queryScoreMenuItem);
menuBar.add(queryMenu);
JMenu changeMenu=new JMenu("修改");
JMenuItem addMenuItem=new JMenuItem("添加教职工简介信息");
JMenuItem deleteMenuItem=new JMenuItem("删除教职工简介信息");
JMenuItem addScoreMenuItem=new JMenuItem("添加教职工教学信息");
JMenuItem deleteScoreMenuItem=new JMenuItem("删除教职工教学信息");
addMenuItem.addActionListener(new AddActionListener());//注册事件
deleteMenuItem.addActionListener(new DeleteActionListener());//注册事件
addScoreMenuItem.addActionListener(new AddScoreActionListener());//注册事件
deleteScoreMenuItem.addActionListener(new
DeleteScoreActionListener());//注册事件
changeMenu.add(addMenuItem);
changeMenu.add(deleteMenuItem);
changeMenu.add(addScoreMenuItem);
changeMenu.add(deleteScoreMenuItem);
menuBar.add(changeMenu);
}
class ExitActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
int result = JOptionPane.showConfirmDialog(null, "真的要退出吗?", "提示信息",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
null);
if (result == 0)
System.exit(0);
else if (result == 1) {
}
}
}
class QueryScoreActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
new TeachQuery();
}
}
class QueryActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){
new ManagerQuery();
}
}
class AddActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){
new ManagerAdd();
}
}
class DeleteActionListener implements ActionListener{ public void actionPerformed(ActionEvent e){
new ManagerDelete();
}
}
class AddScoreActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
new TeachAdd();
}
}
class DeleteScoreActionListener implements ActionListener{ public void actionPerformed(ActionEvent e) {
new TeachDelete();
}
}
public static void main(String[] args) {
new Mainlogin();
}
}
截图如下:
图5 教职工管理
(6)ManagerQuery类:此类为教职工简介信息查询界面类,在此界面上有一个标签,一个下拉列表框,一个文本框和一个按钮。

点击下拉列表框时,可以选择要
检索的方式,即要检索的属性,单击时,通过注册事件,在内部类的方法里获取所点
击的属性名称,保存在一个String型的变量里。

在文本框中输入要检索的属性内容,
单击“检索”按钮时,通过注册事件,在内部类的方法中把刚才获取的属性参数和内
容参数传给Workerfirst类的queryWorker()方法,从而获取检索内容,再把检索
得到的内容通过Vector对象放入ArrayList类的对象lis中,从而使检索结果显示在
表格中。

ManagerQuery类源代码:
package finallys;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.event.*;
import javax.swing.table.*;
import second.Work;
import first.Workerfirst;; public class ManagerQuery extends JFrame{
JLabel selectionLabel;
JComboBox fieldComboBox;
JPanel topPanel;
JButton retrievalButton;
JTextField keywordText;
Container container;
String fieldSelected;
int selectedNum;
JTable table;
JScrollPane bookScrollPane;
JPanel bottomPanel;
public ManagerQuery(){
container = this.getContentPane();
selectionLabel = new JLabel("检索方式");
fieldComboBox = new JComboBox();
fieldComboBox.addItem("请选择...");
fieldComboBox.addItem("职工号");
fieldComboBox.addItem("教职工姓名");
fieldComboBox.addItem("学历");
fieldComboBox.addItem("院别");
fieldComboBox.addItemListener(new SelectedListener()); // 下拉列表框注册
事件注册事件
keywordText = new JTextField("", 20);
retrievalButton = new JButton("检索");
topPanel = new JPanel();
topPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
keywordText.setSize(topPanel.getWidth() / 2, topPanel.getWidth());
topPanel.add(selectionLabel);
topPanel.add(fieldComboBox);
topPanel.add(keywordText);
topPanel.add(retrievalButton);
this.add(BorderLayout.NORTH, topPanel);。

相关文档
最新文档