數(shù)據(jù)庫(kù)系統(tǒng)報(bào)告_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)報(bào)告_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)報(bào)告_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)報(bào)告_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)報(bào)告 課 題 員工培訓(xùn)管理系統(tǒng) 班 級(jí) 學(xué) 號(hào) 姓 名 指 導(dǎo) 教 師 時(shí)間:2015.6.15 2015.6.26課題簡(jiǎn)述: 企業(yè)的不斷學(xué)習(xí)能夠幫助企業(yè)更快地適應(yīng)市場(chǎng)環(huán)境的飛速變化,通過(guò)有效地培訓(xùn)企業(yè)員工,賦予員工學(xué)習(xí)專業(yè)技能的機(jī)會(huì)與能力,企業(yè)可以迅速根據(jù)市場(chǎng)需求變化,調(diào)整分配企業(yè)組織的人力資源分布,形成高效的企業(yè)組織單元,更好地完成企業(yè)運(yùn)作任務(wù)。培訓(xùn)已經(jīng)成為企業(yè)現(xiàn)代化的重要標(biāo)志。開(kāi)發(fā)工具與環(huán)境: 1. Windows 7 2. SQL Server 20053. NetBeans編譯器4. Java語(yǔ)言1. 系統(tǒng)需求分析1.1 系統(tǒng)功能分析員工培訓(xùn)系統(tǒng)需要實(shí)現(xiàn)的主要功能包

2、括:l 企業(yè)總體培訓(xùn)課程的設(shè)置和安排。l 允許員工根據(jù)自己的情況選擇合適的課程和上課時(shí)間。l 對(duì)選課結(jié)果進(jìn)行統(tǒng)計(jì)報(bào)表。允許員工對(duì)最后選課結(jié)果的查詢。l 培訓(xùn)考核成績(jī)的輸入和查詢。l 員工培訓(xùn)效果的綜合報(bào)表。l 員工個(gè)人信息的修改。1.2 系統(tǒng)功能模塊設(shè)計(jì)(劃分)本系統(tǒng)涉及到員工和培訓(xùn)管理部門(mén)之間的交流,因此需要根據(jù)用戶的不同分成兩大功能模塊。這兩個(gè)模塊的功能和使用的權(quán)限完全不同。本系統(tǒng)功能模塊如圖1所示。圖1、員工培訓(xùn)管理系統(tǒng)功能模塊圖1.3 與其它系統(tǒng)的關(guān)系員工培訓(xùn)系統(tǒng)可以為員工素質(zhì)技能的評(píng)價(jià)提供可靠的依據(jù),是職務(wù)評(píng)定的一個(gè)參考信息源。系統(tǒng)本身需要用到人事管理系統(tǒng)中的員工基本信息和部門(mén)信息等

3、輔助資料,這些數(shù)據(jù)可以通過(guò)數(shù)據(jù)庫(kù)直接讀取。1.4 數(shù)據(jù)流程圖 員工培訓(xùn)管理系統(tǒng)的數(shù)據(jù)流程如圖2所示。圖2、培訓(xùn)管理數(shù)據(jù)流程圖2. 數(shù)據(jù)庫(kù)設(shè)計(jì)2.1 數(shù)據(jù)庫(kù)需求分析根據(jù)系統(tǒng)數(shù)據(jù)流程圖,列出以下系統(tǒng)所需的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):l 部門(mén)(部門(mén)編號(hào),部門(mén)名稱)l 考核評(píng)價(jià)(考核評(píng)價(jià)編號(hào),考核評(píng)價(jià)說(shuō)明)l 課程狀態(tài)(課程狀態(tài)編號(hào),課程狀態(tài)說(shuō)明)l 受教育程度(受教育程度編號(hào),受教育程度說(shuō)明)l 任課教師(任課教師編號(hào),任課教師姓名)l 員工(員工編號(hào),員工姓名,性別,生日,部門(mén)編號(hào),職務(wù),受教育程度編號(hào),專業(yè)技能,家庭住址,聯(lián)系電話,電子信箱,當(dāng)前狀態(tài))l 課程(課程編號(hào),課程名,任課教師編號(hào),課程簡(jiǎn)介,所

4、用教材,上課地點(diǎn),課程上限人數(shù),開(kāi)課時(shí)間,課程狀態(tài)編號(hào))l 培訓(xùn)安排(員工編號(hào),課程編號(hào),成績(jī),考核評(píng)價(jià)編號(hào),考核日期)l 員工登陸(員工編號(hào),員工密碼)l 任課教師登陸(任課教師編號(hào),任課教師密碼)2.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)圖3是本系統(tǒng)所需數(shù)據(jù)的E-R模型圖。圖3、培訓(xùn)管理E-R圖2.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)的E-R圖,我設(shè)計(jì)了10個(gè)數(shù)據(jù)表。部門(mén)信息表考核評(píng)價(jià)信息表課程狀態(tài)信息表受教育程度信息表任課教師信息表員工信息表課程信息表培訓(xùn)安排信息表員工登陸信息表任課教師登陸信息表2.4 數(shù)據(jù)庫(kù)的建立 點(diǎn)擊開(kāi)始,選擇SQL Server Management Studio,進(jìn)入到主界面,右擊數(shù)

