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

下载本文档

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

文档简介

102/102职工档案治理系统一.引言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.表1worker在manager表中,有两个属性列,分不为:mname(治理员姓名),password(密码)其差不多数据类型分不为:char,char。当治理员登录系统时从此表猎取数据,其截图如下:表2manager在employee表中,有两个属性列,分不为:wname(职工姓名),password(密码)其差不多数据类型分不为:char,char。当教职工登录系统时从此表猎取数据,其截图如下:表3employee在teaching表中,有七个属性列,分不为:id(职工号),wname(姓名),grade(年级),tmajor(教授专业),snum(学生人数),passrate(及格率),comment(教学总评)。其差不多数据类型分不为:char,char,char,int,char,char,char。其截图如下:表4teaching3.4模块设计在整个系统主界面,能够选择登录方式,是教职工登录依旧治理员登录。假如选择教职工,则进入教职工登录界面,在那个界面上要求输入教职工姓名和密码。输入后单击“确认登录”按钮,若密码正确,则转换到教职工教学信息查询页面,当输入教职工姓名后即可显示该名教职工的教学信息,若密码不正确,这提示密码错误。假如选择是治理员登录,则进入治理员登陆界面,在那个界面上输入治理员姓名和密码,输入后单击“教职工信息治理”按钮,则进入治理员主界面。在治理员主界面能够选择进行文件操作,查询操作依旧修改操作。若要查询教职工简介信息,点击查询菜单项则进入教职工简介信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个教职工的姓名。输入后,单击“检索”按钮,则开始对数据库中数据进行查询。假如数据库检索到所需信息,则生成列表显示检索结构,假如没有所需信息,则页面列表中显示为空。若要查询教职工教学信息,则点击教职工教学信息查询菜单项,进入教学查询界面。在此界面的文本框中输入要查询教学信息的教职工姓名,然后单击检索按钮。若数据库中有该教职工的教学信息,则生成列表显示教学信息,若没有此记录,则列表显示内容为空。假如治理员要对数据库中进行修改操作,则在治理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:添加教职工简介信息,删除教职工简介信息(这两个是对数据库中worker表的操作),添加教职工教学信息,删除教职工教学信息(这两个是对数据库中teaching表的操作)。在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除信息的教职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。以上确实是该职工档案治理系统涉及的操作步骤。开始3.5系统流程描述开始登录主界面登录主界面帮助治理员登录教职工登录帮助治理员登录教职工登录输入有误输入有误输入有误输入有误成功成功成功No成功选择关心选择关心教学信息治理界面简介信息查询Yes教学信息治理界面简介信息查询教职工信息修改退出系统教职工信息查询教职工信息修改退出系统教职工信息查询删除教职工教学信息删除教职工简介信息添加教职工教学信息添加教职工简介信息删除教职工教学信息删除教职工简介信息添加教职工教学信息添加教职工简介信息职工教学信息职工简介信息退出职工教学信息职工简介信息退出输入教职工姓名选择检索方式和数据输入教职工姓名选择检索方式和数据录入添加的简介信息输入要删除的教职工姓名输入要删除的教职工姓名录入添加的教学信息录入添加的简介信息输入要删除的教职工姓名输入要删除的教职工姓名录入添加的教学信息成功成功成功成功成功成功成功成功Yes成功成功成功成功显示教职工教学信息显示检索信息显示教职工教学信息显示检索信息输入有误输入有误输入有误输入有误输入有误输入有误输入有误输入有误没有任何的输出没有任何的输出InsertsuccessinsertsuccessdeleteInsertsuccessinsertsuccessdeletesuccessdeletesuccess四、系统实现DBconnection类本系统所编写的程序保存在以下四个包中:connection包,first包,second包,finally包connection包中的类:(1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。若连接成功,提示:connectionsuccess,若连接失败,提示:connectionfailureDBconnection类源代码:packageconnection;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importfinallys.TeachQuery;publicclassDBconnection{publicstaticvoidmain(String[]args){newDBconnection();}publicstaticConnectioncon=null;publicstaticConnectiongetConnection(){try{StringdbDriver="com.mysql.jdbc.Driver";Class.forName(dbDriver);System.out.println("DriverSuceess");}catch(ClassNotFoundExceptione){System.out.println("Drivernotfound");e.printStackTrace();}try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/employeemanage","root","0703112418");System.out.println("ConnectionSuceess");}catch(SQLExceptione){System.out.println("Connetionfailure");e.printStackTrace();}returncon;}publicstaticvoidcloseConnection(){if(con!=null)try{con.close();System.out.println("databaseclosesuccess");}catch(SQLExceptione){System.out.println("closefailure");e.printStackTrace();}}}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类源代码:packagefirst;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importsecond.Work;importconnection.DBconnection;publicclassWorkerfirst{ publicbooleanmanagerLogin(Stringmname,Stringpassword){ DBconnectiondb=newDBconnection(); Connectioncon=db.getConnection(); booleanisfound=false; PreparedStatementpst; try{ pst=con.prepareStatement("select*frommanagerwheremname=?andpassword=?"); pst.setString(1,mname); pst.setString(2,password); ResultSetrs=pst.executeQuery(); if(rs.next()) isfound=true; }catch(SQLExceptione){ e.printStackTrace(); } System.out.println(isfound); returnisfound; } publicbooleanaddWorker(Stringid,Stringwname,Stringsex,intage,Stringdegree,Stringworktime,intsalary,Stringdept) { Connectioncon=DBconnection.getConnection(); PreparedStatementpst; try{ pst=con.prepareStatement("insertintoworkervalues(?,?,?,?,?,?,?,?)"); 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); intcount=pst.executeUpdate();//返回修改的记录数 if(count==1) returntrue; else returnfalse; }catch(SQLExceptione){ e.printStackTrace(); } returnfalse; } publicArrayListqueryWorker(Stringfield,Stringkey){ ArrayListlis=newArrayList(); Connectioncon=DBconnection.getConnection(); Statementstm; try{ stm=con.createStatement(); Stringsql="select*fromworkerwhere"+field+"like'%" +key+"%'"; System.out.println(sql); ResultSetrs=stm.executeQuery(sql); while(rs.next()){ Workwork=newWork(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(SQLExceptione){ e.printStackTrace(); } returnlis; } publicbooleandeleteWorker(Stringkey){ Connectioncon=DBconnection.getConnection(); Statementstm; try{ stm=con.createStatement(); Stringsql="deletefromworkerwherewnamelike'%" +key+"%'"; System.out.println(sql); intcount=stm.executeUpdate(sql); if(count==1) returntrue; else returnfalse; }catch(SQLExceptione){ e.printStackTrace(); } returnfalse; }}(2)Employeefirst类:此类中有一个方法:queryEmployee(),作用是操纵教职工登陆queryEmployee()方法中,有两个参数,分不传给select语句中的wname(教职工姓名)和password(登陆密码),利用select语句在teacher表中检索教师登陆信息。若存在此信息,返回true,否则返回falseEmployeefirst类源代码:packagefirst;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importconnection.DBconnection;publicclassEmployeefirst{ publicbooleanqueryEmployee(Stringwname,Stringpassword){ DBconnectiondb=newDBconnection(); Connectioncon=db.getConnection(); booleanisfound=false; PreparedStatementpst; try{ pst=con.prepareStatement("select*fromemployeewherewname=?andpassword=?"); pst.setString(1,wname); pst.setString(2,password); ResultSetrs=pst.executeQuery(); if(rs.next()) isfound=true; }catch(SQLExceptione){ e.printStackTrace(); } System.out.println(isfound); returnisfound; } publicstaticvoidmain(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,否则返回falseTeaching类源代码:packagefirst;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importfinallys.ManagerDD;importsecond.Teaching;importsecond.Work;importconnection.DBconnection;publicclassTeachingfirst{ publicArrayListqueryTeaching(Stringkey){ ArrayListlis=newArrayList(); Connectioncon=DBconnection.getConnection(); Statementstm; try{ stm=con.createStatement(); Stringsql="select*fromteachingwherewnamelike'%"+key +"%'"; System.out.println(sql); ResultSetrs=stm.executeQuery(sql); while(rs.next()){ Teachingteach=newTeaching(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(SQLExceptione){ e.printStackTrace(); } returnlis; } publicArrayListqueryTeach(Stringkey){ ArrayListlis=newArrayList(); Connectioncon=DBconnection.getConnection(); Statementstm; try{ stm=con.createStatement(); Stringsql="select*fromteachingwherewnamelike'%"+ManagerDD.st1 +"%'"; System.out.println(sql); ResultSetrs=stm.executeQuery(sql); while(rs.next()){ Teachingteach=newTeaching(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(SQLExceptione){ e.printStackTrace(); } returnlis; } publicbooleanaddTeaching(Stringid,Stringwname,Stringgrade,Stringtmajor, intsnum,Stringpassrate,Stringcomment){ Connectioncon=DBconnection.getConnection(); PreparedStatementpst; try{ pst=con.prepareStatement("insertintoteachingvalues(?,?,?,?,?,?,?)"); 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); intcount=pst.executeUpdate();//返回修改的记录数 if(count==1) returntrue; else returnfalse; }catch(SQLExceptione){ e.printStackTrace(); } returnfalse; } publicbooleandeleteTeaching(Stringkey){ Connectioncon=DBconnection.getConnection(); Statementstm; try{ stm=con.createStatement(); Stringsql="deletefromteachingwherewnamelike'%"+key+"%'"; System.out.println(sql); intcount=stm.executeUpdate(sql); if(count==1) returntrue; else returnfalse; }catch(SQLExceptione){ e.printStackTrace(); } returnfalse; }}3.second包中的类:(1)Work类:此类中有八个成员变量,Stringid;Stringwname;Stringsex;intage;Stringdegree;Stringworktime;intsalary;Stringdept,和十六个成员方法,类中分不猎取和设置了这八个变量,即为worker表中八个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值Work类源代码:packagesecond;publicclassWork{ Stringid; Stringwname; Stringsex; intage; Stringdegree; Stringworktime; intsalary; Stringdept; publicStringgetID(){ returnid; } publicvoidsetID(Stringid){ this.id=id; } publicStringgetWname(){ returnwname; } publicvoidsetWname(Stringwname){ this.wname=wname; } publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringsex){ this.sex=sex; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicStringgetDegree(){ returndegree; } publicvoidsetDegree(Stringdegree){ this.degree=degree; } publicStringgetWorktime(){ returnworktime; } publicvoidsetWorktime(Stringworktime){ this.worktime=worktime; } publicintgetSalary(){ returnsalary; } publicvoidsetSalary(intsalary){ this.salary=salary; } publicStringgetDept(){ returndept; } publicvoidsetDept(Stringdept){ this.dept=dept; } publicWork(Stringid,Stringwname,Stringsex,intage,Stringdegree,Stringworktime,intsalary,Stringdept) { 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类:此类中有七个成员变量,Stringid;Stringwname;Stringgrade;Stringtmajor;intsnum;Stringpassrate;Stringcomment,和十四个成员方法,类中分不猎取和设置了这七个变量,即为teaching表中七个属性的属性名,每个变量都对应了getXXX(),setXXX()方法,还有一个构造方法,用于在调用其对象时对成员变量赋值Teaching类源代码:packagesecond;publicclassTeaching{ Stringid; Stringwname; Stringgrade; intsnum; Stringtmajor; Stringpassrate; Stringcomment; publicStringgetID(){ returnid; } publicvoidsetID(Stringid){ this.id=id; } publicStringgetWname(){ returnwname; } publicvoidsetWname(Stringwname){ this.wname=wname; } publicStringgetGrade(){ returngrade; } publicvoidsetGrade(Stringgrade){ this.grade=grade; } publicintgetSnum(){ returnsnum; } publicvoidsetSnum(intsnum){ this.snum=snum; } publicStringgetTmajor(){ returntmajor; } publicvoidsetTmajor(Stringtmajor){ this.tmajor=tmajor; } publicStringgetPassRate(){ returnpassrate; } publicvoidsetPassRate(Stringpassrate){ this.passrate=passrate; } publicStringgetComment(){ returncomment; } publicvoidsetComment(Stringcomment){ ment=comment; } publicTeaching(Stringid,Stringwname,Stringgrade,Stringtmajor,intsnum,Stringpassrate,Stringcomment) { super(); this.id=id; this.wname=wname; this.grade=grade; this.tmajor=tmajor; this.snum=snum; this.passrate=passrate; ment=comment; }}finally包中的类:(1)LoginDD类:此类为登陆主界面类,在那个界面上,设置有两个按钮,教职工按钮和治理员按钮。给这两个按钮注册事件addActionListener,分不在内部类TeacherLoginActionListene和StudentLoginActionListener中的默认方法actionPerformed()中创建EmployeeDD类和ManagerDD类的对象,即打开教职工登陆界面和治理员登录界面,并将原登陆界面关闭。LoginDD类源代码:packagefinallys;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassLoginDDextendsJFrame{ JLabell1; JButtonbt1,bt2; Containercp; publicLoginDD(){ l1=newJLabel("请选择用户类型"); bt1=newJButton("教职工"); bt2=newJButton("治理员"); JPanelp1=newJPanel(); 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(newTeacherLoginActionListener());//注册事件 bt2.addActionListener(newStudentLoginActionListener());//注册事件 cp=getContentPane(); this.setBounds(200,200,p1.getHeight(),p1.getHeight()); cp.add(p1); this.setTitle("用户登录界面"); this.setSize(400,400); this.setVisible(true); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }); } classTeacherLoginActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newEmployeeDD(); dispose(); } }classStudentLoginActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newManagerDD(); dispose(); } } publicstaticvoidmain(String[]args){ newLoginDD(); }}截图如下:图1用户登录主界面ManagerDD类:此类为治理员登陆界面,在那个界面上有两个文本框,分不输入治理员姓名和登录密码,还有两个按钮,登陆和退出。输入后,从两个文本框中猎取用户输入的内容,点击“登陆”按钮时,调用Workerfirst类中的managerLogin()方法验证是否存在该用户。若存在,则创建Mainlogin类的对象,即打开教职工简介界面进行操作,若不存在,则提示密码错误。ManagerDD类源代码:packagefinallys;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importfirst.Workerfirst;;publicclassManagerDDextendsJFrame{ JLabell1,l2; JTextFieldt1; JPasswordFieldt2; JButtonbt1,bt2; Containercp; publicstaticStringst1; publicStringst2; publicManagerDD(){ l1=newJLabel("治理员姓名"); l2=newJLabel("密码"); t1=newJTextField(12); t2=newJPasswordField(12); bt1=newJButton("教职工信息治理"); bt2=newJButton("退出"); JPanelp1=newJPanel(); 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(l2); t2.setBounds(250,190,80,30); p1.add(t2); bt1.setBounds(150,230,150,30); p1.add(bt1); bt2.setBounds(320,230,80,30); p1.add(bt2); bt1.addActionListener(newLoginActionListener());//注册事件 bt2.addActionListener(newExitActionListener());//注册事件 cp=getContentPane(); this.setBounds(200,200,p1.getHeight(),p1.getHeight()); cp.add(p1); this.setTitle("治理员登录界面"); this.setSize(400,400); this.setVisible(true); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente) { System.exit(0); } }); } classLoginActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ st1=t1.getText(); st2=t2.getText(); Workerfirstworkerfirst=newWorkerfirst(); booleanisSuccess=workerfirst.managerLogin(st1,st2); if(isSuccess){ newMainlogin(); dispose(); }else JOptionPane.showMessageDialog(null,"用户名密码错误","提示信息", JOptionPane.INFORMATION_MESSAGE); } } classExitActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ System.exit(0); } } publicstaticvoidmain(String[]args){ newManagerDD(); }}截图如下:图2治理员登录界面图3教职工教学与简介信息操作(3)Managerteaching类:此类为教职工教学界面,那个界面上有一个标签和一个表格。标签中从ManagerDD类中猎取教职工登录时使用的用户名,显示在标签中以表示以下是某某教职工的教学信息。表格中为此学生的成绩。调用Teachinfirst类中的queryTeaching(),将得到的ArrayList对象lis放入Vector对象中,形成表格。Managerteaching类源代码:packagefinallys;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.event.*;importjavax.swing.table.DefaultTableModel;importsecond.Teaching;importfirst.Teachingfirst;;publicclassManagerteachingextendsJFrame{ Stringaa=ManagerDD.st1; JLabelselectionLabel; JPaneltopPanel; Containercontainer; JTabletable; JScrollPanebookScrollPane; JPanelbottomPanel; publicManagerteaching(){ container=this.getContentPane(); selectionLabel=newJLabel(aa+"老师教学情况如下"); topPanel=newJPanel(); topPanel.setLayout(newFlowLayout(FlowLayout.CENTER)); topPanel.add(selectionLabel); this.add(BorderLayout.NORTH,topPanel); table=newJTable(); bookScrollPane=newJScrollPane(table); this.add(BorderLayout.CENTER,bookScrollPane); bottomPanel=newJPanel(); this.add(BorderLayout.SOUTH,bottomPanel); this.setTitle("教师教学情况查询"); this.setSize(600,450); this.setVisible(true); Teachingfirstteach=newTeachingfirst(); ArrayListlis=teach.queryTeaching(aa); Vector<String>head=newVector(); head.add("职工号"); head.add("教职工姓名"); head.add("年级"); head.add("教授专业"); head.add("学生人数"); head.add("及格率"); head.add("教学总评"); Vector<Vector>content=newVector(); for(inti=0;i<lis.size();i++){ Vectorrow=newVector(); Teachingteaching=(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); } DefaultTableModelmodel=newDefaultTableModel(content,head); table.setModel(model); repaint(); }}(4)EmployeeDD类:此类为教职工登陆界面,在那个界面上有两个文本框,分不输入教职工姓名和密码,还有两个按钮,登陆和退出。输入后,从两个文本框中猎取用户输入的内容,点击“登陆”按钮时,调用Employeefirst类中的queryEmployee()方法验证是否存在该用户。若存在则创建TeachQuery类的对象,即打开教师主界面,若不存在,则提示密码错误。EmployeeDD类源代码:packagefinallys;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importfirst.Employeefirst;publicclassEmployeeDDextendsJFrame{ JLabell1,l2; JTextFieldt1; JPasswordFieldt2; JButtonbt1,bt2; Containercp; publicEmployeeDD(){ l1=newJLabel("教职工姓名"); l2=newJLabel("密码"); t1=newJTextField(12); t2=newJPasswordField(12); bt1=newJButton("登录"); bt2=newJButton("退出"); JPanelp1=newJPanel(); 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(l2); t2.setBounds(250,190,80,30); p1.add(t2); bt1.setBounds(150,230,80,30); p1.add(bt1); bt2.setBounds(250,230,80,30); p1.add(bt2); bt1.addActionListener(newLoginActionListener());//注册事件 bt2.addActionListener(newExitActionListener());//注册事件 cp=getContentPane(); this.setBounds(200,200,p1.getHeight(),p1.getHeight()); cp.add(p1); this.setTitle("教职工登录界面"); this.setSize(400,400); this.setVisible(true); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente) { System.exit(0); } }); } classLoginActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ Stringst1=t1.getText(); Stringst2=t2.getText(); Employeefirstemployee=newEmployeefirst(); booleanisSuccess=employee.queryEmployee(st1,st2); if(isSuccess){ newTeachQuery(); dispose(); }else JOptionPane.showMessageDialog(null,"用户名密码错误","提示信息", JOptionPane.INFORMATION_MESSAGE); } } classExitActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ System.exit(0); } } publicstaticvoidmain(String[]args){ newEmployeeDD(); }}截图如下:图4教职工登录页面Mainlogin类:该类为操作教职工信息的主界面类,在此界面上有一个菜单栏,三个菜单:文件,查询,修改。其中“文件”菜单中有“退出”菜单项,点击时跳出对话框问是否确实退出,若点击是,窗口关闭,若点击否,回复原界面。“查询”菜单中有“教职工信息简介信息”和“教职工教学信息查询”两个菜单项:当点击“教职工信息简介”时,通过注册事件,创建ManagerQuery类的对象,即打开查询教职工简介信息的窗口,当点击“教职工教学信息”时,通过注册事件,创建TeachQuery类的对象,即打开查询教职工教学信息的窗口。修改菜单中有“添加教职工简介信息”“删除教职工简介信息”“添加教职工教学信息”和“删除教职工教学信息”四个菜单项,当点击“添加教职工简介信息”时,通过注册事件,创建ManagerAdd类的对象,即打开添加教职工简介信息的窗口,当点击“删除教职工简介信息”时,通过注册事件,创建ManagerDelete类的对象,即打开删除教职工简介信息的窗口,当点击“添加教职工教学信息”时,通过注册事件,创建TeachAdd类的对象,即打开添加教职工教学信息的窗口,当点击“删除教职工教学信息”时,通过注册事件,创建TeachDelete类的对象,即打开删除教职工教学的窗口。Mainlogin类源代码:packagefinallys;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMainloginextendsJFrame{ Containerctp;Mainlogin(){ ctp=this.getContentPane(); this.setTitle("欢迎进入教职工教学系统!"); ctp.setLayout(newBorderLayout()); JMenuBarmenuBar=newJMenuBar(); buildMainMenu(menuBar); this.setJMenuBar(menuBar); this.setBounds(100,100,400,300); this.setVisible(true); } publicvoidbuildMainMenu(JMenuBarmenuBar){ JMenufileMenu=newJMenu("文件"); JMenuItemexitMenuItem=newJMenuItem("退出"); exitMenuItem.addActionListener(newExitActionListener());//注册事件 fileMenu.add(exitMenuItem); menuBar.add(fileMenu); JMenuqueryMenu=newJMenu("查询"); JMenuItemqueryMenuItem=newJMenuItem("教职工信息简介"); JMenuItemqueryScoreMenuItem=newJMenuItem("教职工教学信息查询"); queryMenuItem.addActionListener(newQueryActionListener());//注册事件 queryScoreMenuItem.addActionListener(newQueryScoreActionListener());//注册事件 queryMenu.add(queryMenuItem); queryMenu.add(queryScoreMenuItem); menuBar.add(queryMenu); JMenuchangeMenu=newJMenu("修改"); JMenuItemaddMenuItem=newJMenuItem("添加教职工简介信息"); JMenuItemdeleteMenuItem=newJMenuItem("删除教职工简介信息"); JMenuItemaddScoreMenuItem=newJMenuItem("添加教职工教学信息"); JMenuItemdeleteScoreMenuItem=newJMenuItem("删除教职工教学信息"); addMenuItem.addActionListener(newAddActionListener());//注册事件 deleteMenuItem.addActionListener(newDeleteActionListener());//注册事件 addScoreMenuItem.addActionListener(newAddScoreActionListener());//注册事件 deleteScoreMenuItem.addActionListener(newDeleteScoreActionListener());//注册事件 changeMenu.add(addMenuItem); changeMenu.add(deleteMenuItem); changeMenu.add(addScoreMenuItem); changeMenu.add(deleteScoreMenuItem); menuBar.add(changeMenu); } classExitActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ intresult=JOptionPane.showConfirmDialog(null,"确实要退出吗?","提示信息", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE, null); if(result==0) System.exit(0); elseif(result==1){ } } } classQueryScoreActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newTeachQuery(); } } classQueryActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newManagerQuery(); } } classAddActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newManagerAdd(); } } classDeleteActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newManagerDelete(); } } classAddScoreActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newTeachAdd(); } } classDeleteScoreActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ newTeachDelete(); } } publicstaticvoidmain(String[]args){ newMainlogin(); }}截图如下:图5教职工治理(6)ManagerQuery类:此类为教职工简介信息查询界面类,在此界面上有一个标签,一个下拉列表框,一个文本框和一个按钮。点击下拉列表框时,能够选择要检索的方式,即要检索的属性,单击时,通过注册事件,在内部类的方法里猎取所点击的属性名称,保存在一个String型的变量里。在文本框中输入要检索的属性内容,单击“检索”按钮时,通过注册事件,在内部类的方法中把刚才猎取的属性参数和内容参数传给Workerfirst类的queryWorker()方法,从而猎取检索内容,再把检索得到的内容通过Vector对象放入ArrayList类的对象lis中,从而使检索结果显示在表格中。ManagerQuery类源代码:packagefinallys;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.event.*;importjavax.swing.table.*;importsecond.Work;importfirst.Workerfirst;;publicclassManagerQueryextendsJFrame{ JLabelselectionLabel; JComboBoxfieldComboBox; JPaneltopPanel; JButtonretrievalButton; JTextFieldkeywordText; Containercontainer; StringfieldSelected; intselectedNum; JTabletable; JScrollPanebookScrollPane; JPanelbottomPanel; publicManagerQuery(){ container=this.getContentPane(); selectionLabel=newJLabel("检索方式"); fieldComboBox=newJComboBox(); fieldComboBox.addItem("请选择..."); fieldComboBox.addItem("职工号"); fieldComboBox.addItem("教职工姓名"); fieldComboBox.addItem("学历"); fieldComboBox.addItem("院不"); fieldComboBox.addItemListener(newSelectedListener());//下拉列表框注册事件注册事件 keywordText=newJTextField("",20); retrievalButton=newJButton("检索"); topPanel=newJPanel(); topPanel.setLayout(newFlowLayout(FlowLayout.LEFT)); keywordText.setSize(topPanel.getWi

温馨提示

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

评论

0/150

提交评论