版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫系統(tǒng)課程設(shè)計報告 課 題 員工培訓(xùn)管理系統(tǒng) 班 級 學(xué) 號 姓 名 指 導(dǎo) 教 師 時間:2015.6.15 2015.6.26課題簡述: 企業(yè)的不斷學(xué)習(xí)能夠幫助企業(yè)更快地適應(yīng)市場環(huán)境的飛速變化,通過有效地培訓(xùn)企業(yè)員工,賦予員工學(xué)習(xí)專業(yè)技能的機會與能力,企業(yè)可以迅速根據(jù)市場需求變化,調(diào)整分配企業(yè)組織的人力資源分布,形成高效的企業(yè)組織單元,更好地完成企業(yè)運作任務(wù)。培訓(xùn)已經(jīng)成為企業(yè)現(xiàn)代化的重要標(biāo)志。開發(fā)工具與環(huán)境: 1. Windows 7 2. SQL Server 20053. NetBeans編譯器4. Java語言1. 系統(tǒng)需求分析1.1 系統(tǒng)功能分析員工培訓(xùn)系統(tǒng)需要實現(xiàn)的主要功能包
2、括:l 企業(yè)總體培訓(xùn)課程的設(shè)置和安排。l 允許員工根據(jù)自己的情況選擇合適的課程和上課時間。l 對選課結(jié)果進行統(tǒng)計報表。允許員工對最后選課結(jié)果的查詢。l 培訓(xùn)考核成績的輸入和查詢。l 員工培訓(xùn)效果的綜合報表。l 員工個人信息的修改。1.2 系統(tǒng)功能模塊設(shè)計(劃分)本系統(tǒng)涉及到員工和培訓(xùn)管理部門之間的交流,因此需要根據(jù)用戶的不同分成兩大功能模塊。這兩個模塊的功能和使用的權(quán)限完全不同。本系統(tǒng)功能模塊如圖1所示。圖1、員工培訓(xùn)管理系統(tǒng)功能模塊圖1.3 與其它系統(tǒng)的關(guān)系員工培訓(xùn)系統(tǒng)可以為員工素質(zhì)技能的評價提供可靠的依據(jù),是職務(wù)評定的一個參考信息源。系統(tǒng)本身需要用到人事管理系統(tǒng)中的員工基本信息和部門信息等
3、輔助資料,這些數(shù)據(jù)可以通過數(shù)據(jù)庫直接讀取。1.4 數(shù)據(jù)流程圖 員工培訓(xùn)管理系統(tǒng)的數(shù)據(jù)流程如圖2所示。圖2、培訓(xùn)管理數(shù)據(jù)流程圖2. 數(shù)據(jù)庫設(shè)計2.1 數(shù)據(jù)庫需求分析根據(jù)系統(tǒng)數(shù)據(jù)流程圖,列出以下系統(tǒng)所需的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):l 部門(部門編號,部門名稱)l 考核評價(考核評價編號,考核評價說明)l 課程狀態(tài)(課程狀態(tài)編號,課程狀態(tài)說明)l 受教育程度(受教育程度編號,受教育程度說明)l 任課教師(任課教師編號,任課教師姓名)l 員工(員工編號,員工姓名,性別,生日,部門編號,職務(wù),受教育程度編號,專業(yè)技能,家庭住址,聯(lián)系電話,電子信箱,當(dāng)前狀態(tài))l 課程(課程編號,課程名,任課教師編號,課程簡介,所
4、用教材,上課地點,課程上限人數(shù),開課時間,課程狀態(tài)編號)l 培訓(xùn)安排(員工編號,課程編號,成績,考核評價編號,考核日期)l 員工登陸(員工編號,員工密碼)l 任課教師登陸(任課教師編號,任課教師密碼)2.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計圖3是本系統(tǒng)所需數(shù)據(jù)的E-R模型圖。圖3、培訓(xùn)管理E-R圖2.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計根據(jù)系統(tǒng)的E-R圖,我設(shè)計了10個數(shù)據(jù)表。部門信息表考核評價信息表課程狀態(tài)信息表受教育程度信息表任課教師信息表員工信息表課程信息表培訓(xùn)安排信息表員工登陸信息表任課教師登陸信息表2.4 數(shù)據(jù)庫的建立 點擊開始,選擇SQL Server Management Studio,進入到主界面,右擊數(shù)
5、據(jù)庫,選擇新建數(shù)據(jù)庫,創(chuàng)建一個本系統(tǒng)需要的數(shù)據(jù)庫,然后點擊該數(shù)據(jù)庫,選擇新建查詢。員工信息表創(chuàng)建如下(其他表創(chuàng)建方法類似):create table 員工(員工編號varchar(10),姓名varchar(20) not null,性別varchar(10) not null,生日varchar(20),部門編號varchar(10),職務(wù)varchar(20) not null,受教育程度編號varchar(10),專業(yè)技能varchar(20) not null,家庭住址varchar(50) not null,聯(lián)系電話varchar(20) not null,電子信箱varchar(2
6、0),當(dāng)前狀態(tài)varchar(10) not null,primary key(員工編號),foreign key(部門編號) references 部門(部門編號),foreign key(受教育程度編號) references 受教育程度(受教育程度編號);3. 各功能模塊的設(shè)計與實現(xiàn)3.1 功能說明本管理系統(tǒng)主要分為兩大部分:培訓(xùn)管理應(yīng)用程序和學(xué)員選課應(yīng)用程序。培訓(xùn)管理應(yīng)用程序主要用于培訓(xùn)中心的管理人員對培訓(xùn)課程和培訓(xùn)情況進行維護。此應(yīng)用程序主要包括四項功能:課程設(shè)置、選課結(jié)果查詢修改、成績輸入、培訓(xùn)成績統(tǒng)計報表。另外,系統(tǒng)需要有登錄窗口(用于權(quán)限認證)和導(dǎo)航窗口(用于連接各項功能)。學(xué)
7、員選課應(yīng)用程序包括個人信息修改、選課和成績查詢?nèi)椆δ?。?) 培訓(xùn)管理管理應(yīng)用程序功能說明:本功能是由任課教師登錄后所操作的。在登錄之后,教師界面包含有兩個選項:課程設(shè)置管理和培訓(xùn)結(jié)果管理。進入培訓(xùn)結(jié)果管理后,在該界面下會直接顯示培訓(xùn)成績單,此外成績單下面,還有著查詢、刪除、更新功能,對員工的培訓(xùn)成績會進行一系列操作;進入課程設(shè)置管理后,會直接顯示課程表,在課程表底下則包含有查詢、添加、刪除、更改課程表的選項。(2) 學(xué)員選課應(yīng)用程序功能說明: 本功能是由員工登陸后所操作的。在登錄之后員工界面包括兩個選項:選擇培訓(xùn)課程和用戶信息修改。進入選擇培訓(xùn)課程界面后,會直接顯示課程表,底下則有多個按鈕
8、,查詢、選擇、刪除課程,還有一個可以查看員工自己已經(jīng)選擇的課程;進入用戶信息修改界面,點擊員工信息顯示,會顯示出此時員工本人的詳細信息,在修改完畢后,點擊更新即可更新員工自己的信息;而點擊修改登錄密碼,則會進入到修改密碼的界面,從而進行修改密碼的操作。3.2 用戶界面設(shè)計完成數(shù)據(jù)庫創(chuàng)建和功能說明以后,我們可以進行下一步工作,既設(shè)計用戶界面。1、 培訓(xùn)管理應(yīng)用程序登錄窗體的創(chuàng)建因為有權(quán)限問題,所有登錄的時候必須選擇不同的角色才能進入到不同的操作界面。2、 培訓(xùn)管理應(yīng)用程序主窗體的創(chuàng)建選擇不同的角色進入不同的界面。3、 課程設(shè)置窗體的創(chuàng)建在這個界面下,任課教師可以進行一系列對課程操作還有學(xué)生成績的
9、操作。4.學(xué)員選課客戶端界面的創(chuàng)建這個窗口,學(xué)生可以進行選課和查詢自己的選課結(jié)果,以及刪除自己不適合的課程。3.3 各功能模塊的實現(xiàn)1、培訓(xùn)管理應(yīng)用程序登錄程序的實現(xiàn)代碼如下: Connection conn = null; Statement s = null; ResultSet r = null; String t1 = txt1.getText();/讀取登錄時輸入的用戶編號 String t2 = pwd.getText();/讀取登錄時輸入的密碼 if (staff.isSelected() /選擇普通員工登陸 try /連接數(shù)據(jù)庫,以便驗證輸入的是否在數(shù)據(jù)庫中 Class.for
10、Name(com.microsoft.sqlserver.jdbc.SQLServerDriver);conn=DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=員工培訓(xùn), sa, 1042438267);s=conn.createStatement();/查詢用戶是否在數(shù)據(jù)路中r = s.executeQuery(SELECT * FROM 員工登陸 WHERE 員工編號= + t1 + and 員工密碼= + t2 + );r.last();if (r.getRow() = 1) r.before
11、First(); Staff staff1 = new Staff(); new Course().setCourse(t1);/員工編號傳遞到選課模塊 new ModifyStaff().setModifyStaff(t1);/員工編號傳遞到修改員工信息模塊中 new PassWord().setPassWord(t1,t2);/員工編號和密碼傳遞到修改登陸密碼模塊中 staff1.setVisible(true); this.setVisible(false); else JOptionPane.showMessageDialog(null, 用戶編號或者密碼錯誤!, 警告, JOptio
12、nPane.WARNING_MESSAGE); catch (Exception ex) ex.printStackTrace(); finally try s.close(); conn.close();/關(guān)閉數(shù)據(jù)庫,防止數(shù)據(jù)庫信息的泄漏 catch (SQLException e) e.printStackTrace(); else if (teacher.isSelected() /選擇任課教師登陸 try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); conn=DriverManager.getConnecti
13、on(jdbc:sqlserver:/localhost:1433;DatabaseName=員工培訓(xùn), sa, 1042438267); s=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);r = s.executeQuery(SELECT * FROM 任課教師登陸 WHERE 任課教師編號= + t1 + and 任課教師密碼= + t2 + ); r.last(); if (r.getRow() = 1) r.beforeFirst(); new Teacher().se
14、tVisible(true); this.setVisible(false); else JOptionPane.showMessageDialog(null, 用戶編號或者密碼錯誤!, 警告, JOptionPane.WARNING_MESSAGE); catch (Exception ex) ex.printStackTrace(); finally try s.close(); conn.close(); catch (SQLException e) e.printStackTrace(); else JOptionPane.showMessageDialog(null, 請選擇用戶類型
15、, 警告, JOptionPane.WARNING_MESSAGE); 2、課程設(shè)置模塊的實現(xiàn)因為課程表的顯示是綁定數(shù)據(jù)庫,從而得到顯示結(jié)果的,所以該操作不需要代碼的實現(xiàn),但該模塊下的查詢、更新、刪除需要代碼的實現(xiàn),代碼實現(xiàn)如下:(連接數(shù)據(jù)庫操作基本一致,所以在以下的代碼中就不會再粘貼出來)查詢操作:Table1.setModel(new javax.swing.table.DefaultTableModel(new Object null, null, null, null, null, null, null, null, null, null, null, null, null, null
16、, null, null, null, null, null, null ,new String員工編號, 課程編號, 成績, 考核評價編號, 考核日期);/為了實現(xiàn)多次查詢,這里必須初始化/選擇字段那里需要從組合框中選取字段,必須把里面的內(nèi)容轉(zhuǎn)化成String類型String choose1 = choose.getSelectedItem() + ;String t2 = txt1.getText();/獲取某屬性的查詢字段 /因為我不懂如何從組合框那里讀取所選數(shù)據(jù),所以只能進行遍歷選擇,選擇查詢字段后就進行模糊查詢語句 if (choose1.equals(員工編號) r = s.exe
17、cuteQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編號 LIKE% + t2 + %); else if (choose1.equals(課程編號) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 課程編號 LIKE% + t2 + %); else if (choose1.equals(成績) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 成績 LIKE% + t2 + %); else if (choose1.equals(考核評價編號) r = s.executeQuery(SELE
18、CT * FROM 培訓(xùn)安排 WHERE 考核評價編號 LIKE% + t2 + %); else if (choose1.equals(考核日期) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 考核日期 LIKE% + t2 + %); else JOptionPane.showMessageDialog(null, 請選擇字段!, 警告, JOptionPane.WARNING_MESSAGE); int i = 0, j = -1; while (r.next() j = 0;/設(shè)置獲取的數(shù)據(jù)放置在表中位置 Table1.setValueAt(r
19、.getString(員工編號), i, j); Table1.setValueAt(r.getString(課程課程), i, j + 1); Table1.setValueAt(r.getString(成績), i, j + 2); Table1.setValueAt(r.getString(考核評價編號), i, j + 3); Table1.setValueAt(r.getString(考核日期), i, j + 4); i+; j = 0;if (j = -1) JOptionPane.showMessageDialog(null, 輸入內(nèi)容不存在!, 警告, JOptionPane
20、.WARNING_MESSAGE); 更新操作:該操作在原窗口不好進行操作,所以需要跳轉(zhuǎn)到另一個窗口中執(zhí)行。代碼如下:String t1, t2;/設(shè)置全局變量,獲取員工編號和課程編號,防止修改。/進行員工編號和課程編號的選擇,選出屬于這主鍵(員工編號,課程編號)下代表的信息t1 = txt1.getText();t2 = txt2.getText();/獲取此時的員工編號和課程編號 r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編號= + t1 + );r1 = s1.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 課
21、程編號= + t2 + );r2 = s2.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編號= + t1 + and 課程編號= + t2 + );if (!r.next() JOptionPane.showMessageDialog(null, 不存在這樣的員工編號!, 警告, JOptionPane.WARNING_MESSAGE); else if (r1.next() if (r2.next() /獲取信息 txt3.setText(r2.getString(成績); txt4.setText(r2.getString(考核評價編號); txt5.s
22、etText(r2.getString(考核日期); else OptionPane.showMessageDialog(null, 沒有這樣的課程編號!, 警告, JOptionPane.WARNING_MESSAGE); 刪除操作:因為培訓(xùn)安排表中,主鍵是員工編號和課程編號,所以進行刪除操作的時候,必須依賴于這兩個鍵才能實行。代碼如下:String t4 = txt2.getText();String t5 = txt3.getText();/獲取輸入的員工編號和課程編號r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編 號= + t4 + );
23、r1 = s1.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 課程編號= + t5 + );if (!r.next() JOptionPane.showMessageDialog(null, 沒有這樣的員工編號!, 警告, JOptionPane.WARNING_MESSAGE); else if (r1.next() s.executeUpdate(delete from 培訓(xùn)安排 where 員工編號= + t4 + ); JOptionPane.showMessageDialog(null, 刪除成功!, 成功, JOptionPane.WARNING_ME
24、SSAGE); else JOptionPane.showMessageDialog(null, 沒有這樣的課程編號!, 警告, JOptionPane.WARNING_MESSAGE); 3、選課結(jié)果查詢的實現(xiàn)該功能是位于員工操作界面下,所以必須獲取登陸界面輸入的用戶編號和密碼信息。同時,課程表的顯示是綁定數(shù)據(jù)庫而得到結(jié)果的,所以不需要代碼的實現(xiàn)。查詢操作基本與第3個功能塊相似,因為文檔長度問題,這里就不再粘貼代碼。 4、學(xué)員選課客戶端應(yīng)用程序的創(chuàng)建在這個功能塊中,有兩個表格。一個是顯示課程信息,另一個是顯示員工自己已經(jīng)選擇了的課程,在在模塊下,我設(shè)置了選課按鍵和刪除選課按鍵,方便員工合理的進行培訓(xùn)。又因為員工的所有操作都依賴于登錄時的信息,也就是員工只能操作屬于自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州拙政園課件
- 2024-2025學(xué)年初中同步測控優(yōu)化設(shè)計物理八年級下冊配人教版第八章測評(A)含答案
- 一年級數(shù)學(xué)上冊??家族e填空100道
- 西京學(xué)院《機械設(shè)計基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《國際貨運代理與報關(guān)實務(wù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《大數(shù)據(jù)技術(shù)原理及應(yīng)用》2021-2022學(xué)年期末試卷
- 小兔搬家 課件
- 西華師范大學(xué)《外國音樂史與名作賞析》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《數(shù)據(jù)庫系統(tǒng)原理》2022-2023學(xué)年期末試卷
- 西華師范大學(xué)《幾何學(xué)基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 中級漢語期末考試測試題(共5頁)
- 《國家電網(wǎng)公司安全生產(chǎn)事故隱患排查治理管理辦法》(國家電網(wǎng)安監(jiān)[
- 采購訂單英文模板適合外企?purchase?order
- 水保監(jiān)理報告范文
- xx售樓部鋼結(jié)構(gòu)及玻璃幕墻工程拆除施工方案
- 工程移交單表格1頁
- 云南沿邊高校青年教師發(fā)展現(xiàn)狀及問題分析
- 先進制造業(yè)項目專項資金申請報告范文模板
- OOK調(diào)制解調(diào)電路設(shè)計
- 《電影放映經(jīng)營許可證》年檢申請表
- 臨時用電申請表.doc
評論
0/150
提交評論