5、據(jù)庫(kù),選擇新建數(shù)據(jù)庫(kù),創(chuàng)建一個(gè)本系統(tǒng)需要的數(shù)據(jù)庫(kù),然后點(diǎn)擊該數(shù)據(jù)庫(kù),選擇新建查詢。員工信息表創(chuàng)建如下(其他表創(chuàng)建方法類似):create table 員工(員工編號(hào)varchar(10),姓名varchar(20) not null,性別varchar(10) not null,生日varchar(20),部門(mén)編號(hào)varchar(10),職務(wù)varchar(20) not null,受教育程度編號(hào)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(員工編號(hào)),foreign key(部門(mén)編號(hào)) references 部門(mén)(部門(mén)編號(hào)),foreign key(受教育程度編號(hào)) references 受教育程度(受教育程度編號(hào));3. 各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1 功能說(shuō)明本管理系統(tǒng)主要分為兩大部分:培訓(xùn)管理應(yīng)用程序和學(xué)員選課應(yīng)用程序。培訓(xùn)管理應(yīng)用程序主要用于培訓(xùn)中心的管理人員對(duì)培訓(xùn)課程和培訓(xùn)情況進(jìn)行維護(hù)。此應(yīng)用程序主要包括四項(xiàng)功能:課程設(shè)置、選課結(jié)果查詢修改、成績(jī)輸入、培訓(xùn)成績(jī)統(tǒng)計(jì)報(bào)表。另外,系統(tǒng)需要有登錄窗口(用于權(quán)限認(rèn)證)和導(dǎo)航窗口(用于連接各項(xiàng)功能)。學(xué)

7、員選課應(yīng)用程序包括個(gè)人信息修改、選課和成績(jī)查詢?nèi)?xiàng)功能。(1) 培訓(xùn)管理管理應(yīng)用程序功能說(shuō)明:本功能是由任課教師登錄后所操作的。在登錄之后,教師界面包含有兩個(gè)選項(xiàng):課程設(shè)置管理和培訓(xùn)結(jié)果管理。進(jìn)入培訓(xùn)結(jié)果管理后,在該界面下會(huì)直接顯示培訓(xùn)成績(jī)單,此外成績(jī)單下面,還有著查詢、刪除、更新功能,對(duì)員工的培訓(xùn)成績(jī)會(huì)進(jìn)行一系列操作;進(jìn)入課程設(shè)置管理后,會(huì)直接顯示課程表,在課程表底下則包含有查詢、添加、刪除、更改課程表的選項(xiàng)。(2) 學(xué)員選課應(yīng)用程序功能說(shuō)明: 本功能是由員工登陸后所操作的。在登錄之后員工界面包括兩個(gè)選項(xiàng):選擇培訓(xùn)課程和用戶信息修改。進(jìn)入選擇培訓(xùn)課程界面后,會(huì)直接顯示課程表,底下則有多個(gè)按鈕

8、,查詢、選擇、刪除課程,還有一個(gè)可以查看員工自己已經(jīng)選擇的課程;進(jìn)入用戶信息修改界面,點(diǎn)擊員工信息顯示,會(huì)顯示出此時(shí)員工本人的詳細(xì)信息,在修改完畢后,點(diǎn)擊更新即可更新員工自己的信息;而點(diǎn)擊修改登錄密碼,則會(huì)進(jìn)入到修改密碼的界面,從而進(jìn)行修改密碼的操作。3.2 用戶界面設(shè)計(jì)完成數(shù)據(jù)庫(kù)創(chuàng)建和功能說(shuō)明以后,我們可以進(jìn)行下一步工作,既設(shè)計(jì)用戶界面。1、 培訓(xùn)管理應(yīng)用程序登錄窗體的創(chuàng)建因?yàn)橛袡?quán)限問(wèn)題,所有登錄的時(shí)候必須選擇不同的角色才能進(jìn)入到不同的操作界面。2、 培訓(xùn)管理應(yīng)用程序主窗體的創(chuàng)建選擇不同的角色進(jìn)入不同的界面。3、 課程設(shè)置窗體的創(chuàng)建在這個(gè)界面下,任課教師可以進(jìn)行一系列對(duì)課程操作還有學(xué)生成績(jī)的

