Java課程設(shè)計(jì)-教職工檔案管理系統(tǒng).doc
《Java課程設(shè)計(jì)-教職工檔案管理系統(tǒng).doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《Java課程設(shè)計(jì)-教職工檔案管理系統(tǒng).doc(57頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
職工檔案管理系統(tǒng) 一.引言 1.1項(xiàng)目背景和目標(biāo) 職工檔案管理系統(tǒng)主要是對(duì)在校教師的個(gè)人基本信息以及教學(xué)信息進(jìn)行管理,對(duì)教職工提供查詢(xún)簡(jiǎn)介信息、教學(xué)信息功能;對(duì)管理員用戶(hù)提供查詢(xún)教師簡(jiǎn)介信息、查詢(xún)教學(xué)信息、添加教師信息、修改教師信息、刪除教師信息等功能。我們的目標(biāo)就是為該系統(tǒng)提供后臺(tái)連接MYSQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)以及前臺(tái)用戶(hù)界面設(shè)計(jì)。 1.2項(xiàng)目的可行性研究 設(shè)計(jì)此系統(tǒng)需要java面向?qū)ο缶幊袒A(chǔ),數(shù)據(jù)庫(kù)應(yīng)用知識(shí)以及功能分析。根據(jù)目前所開(kāi)設(shè)的課程,學(xué)生已經(jīng)具備這樣的知識(shí),有能力綜合java編程知識(shí)和數(shù)據(jù)庫(kù)應(yīng)用知識(shí)做出一個(gè)這樣的學(xué)生信息管理系統(tǒng) 二. 需求分析 2.1系統(tǒng)概述 此系統(tǒng)提供給教職工用戶(hù)和學(xué)校管理者,教職工登陸后可以對(duì)能自己基本信息進(jìn)行查看,管理員登陸后能對(duì)教師的基本信息進(jìn)行增刪改操作。 2.2系統(tǒng)運(yùn)行環(huán)境 Java程序運(yùn)行在eclipse軟件上編譯并且運(yùn)行,數(shù)據(jù)庫(kù)用MYSQL數(shù)據(jù)庫(kù) 三.系統(tǒng)設(shè)計(jì) 3.1開(kāi)發(fā)與設(shè)計(jì)的總體思想 教職工方面:教師通過(guò)自己的用戶(hù)名和密碼登錄后,進(jìn)入教師主界面,在這個(gè)主界面里,可以進(jìn)行查詢(xún)信息操作。 學(xué)校管理員方面:管理員通過(guò)自己的密碼登入后可以選擇:查詢(xún)功能、文件功能、修改功能。在查詢(xún)功能里面,可以選擇是查詢(xún)教職工簡(jiǎn)介基本信息,還是查詢(xún)教學(xué)信息。在查詢(xún)教職工簡(jiǎn)介信息時(shí),可以從依據(jù)不同字段,即簡(jiǎn)介表中的不同屬性進(jìn)行查找。在查找教學(xué)信息時(shí),只能依據(jù)教師姓名進(jìn)行查找。在修改功能里面,包括對(duì)教師簡(jiǎn)介信息表和教學(xué)表進(jìn)行增加和刪除記錄 職工檔案管理系統(tǒng) 3.2系統(tǒng)模塊結(jié)構(gòu)圖 教職工登錄 管理員登錄 教職工信息管理 教職工教學(xué)信息 幫助 教職工信息查詢(xún) 教職工信息修改 退出系統(tǒng) 教職工簡(jiǎn)介信息 教職工教學(xué)信息 刪除簡(jiǎn)介信息 添加簡(jiǎn)介信息 添加教學(xué)信息 刪除教學(xué)信息 3.3數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 為了支持此職工檔案管理系統(tǒng),創(chuàng)建數(shù)據(jù)庫(kù)employeemanage,在這個(gè)數(shù)據(jù)庫(kù)里包含四個(gè)表:worker表,manager表,employee表和teaching表,它們的截圖如下: 在worker表中,有八個(gè)屬性列,分別為:id(職工號(hào)),wname(姓名),sex(性別),age(年齡),degree(學(xué)歷),worktime(參加工作時(shí)間),salary(工資),dept(院別)。其基本數(shù)據(jù)類(lèi)型分別為:char,char,char,int,char,char,int,char. 表1 worker 在manager表中,有兩個(gè)屬性列,分別為:mname(管理員姓名),password(密碼)其基本數(shù)據(jù)類(lèi)型分別為:char,char。當(dāng)管理員登錄系統(tǒng)時(shí)從此表獲取數(shù)據(jù),其截圖如下: 表2 manager 在employee表中,有兩個(gè)屬性列,分別為:wname(職工姓名),password(密碼)其基本數(shù)據(jù)類(lèi)型分別為:char,char。當(dāng)教職工登錄系統(tǒng)時(shí)從此表獲取數(shù)據(jù),其截圖如下: 表3 employee 在teaching表中,有七個(gè)屬性列,分別為:id(職工號(hào)),wname(姓名),grade(年級(jí)),tmajor(教授專(zhuān)業(yè)),snum(學(xué)生人數(shù)),passrate(及格率),comment(教學(xué)總評(píng))。其基本數(shù)據(jù)類(lèi)型分別為:char,char,char,int,char,char,char。其截圖如下: 表4 teaching 3.4模塊設(shè)計(jì) 在整個(gè)系統(tǒng)主界面,可以選擇登錄方式,是教職工登錄還是管理員登錄。如果選擇教職工,則進(jìn)入教職工登錄界面,在這個(gè)界面上要求輸入教職工姓名和密碼。輸入后單擊“確認(rèn)登錄”按鈕,若密碼正確,則轉(zhuǎn)換到教職工教學(xué)信息查詢(xún)頁(yè)面,當(dāng)輸入教職工姓名后即可顯示該名教職工的教學(xué)信息,若密碼不正確,這提示密碼錯(cuò)誤。 如果選擇是管理員登錄,則進(jìn)入管理員登陸界面,在這個(gè)界面上輸入管理員姓名和密碼,輸入后單擊“教職工信息管理”按鈕,則進(jìn)入管理員主界面。在管理員主界面可以選擇進(jìn)行文件操作,查詢(xún)操作還是修改操作。 若要查詢(xún)教職工簡(jiǎn)介信息,點(diǎn)擊查詢(xún)菜單項(xiàng)則進(jìn)入教職工簡(jiǎn)介信息檢索界面,在此界面的檢索方式中選擇要檢索的數(shù)據(jù)屬性,在檢索內(nèi)容框中輸入檢索的具體信息,例如,檢索“姓名”字段時(shí),要鍵入某個(gè)教職工的姓名。輸入后,單擊“檢索”按鈕,則開(kāi)始對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行查詢(xún)。如果數(shù)據(jù)庫(kù)檢索到所需信息,則生成列表顯示檢索結(jié)構(gòu),如果沒(méi)有所需信息,則頁(yè)面列表中顯示為空。 若要查詢(xún)教職工教學(xué)信息,則點(diǎn)擊教職工教學(xué)信息查詢(xún)菜單項(xiàng),進(jìn)入教學(xué)查詢(xún)界面。在此界面的文本框中輸入要查詢(xún)教學(xué)信息的教職工姓名,然后單擊檢索按鈕。若數(shù)據(jù)庫(kù)中有該教職工的教學(xué)信息,則生成列表顯示教學(xué)信息,若沒(méi)有此記錄,則列表顯示內(nèi)容為空。 如果管理員要對(duì)數(shù)據(jù)庫(kù)中進(jìn)行修改操作,則在管理員主界面上選擇修改菜單項(xiàng),在此項(xiàng)中,選擇要修改的具體內(nèi)容,總共有四項(xiàng)修改操作:添加教職工簡(jiǎn)介信息,刪除教職工簡(jiǎn)介信息(這兩個(gè)是對(duì)數(shù)據(jù)庫(kù)中worker表的操作),添加教職工教學(xué)信息,刪除教職工教學(xué)信息(這兩個(gè)是對(duì)數(shù)據(jù)庫(kù)中teaching表的操作)。在添加信息操作中,按照標(biāo)簽提示一次輸入要添加的記錄值,輸入完畢后,單擊“添加”按鈕,若輸入成功,則提示成功,若輸入失敗,則提示失敗。在刪除信息操作中,輸入要?jiǎng)h除信息的教職工姓名,單擊“刪除”按鈕,若刪除成功,則提示成功,若刪除失敗則提示失敗。 以上就是該職工檔案管理系統(tǒng)涉及的操作步驟。 開(kāi) 始 3.5系統(tǒng)流程描述 登錄主界面 幫 助 管理員登錄 教職工登錄 輸入有誤 輸入有誤 成功 成功 No 選擇 幫助 教學(xué)信息管理界面 簡(jiǎn)介信息查詢(xún) Yes 教職工信息修改 退出系統(tǒng) 教職工信息查詢(xún) 刪除教職工教學(xué)信息 刪除教職工簡(jiǎn)介信息 添加教職工教學(xué)信息 添加教職工簡(jiǎn)介信息 職工教學(xué)信息 職工簡(jiǎn)介信息 退出 輸入教職工 姓名 選擇檢索方 式和數(shù)據(jù) 錄入添加的簡(jiǎn)介信息 輸入要?jiǎng)h除的教職工姓名 輸入要?jiǎng)h除的教職工姓名 錄入添加的教學(xué)信息 成功 成功 成功 成功 成功 成功 Yes 顯示教職工教學(xué)信息 顯示檢索信息 輸入有誤 輸入有誤 輸入有誤 輸入有誤 沒(méi)有任何的輸出 Insert success insert success delete success delete success 四、系統(tǒng)實(shí)現(xiàn)DBconnection類(lèi) 本系統(tǒng)所編寫(xiě)的程序保存在以下四個(gè)包中:connection包,first包,second包,finally包 1. connection包中的類(lèi): (1)DBconnection類(lèi):此類(lèi)設(shè)置程序與數(shù)據(jù)庫(kù)的連接,通過(guò)設(shè)置驅(qū)動(dòng)類(lèi)型和數(shù)據(jù)源來(lái)確定要連接的數(shù)據(jù)庫(kù)。若連接成功,提示:connection success,若連接失敗,提示:connection failure DBconnection類(lèi)源代碼: 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","0703112418"); 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包中的類(lèi): (1)Workerfirst類(lèi):此類(lèi)中有四個(gè)方法,managerLogin,addWorker,deleteWorker, queryworker,作用分別是控制管理員登陸系統(tǒng),增加教職工基本信息,刪除學(xué)生基本信息,查詢(xún)教職工基本信息。 managerLogin()方法中,有兩個(gè)參數(shù),分別傳給select語(yǔ)句中的mname(管理員姓名)和password(登錄密碼),利用select語(yǔ)句在employee表中檢索管理員登錄信息。若存在此信息,返回true,否則返回false addWorker)方法中,有八個(gè)參數(shù),分別傳給insert語(yǔ)句中的id(職工號(hào)),wname(教職工姓名),age(年齡),sex(性別),degree(學(xué)歷),worktime(參加工作時(shí)間),salary(工資)和dept(院別),利用insert語(yǔ)句向worker教職工信息簡(jiǎn)介表中插入記錄。若插入成功,返回true,否則返回false deleteWorker()方法中,有一個(gè)參數(shù),傳給delete語(yǔ)句中的wname(教職工姓名),利用delete語(yǔ)句,把worker表中相關(guān)教職工信息刪除。若刪除成功,返回true,否則返回false queryWorker()方法中,有兩個(gè)參數(shù),分別傳給select語(yǔ)句中的field(查找方式)和key(查找內(nèi)容),利用select語(yǔ)句,從worker表中檢索教職工簡(jiǎn)介信息。若存在此信息,則返回一個(gè)ArrayList類(lèi)的對(duì)象lis(表格),否則,異常處理 Workerfirst類(lèi)源代碼: 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();// 返回修改的記錄數(shù) 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類(lèi):此類(lèi)中有一個(gè)方法:queryEmployee(),作用是控制教職工登陸 queryEmployee()方法中,有兩個(gè)參數(shù),分別傳給select語(yǔ)句中的wname(教職工姓名)和password(登陸密碼),利用select語(yǔ)句在teacher表中檢索教師登陸信息。若存在此信息,返回true,否則返回false Employeefirst類(lèi)源代碼: 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類(lèi):在該類(lèi)中有四個(gè)方法queryTeaching,addTeaching,deleteTeaching 作用分別是為教職工用戶(hù)提供查詢(xún)教學(xué)信息的功能,為管理者用戶(hù)提供 詢(xún)教職工教學(xué)信息,添加教學(xué)信息,刪除教學(xué)信息功能。 queryTeaching()方法中,有一個(gè)參數(shù),傳給select語(yǔ)句中的wname(學(xué)生姓名),利用select語(yǔ)句,查詢(xún)教學(xué)信息表中的內(nèi)容。若查詢(xún)成功,則返回一個(gè)ArrayList類(lèi)的對(duì)象lis(表格),否則,異常處理 addTeaching()方法中,有七個(gè)參數(shù),分別傳給insert語(yǔ)句中的id(職工號(hào)),wname(教職工姓名),grade(年級(jí)),tmajor(教學(xué)專(zhuān)業(yè)),snum(學(xué)生人數(shù)),passrate(及格率),comment(教學(xué)總評(píng))。利用insert語(yǔ)句,將這些記錄寫(xiě)入teaching表中。若插入成功返回true,否則返 回false deleteTeaching()方法中,有一個(gè)參數(shù),傳給delete語(yǔ)句中的wname(教職工姓名),利用delete語(yǔ)句,把steaching表中相關(guān)教職工的教學(xué)信息刪除。若刪除成功,返回 true,否則返回false Teaching類(lèi)源代碼: 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();// 返回修改的記錄數(shù) 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包中的類(lèi): (1)Work類(lèi):此類(lèi)中有八個(gè)成員變量,String id;String wname;String sex; int age;String degree;String worktime;int salary;String dept,和十六個(gè)成員方法,類(lèi)中分別獲取和設(shè)置了這八個(gè)變量,即為worker表中八個(gè)屬性的屬性名,每個(gè)變量都對(duì)應(yīng)了getXXX(),setXXX()方法,還有一個(gè)構(gòu)造方法,用于在調(diào)用其對(duì)象時(shí)對(duì)成員變量賦值 Work類(lèi)源代碼: 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類(lèi):此類(lèi)中有七個(gè)成員變量,String id;String wname;String grade;String tmajor;int snum;String passrate;String comment,和十四個(gè)成員方法,類(lèi)中分別獲取和設(shè)置了這七個(gè)變量,即為teaching表中七個(gè)屬性的屬性名,每個(gè)變量都對(duì)應(yīng)了getXXX(),setXXX()方法,還有一個(gè)構(gòu)造方法,用于在調(diào)用其對(duì)象時(shí)對(duì)成員變量賦值 Teaching類(lèi)源代碼: 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.comment = 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.comment=comment; } } 4. finally包中的類(lèi): (1)LoginDD類(lèi):此類(lèi)為登陸主界面類(lèi),在這個(gè)界面上,設(shè)置有兩個(gè)按鈕,教職工按鈕和管理員按鈕。給這兩個(gè)按鈕注冊(cè)事件addActionListener,分別在內(nèi)部類(lèi)TeacherLoginActionListene和StudentLoginActionListener中的默認(rèn)方法actionPerformed()中創(chuàng)建EmployeeDD類(lèi)和 ManagerDD類(lèi)的對(duì)象,即打開(kāi)教職工登陸界面和管理員登錄界面,并將原登陸界面關(guān)閉。 LoginDD類(lèi)源代碼: 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("請(qǐng)選擇用戶(hù)類(lèi)型"); 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());//注冊(cè)事件 bt2.addActionListener(new StudentLoginActionListener());//注冊(cè)事件 cp = getContentPane(); this.setBounds(200, 200, p1.getHeight(), p1.getHeight()); cp.add(p1); this.setTitle("用戶(hù)登錄界面"); 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 用戶(hù)登錄主界面 (2) ManagerDD類(lèi):此類(lèi)為管理員登陸界面,在這個(gè)界面上有兩個(gè)文本框,分別輸入管理員姓名和登錄密碼,還有兩個(gè)按鈕,登陸和退出。輸入后,從兩個(gè)文本框中獲取用戶(hù)輸入的內(nèi)容,點(diǎn)擊“登陸”按鈕時(shí),調(diào)用Workerfirst類(lèi)中的managerLogin()方法驗(yàn)證是否存在該用戶(hù)。若存在,則創(chuàng)建Mainlogin類(lèi)的對(duì)象,即打開(kāi)教職工簡(jiǎn)介界面進(jìn)行操作,若不存在,則提示密碼錯(cuò)誤。 ManagerDD類(lèi)源代碼: 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(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(new LoginActionListener());//注冊(cè)事件 bt2.addActionListener(new ExitActionListener());//注冊(cè)事件 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, "用戶(hù)名密碼錯(cuò)誤", "提示信息", JOptionPane.INFORMATION_MESSAGE); } } class ExitActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0); } } public static void main(String[] args) { new ManagerDD(); } } 截圖如下: 圖2 管理員登錄界面 圖3 教職工教學(xué)與簡(jiǎn)介信息操作 (3)Managerteaching類(lèi):此類(lèi)為教職工教學(xué)界面,這個(gè)界面上有一個(gè)標(biāo)簽和一個(gè)表格。標(biāo)簽中從ManagerDD類(lèi)中獲取教職工登錄時(shí)使用的用戶(hù)名,顯示在標(biāo)簽中以表示以下是某某教職工的教學(xué)信息。表格中為此學(xué)生的成績(jī)。調(diào)用Teachinfirst類(lèi)中的queryTeaching(),將得到的ArrayList對(duì)象lis放入Vector對(duì)象中,形成表格。 Managerteaching類(lèi)源代碼: 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 bott- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Java 課程設(shè)計(jì) 教職工 檔案管理系統(tǒng)
鏈接地址:http://www.820124.com/p-9280984.html