职工档案管理系统教材_第1页
职工档案管理系统教材_第2页
职工档案管理系统教材_第3页
职工档案管理系统教材_第4页
职工档案管理系统教材_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

职工档案管理系统一引言 1.1项目背景和目标 职工档案管理系统主要是对在校教师的个人基本信息以及教学信息进行管理,对教职工提供查询简介信息、教学信息功能;对管理员用户提供查询教师简介信息、查询教学信息、添加教师信息、修改教师信息、删除教师信息等功能。我们的目标就是为该系统提供后台连接MYSQL数据库程序设计以及前台用户界面设计。 1.2项目的可行性研究 设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生信息管理系统二. 需求分析 21系统概述 此系统提供给教职工用户和学校管理者,教职工登陆后可以对能自己基本信息进行查看,管理员登陆后能对教师的基本信息进行增删改操作。 22系统运行环境 Java程序运行在eclipse软件上编译并且运行,数据库用MYSQL数据库三系统设计 31开发与设计的总体思想 教职工方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以进行查询信息操作。 学校管理员方面:管理员通过自己的密码登入后可以选择:查询功能、文件功能、修改功能。在查询功能里面,可以选择是查询教职工简介基本信息,还是查询教学信息。在查询教职工简介信息时,可以从依据不同字段,即简介表中的不同属性进行查找。在查找教学信息时,只能依据教师姓名进行查找。在修改功能里面,包括对教师简介信息表和教学表进行增加和删除记录 职工档案管理系统 32系统模块结构图 教职工登录 管理员登录教职工信息管理教职工教学信息 帮助 教职工信息查询教职工信息修改 退出系统 教职工简介信息教职工教学信息 删除简介信息 添加简介信息 添加教学信息 删除教学信息 33数据库结构设计 为了支持此职工档案管理系统,创建数据库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 34模块设计 在整个系统主界面,可以选择登录方式,是教职工登录还是管理员登录。如果选择教职工,则进入教职工登录界面,在这个界面上要求输入教职工姓名和密码。输入后单击“确认登录”按钮,若密码正确,则转换到教职工教学信息查询页面,当输入教职工姓名后即可显示该名教职工的教学信息,若密码不正确,这提示密码错误。如果选择是管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“教职工信息管理”按钮,则进入管理员主界面。在管理员主界面可以选择进行文件操作,查询操作还是修改操作。若要查询教职工简介信息,点击查询菜单项则进入教职工简介信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个教职工的姓名。输入后,单击“检索”按钮,则开始对数据库中数据进行查询。如果数据库检索到所需信息,则生成列表显示检索结构,如果没有所需信息,则页面列表中显示为空。若要查询教职工教学信息,则点击教职工教学信息查询菜单项,进入教学查询界面。在此界面的文本框中输入要查询教学信息的教职工姓名,然后单击检索按钮。若数据库中有该教职工的教学信息,则生成列表显示教学信息,若没有此记录,则列表显示内容为空。如果管理员要对数据库中进行修改操作,则在管理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:添加教职工简介信息,删除教职工简介信息(这两个是对数据库中worker表的操作),添加教职工教学信息,删除教职工教学信息(这两个是对数据库中teaching表的操作)。在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除信息的教职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。以上就是该职工档案管理系统涉及的操作步骤。 开 始35系统流程描述登录主界面 帮 助管理员登录教职工登录输入有误输入有误成功成功No 选择 帮助教学信息管理界面简介信息查询Yes教职工信息修改退出系统教职工信息查询删除教职工教学信息删除教职工简介信息添加教职工教学信息添加教职工简介信息职工教学信息职工简介信息退出输入教职工 姓名选择检索方 式和数据录入添加的简介信息输入要删除的教职工姓名输入要删除的教职工姓名录入添加的教学信息成功成功成功成功成功成功Yes显示教职工教学信息显示检索信息输入有误输入有误输入有误输入有误 没有任何的输出 Insert successinsertsuccessdeletesuccessdeletesuccess四、系统实现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,root,);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,否则返回falseaddWorker)方法中,有八个参数,分别传给insert语句中的id(职工号),wname(教职工姓名),age(年龄),sex(性别),degree(学历),worktime(参加工作时间),salary(工资)和dept(院别),利用insert语句向worker教职工信息简介表中插入记录。若插入成功,返回true,否则返回falsedeleteWorker()方法中,有一个参数,传给delete语句中的wname(教职工姓名),利用delete语句,把worker表中相关教职工信息删除。若删除成功,返回true,否则返回falsequeryWorker()方法中,有两个参数,分别传给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;elsereturn 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;elsereturn 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,否则返 回falsedeleteTeaching()方法中,有一个参数,传给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;elsereturn 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;elsereturn 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) 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;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 JFrameJLabel 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(150, 150, 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 ActionListenerpublic 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 JFrameJLabel 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(150, 150, 80, 40);p1.add(l1);t1.setBounds(250, 150, 80, 30);p1.add(t1);l2.setBounds(150, 190, 80, 40);p1.add(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论