9、操作。4.學(xué)員選課客戶端界面的創(chuàng)建這個(gè)窗口,學(xué)生可以進(jìn)行選課和查詢自己的選課結(jié)果,以及刪除自己不適合的課程。3.3 各功能模塊的實(shí)現(xiàn)1、培訓(xùn)管理應(yīng)用程序登錄程序的實(shí)現(xiàn)代碼如下: Connection conn = null; Statement s = null; ResultSet r = null; String t1 = txt1.getText();/讀取登錄時(shí)輸入的用戶編號(hào) String t2 = pwd.getText();/讀取登錄時(shí)輸入的密碼 if (staff.isSelected() /選擇普通員工登陸 try /連接數(shù)據(jù)庫(kù),以便驗(yàn)證輸入的是否在數(shù)據(jù)庫(kù)中 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 員工編號(hào)= + t1 + and 員工密碼= + t2 + );r.last();if (r.getRow() = 1) r.before

11、First(); Staff staff1 = new Staff(); new Course().setCourse(t1);/員工編號(hào)傳遞到選課模塊 new ModifyStaff().setModifyStaff(t1);/員工編號(hào)傳遞到修改員工信息模塊中 new PassWord().setPassWord(t1,t2);/員工編號(hào)和密碼傳遞到修改登陸密碼模塊中 staff1.setVisible(true); this.setVisible(false); else JOptionPane.showMessageDialog(null, 用戶編號(hào)或者密碼錯(cuò)誤!, 警告, JOptio

12、nPane.WARNING_MESSAGE); catch (Exception ex) ex.printStackTrace(); finally try s.close(); conn.close();/關(guān)閉數(shù)據(jù)庫(kù),防止數(shù)據(jù)庫(kù)信息的泄漏 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 任課教師編號(hào)= + t1 + and 任課教師密碼= + t2 + ); r.last(); if (r.getRow() = 1) r.beforeFirst(); new Teacher().se

14、tVisible(true); this.setVisible(false); else JOptionPane.showMessageDialog(null, 用戶編號(hào)或者密碼錯(cuò)誤!, 警告, JOptionPane.WARNING_MESSAGE); catch (Exception ex) ex.printStackTrace(); finally try s.close(); conn.close(); catch (SQLException e) e.printStackTrace(); else JOptionPane.showMessageDialog(null, 請(qǐng)選擇用戶類型

15、, 警告, JOptionPane.WARNING_MESSAGE); 2、課程設(shè)置模塊的實(shí)現(xiàn)因?yàn)檎n程表的顯示是綁定數(shù)據(jù)庫(kù),從而得到顯示結(jié)果的,所以該操作不需要代碼的實(shí)現(xiàn),但該模塊下的查詢、更新、刪除需要代碼的實(shí)現(xiàn),代碼實(shí)現(xiàn)如下:(連接數(shù)據(jù)庫(kù)操作基本一致,所以在以下的代碼中就不會(huì)再粘貼出來(lái))查詢操作: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員工編號(hào), 課程編號(hào), 成績(jī), 考核評(píng)價(jià)編號(hào), 考核日期);/為了實(shí)現(xiàn)多次查詢,這里必須初始化/選擇字段那里需要從組合框中選取字段,必須把里面的內(nèi)容轉(zhuǎn)化成String類型String choose1 = choose.getSelectedItem() + ;String t2 = txt1.getText();/獲取某屬性的查詢字段 /因?yàn)槲也欢绾螐慕M合框那里讀取所選數(shù)據(jù),所以只能進(jìn)行遍歷選擇,選擇查詢字段后就進(jìn)行模糊查詢語(yǔ)句 if (choose1.equals(員工編號(hào)) r = s.exe

17、cuteQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編號(hào) LIKE% + t2 + %); else if (choose1.equals(課程編號(hào)) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 課程編號(hào) LIKE% + t2 + %); else if (choose1.equals(成績(jī)) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 成績(jī) LIKE% + t2 + %); else if (choose1.equals(考核評(píng)價(jià)編號(hào)) r = s.executeQuery(SELE

18、CT * FROM 培訓(xùn)安排 WHERE 考核評(píng)價(jià)編號(hào) LIKE% + t2 + %); else if (choose1.equals(考核日期) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 考核日期 LIKE% + t2 + %); else JOptionPane.showMessageDialog(null, 請(qǐng)選擇字段!, 警告, JOptionPane.WARNING_MESSAGE); int i = 0, j = -1; while (r.next() j = 0;/設(shè)置獲取的數(shù)據(jù)放置在表中位置 Table1.setValueAt(r

19、.getString(員工編號(hào)), i, j); Table1.setValueAt(r.getString(課程課程), i, j + 1); Table1.setValueAt(r.getString(成績(jī)), i, j + 2); Table1.setValueAt(r.getString(考核評(píng)價(jià)編號(hào)), 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); 更新操作:該操作在原窗口不好進(jìn)行操作,所以需要跳轉(zhuǎn)到另一個(gè)窗口中執(zhí)行。代碼如下:String t1, t2;/設(shè)置全局變量,獲取員工編號(hào)和課程編號(hào),防止修改。/進(jìn)行員工編號(hào)和課程編號(hào)的選擇,選出屬于這主鍵(員工編號(hào),課程編號(hào))下代表的信息t1 = txt1.getText();t2 = txt2.getText();/獲取此時(shí)的員工編號(hào)和課程編號(hào) r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編號(hào)= + t1 + );r1 = s1.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 課

21、程編號(hào)= + t2 + );r2 = s2.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編號(hào)= + t1 + and 課程編號(hào)= + t2 + );if (!r.next() JOptionPane.showMessageDialog(null, 不存在這樣的員工編號(hào)!, 警告, JOptionPane.WARNING_MESSAGE); else if (r1.next() if (r2.next() /獲取信息 txt3.setText(r2.getString(成績(jī)); txt4.setText(r2.getString(考核評(píng)價(jià)編號(hào)); txt5.s

22、etText(r2.getString(考核日期); else OptionPane.showMessageDialog(null, 沒(méi)有這樣的課程編號(hào)!, 警告, JOptionPane.WARNING_MESSAGE); 刪除操作:因?yàn)榕嘤?xùn)安排表中,主鍵是員工編號(hào)和課程編號(hào),所以進(jìn)行刪除操作的時(shí)候,必須依賴于這兩個(gè)鍵才能實(shí)行。代碼如下:String t4 = txt2.getText();String t5 = txt3.getText();/獲取輸入的員工編號(hào)和課程編號(hào)r = s.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 員工編 號(hào)= + t4 + );

23、r1 = s1.executeQuery(SELECT * FROM 培訓(xùn)安排 WHERE 課程編號(hào)= + t5 + );if (!r.next() JOptionPane.showMessageDialog(null, 沒(méi)有這樣的員工編號(hào)!, 警告, JOptionPane.WARNING_MESSAGE); else if (r1.next() s.executeUpdate(delete from 培訓(xùn)安排 where 員工編號(hào)= + t4 + ); JOptionPane.showMessageDialog(null, 刪除成功!, 成功, JOptionPane.WARNING_ME

24、SSAGE); else JOptionPane.showMessageDialog(null, 沒(méi)有這樣的課程編號(hào)!, 警告, JOptionPane.WARNING_MESSAGE); 3、選課結(jié)果查詢的實(shí)現(xiàn)該功能是位于員工操作界面下,所以必須獲取登陸界面輸入的用戶編號(hào)和密碼信息。同時(shí),課程表的顯示是綁定數(shù)據(jù)庫(kù)而得到結(jié)果的,所以不需要代碼的實(shí)現(xiàn)。查詢操作基本與第3個(gè)功能塊相似,因?yàn)槲臋n長(zhǎng)度問(wèn)題,這里就不再粘貼代碼。 4、學(xué)員選課客戶端應(yīng)用程序的創(chuàng)建在這個(gè)功能塊中,有兩個(gè)表格。一個(gè)是顯示課程信息,另一個(gè)是顯示員工自己已經(jīng)選擇了的課程,在在模塊下,我設(shè)置了選課按鍵和刪除選課按鍵,方便員工合理的進(jìn)行培訓(xùn)。又因?yàn)閱T工的所有操作都依賴于登錄時(shí)的信息,也就是員工只能操作屬于自

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論