數(shù)據(jù)庫課程設(shè)計報告-企業(yè)人事(含代碼)_第1頁
已閱讀1頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)據(jù)庫課程設(shè)計報告</b></p><p><b> ?。êa)</b></p><p>  題 目: 企業(yè)人事管理系統(tǒng) </p><p>  班 級: </p><p>  學

2、 號: </p><p>  姓 名: </p><p>  指導老師: </p><p><b>  摘 要</b></p><p>  隨著社會科技的發(fā)展,商品經(jīng)濟化的高

3、效益,使計算機的應(yīng)用已經(jīng)普及到經(jīng)濟和社會生活的各個領(lǐng)域。為了適應(yīng)現(xiàn)代社會人們高度強烈的時間觀念,企業(yè)人事管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),人事管理系統(tǒng)軟件為機關(guān),團體,事業(yè)單位,企業(yè),公司等的人事管理帶來了極大的方便,能夠為用戶提供可靠的信息儲存和快捷的查詢手段。隨著科學技術(shù)的不斷提高,計算機日趨成熟,其強大的功能已為人們深刻認識,作為計算機應(yīng)用的一部分,使用計算機對單位的人事檔案信息進行管理,具有手工管理所無法比擬的優(yōu)點。例如:

4、檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大的提高一個單位人事管理的效率。</p><p>  本文是在對企業(yè)人事管理情況進行調(diào)查研究后,分析討論后撰寫的企業(yè)人事管理系統(tǒng)數(shù)據(jù)庫設(shè)計報告。全文從最初的系統(tǒng)規(guī)劃,到需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計。每一階段都進行了詳細的分析。接下來的實現(xiàn)、運行與維護階段,還進行了對本系統(tǒng)的測試,最后是本次項目開發(fā)的心得和體會以及本文的參考

5、文獻。</p><p>  關(guān)鍵字:企業(yè)人事管理系統(tǒng);數(shù)據(jù)庫;SQL Server;JSP;java</p><p><b>  第一章 系統(tǒng)規(guī)劃</b></p><p><b>  1.1 引言</b></p><p>  1.1.1 編寫目的</p><p>  在決定開

6、發(fā)管理信息系統(tǒng)應(yīng)用項目之前,首先要做好系統(tǒng)開發(fā)的可行性分析??尚行苑治龅娜蝿?wù)是確定項目開發(fā)是否必要和可行。建設(shè)企業(yè)人事管理系統(tǒng)的必要性取決于需求的迫切性和實現(xiàn)的可行性。其實質(zhì)是在較高層次上以較抽象方式進行的、簡化的壓縮的需求分析和概要設(shè)計過程。</p><p><b>  1.1.2項目背景</b></p><p>  隨著社會的發(fā)展,科技的進步,作為信息載體的計算機

7、日益顯露出其舉足輕重的地位。當今社會已步入了信息社會,知識經(jīng)濟將成為新世紀的主導產(chǎn)業(yè)。然而人力資源是企業(yè)所有資源中最活躍與最昂貴的資源,如何讓更多的員工以積極主動的態(tài)度參與公司的運作,最大限度的發(fā)揮企業(yè)人力資源的效用是每一個管理者關(guān)心的問題。為了更好地對公司內(nèi)部的人員進行管理,需要開發(fā)一個人事管理相關(guān)的軟件,項目名稱為“企業(yè)人事管理系統(tǒng)”。</p><p>  大量的日常工作皆是手工處理,因此工作效率低落,企業(yè)內(nèi)

8、部溝通不良等等問題很難克服。要提升企業(yè)競爭力,企業(yè)內(nèi)部信息化是不可缺少的一個步驟。實施先進的辦公室自動化系統(tǒng),實現(xiàn)企業(yè)內(nèi)部信息管理、共享及交流,才能讓企業(yè)在競爭激烈的21世紀取得先機。</p><p>  1.2 可行性研究的前提</p><p><b>  1.2.1 目標</b></p><p>  系統(tǒng)實現(xiàn)后,方便進行員工信息的管理,考勤

9、管理,以及員工工資信息的管理。減少信息交流的煩瑣過程及其帶來的開銷,促進企業(yè)人事的計算機信息化進程,提高企業(yè)的工作效率。對于系統(tǒng)的本身而言,應(yīng)該具有較高的實用性、安全性。能夠極大的滿足對員工信息的管理,以及企業(yè)對人事的管理。</p><p><b>  1.2.2 要求</b></p><p><b>  主要功能:</b></p>

10、<p>  企業(yè)人事管理系統(tǒng)是有關(guān)員工信息管理、工資管理、工作考勤管理和工作考核管理以及部門管理的一套信息化系統(tǒng)。用戶的需求具體體現(xiàn)在考勤信息和用戶信息的提供、保存、更新和查詢的方面。這就要求數(shù)據(jù)庫的設(shè)計必須合理,使之能夠充分滿足各種信息的輸入和輸出,保證數(shù)據(jù)存儲的可靠性,并且能夠快速取出和存入。而前臺顯示部分,應(yīng)具有人性化的界面,方便用戶操作。因各個企業(yè)的實際情況不同,系統(tǒng)應(yīng)該具有兼容性。例如:員工可查詢自己的信息。一些企

11、業(yè)員工人數(shù)較多,同時登陸系統(tǒng),系統(tǒng)承載的負荷就很大。系統(tǒng)需要同時處理很大的數(shù)據(jù)量,這時系統(tǒng)不會因此崩潰。</p><p><b>  性能要求:</b></p><p>  管理員發(fā)布的信息、員工考勤信息以及管理員和員工對系統(tǒng)操作的信息必須及時的反映在本系統(tǒng)上,且無差錯。</p><p><b>  輸入要求:</b>&l

12、t;/p><p>  具有很好的容錯性和兼容性,系統(tǒng)還應(yīng)該具有較強的安全性,保證身份不同的用戶,不能越權(quán)操作。非合法用戶不能對數(shù)據(jù)進行操作。</p><p><b>  輸出要求:</b></p><p><b>  應(yīng)迅速、準確、實時</b></p><p>  完成期限:預計五個星期,即截止2016

13、年12月30日。</p><p>  1.2.3 條件假定和限制</p><p><b>  建議軟件壽命:未知</b></p><p><b>  經(jīng)費來源:自費</b></p><p>  硬件條件:Intel Pentium 4、1G內(nèi)存同等性能及以上的硬件條件</p><

14、p>  運行環(huán)境:Window 10 、Tomcat5.5、JDK1.6</p><p>  數(shù)據(jù)庫:Microsoft SQL server2005</p><p>  投入運行最遲時間:2016年12月25日</p><p>  1.2.4 決定可行性的主要因素</p><p> ?。?)經(jīng)濟可行性:對組織的經(jīng)濟狀況和投資能力進行分

15、析,一方面是支出的費用,其中包括設(shè)備購置費、軟件開發(fā)費、管理和維護費用、人員工資和培訓費等;另一方面是取得的收益,其中有一部分可以用錢來衡量,如開發(fā)本系統(tǒng),為企業(yè)節(jié)省的人力,物力。收益的另一部分難以用錢表示,如加強人事信息管理。</p><p>  (2)技術(shù)上可行性:技術(shù)上的可行性分析所考慮采用的硬件和軟件技術(shù)能滿足用戶提出的要求(如計算機的容量、速度等)。此外,因本系統(tǒng)難度不大,所涉及的范圍只限于企業(yè)人事信息

16、管理,所以在技術(shù)上已達到開發(fā)該系統(tǒng)的能力。</p><p>  (3)管理上的可行性:重要是管理人員對開發(fā)信息系統(tǒng)的態(tài)度和管理方面的基礎(chǔ)工作。重要領(lǐng)導不支持的項目肯定不可行。管理基礎(chǔ)工作好壞重要表現(xiàn)在管理制度和方法是否科學,規(guī)章制度是否齊全以及原始數(shù)據(jù)是否正確等方面。 </p><p>  綜上所述,為了提高企業(yè)工作效率、保證企業(yè)人事管理質(zhì)量、快速而且準確地為企業(yè)制定好的經(jīng)營方針與決策,

17、在有限的時間內(nèi)完成工作任務(wù)及達到預期的目的,我選擇了開發(fā)企業(yè)人事管理系統(tǒng)。</p><p><b>  1.3 意見結(jié)論</b></p><p>  根據(jù)上述分析,技術(shù)、經(jīng)濟、管理可行性都可行,可以立即進行開發(fā)。</p><p><b>  第二章 需求分析</b></p><p><b&g

18、t;  2.1 系統(tǒng)需求</b></p><p>  現(xiàn)在的大型企業(yè)都已實現(xiàn)了人事管理的信息化,例如每天通過錄指紋實現(xiàn)對出勤次數(shù)的統(tǒng)計,實現(xiàn)了信息的網(wǎng)絡(luò)化和公開化。要想通過人事管理系統(tǒng)來提高企業(yè)的管理水平,光是選取一個好的或比較好的、適合本企業(yè)特點的人事管理軟件還是遠遠不夠的。人事管理軟件通常只發(fā)揮應(yīng)有的效用,必須通過培訓轉(zhuǎn)變?nèi)藗兊乃季S方式和行為方式,學會通過系統(tǒng)來進行科學的管理。</p>

19、<p>  改進企業(yè)的相關(guān)制度和信息結(jié)構(gòu)。要充分地回顧本企業(yè)的相關(guān)政策和信息組成,充分利用人事管理系統(tǒng)改進企業(yè)的人事管理。</p><p>  明確基礎(chǔ)上的實施目標。要明確整個項目的實施計劃和目標,明確需要采集準確和及時。而兩者之間的矛盾就要通過建立必要的科學的程序性文件才能為人事管理系統(tǒng)的實施和正常運行提供有效的保證。</p><p>  員工信息管理,主要完成員工的基本信

20、息管理,如員工基本信息的添加、修改、刪除和查詢。</p><p>  工資管理,主要完成員工工資信息的管理,主要是進行員工工資信息的添加、修改刪除和查詢。</p><p>  工作考勤管理,主要完成職工考勤信息的管理,管理員工基本信息的考勤添加、修改、刪除和考勤信息的查詢。</p><p>  工作評價信息管理,主要完成員工的工作評價信息管理。 </p>

21、<p>  系統(tǒng)管理,主要是完成用戶的添加、密碼信息的修改等。</p><p><b>  2.2 功能需求</b></p><p> ?。?)員工的需求:能查看管理員發(fā)布的員工評價信息,考勤情況,能查看本人的基本信息,工資的信息,每位員工都有自己對應(yīng)的id,密碼。</p><p> ?。?)管理員的需求:對企業(yè)人事情況進行管理。

22、在開始使用企業(yè)人事資管理系統(tǒng)其他功能模塊之前,利用數(shù)據(jù)庫設(shè)計系統(tǒng)建立基本的管理員信息表。用管理員信息表包括用管理員ID、密碼,每個管理員ID對應(yīng)唯一的密碼,都輸入正確后進入管理系統(tǒng)。</p><p><b>  2.3 數(shù)據(jù)字典</b></p><p>  數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析后所獲得的主要成果。 </p>&l

23、t;p>  數(shù)據(jù)字典通常包括以下5個部分: </p><p>  (1)數(shù)據(jù)項。數(shù)據(jù)項是不可再分的數(shù)據(jù)單位。 </p><p>  (2)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成,或由若干數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)混合組成。 </p><p>  (3)數(shù)據(jù)流。數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健?<

24、;/p><p>  (4)數(shù)據(jù)存儲。數(shù)據(jù)存儲是數(shù)據(jù)及其結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。 </p><p>  (5)處理過程。處理過程的具體處理邏輯一般用判定表或判定樹來描述。 </p><p>  數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,即對元數(shù)據(jù)的描述。數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫設(shè)計過程中不斷修改、充實、完善的。</p><

25、;p><b>  1、數(shù)據(jù)元素舉例</b></p><p><b>  2、數(shù)據(jù)流舉例</b></p><p><b>  3、數(shù)據(jù)存儲舉例</b></p><p><b>  4、數(shù)據(jù)處理舉例</b></p><p><b>  5、外部

26、實體舉例</b></p><p><b>  基本說明:</b></p><p><b>  數(shù)據(jù)存儲說明</b></p><p><b>  數(shù)據(jù)流說明</b></p><p><b>  第三章 概念設(shè)計</b></p>&l

27、t;p>  3.1 實體之間的聯(lián)系</p><p>  E-R模型是指直接從現(xiàn)實世界中抽象出實體類型及實體間聯(lián)系,是一種描述靜態(tài)數(shù)據(jù)結(jié)構(gòu)的概念模型。它的主要成分是實體、聯(lián)系和屬性。可利用E-R模型進行數(shù)據(jù)庫概念設(shè)計。E-R圖是直觀表示概念模型的工具,</p><p>  1、矩形框:表示實體類型(考慮問題的對象);</p><p>  2、菱形框:表示聯(lián)系類型

28、(實體間的聯(lián)系);</p><p>  3、橢圓形框:表示實體類型和聯(lián)系類型的屬性;</p><p>  4、直線:聯(lián)系類型與涉及的實體類型之間以直線連接,并在直線部標上聯(lián)系的種類(1:1,1:N,M:N)。</p><p><b>  3.2 E-R圖</b></p><p><b>  員工信息實體圖<

29、;/b></p><p><b>  考勤信息實體圖</b></p><p><b>  工資實體圖</b></p><p><b>  工作評價實體圖</b></p><p>  實體與實體之間的關(guān)系E-R圖</p><p><b> 

30、 第四章 邏輯設(shè)計</b></p><p>  4.1 概念模型向關(guān)系模型的轉(zhuǎn)換</p><p>  4.2.1 確定范式級別</p><p>  根據(jù)上述分析所歸結(jié)出來的數(shù)據(jù)依賴的種類和在本系統(tǒng)實際的開發(fā)過程中,需要涉及多表的查詢及表的修改和刪除,且存在多值依賴的實際情況下,其關(guān)系模式應(yīng)達到BCNF。</p><p>  4.2

31、.2 實施規(guī)范化處理</p><p>  由于人事管理聯(lián)系的關(guān)系模式、企業(yè)人事的關(guān)系模式和管理員聯(lián)系的關(guān)系模式已經(jīng)不存非平凡且非函數(shù)依賴額多值依賴,所以在這里不需要做處理</p><p>  各個關(guān)系模式的函數(shù)依賴集如下:</p><p>  員工信息聯(lián)系:F={員工號→員工姓名,員工號→部門,員工號→性別,</p><p>  員工號→出生

32、年月,員工號→籍貫,員工號→員工身高,員工號→員工特長,員工號→入職日期,員工號→離職日期}</p><p>  考勤聯(lián)系:F={考勤名→考勤日期,考勤名→缺勤,考勤名→遲到}</p><p>  評價聯(lián)系:F={評價名→評價部門,評價名→評價日期,評價名→評價結(jié)果</p><p><b> ?。?lt;/b></p><p>

33、;  工資聯(lián)系:F={(評價結(jié)果,考勤名)→總工資}</p><p>  用戶系:F={用戶號→密碼,用戶號→權(quán)限}</p><p>  經(jīng)過規(guī)范化處理后的所有關(guān)系模如下:</p><p>  員工信息:{員工號,員工姓名,部門,性別,出生年月,籍貫,員工身高,員工特長,入職日期,離職日期}</p><p>  考勤信息:{員工號,考勤名,考

34、勤日期,缺勤,遲到}</p><p>  考評信息:{員工號,評價名,評價部門,評價日期,評價結(jié)果}</p><p>  工資信息:{員工號,考勤名,評價結(jié)果,總工資}</p><p>  用戶信息:{員工號,密碼,權(quán)限}</p><p>  員工信息聯(lián)系:(員工號,考勤名,評價名,總工資)</p><p>  工資聯(lián)

35、系:(評價結(jié)果,考勤名,總工資)</p><p><b>  第五章 物理設(shè)計</b></p><p>  5.1 數(shù)據(jù)庫的存儲結(jié)構(gòu)</p><p>  通過需求分析,概要設(shè)計和邏輯設(shè)計流程得到本系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)。</p><p>  5.1.2 數(shù)據(jù)庫的表設(shè)計</p><p>  物理設(shè)計的指導

36、思想是結(jié)構(gòu)化法。物理設(shè)計的目標是:在保證實現(xiàn)邏輯模型的基礎(chǔ)上,盡可能地提高系統(tǒng)的各項指標,即主要性、可靠性、工作質(zhì)量、工作效率和經(jīng)濟性等,故物理設(shè)計的指標是衡量系統(tǒng)設(shè)計好壞的準則。對這五個方面的指標,在一定程度上既是互相矛盾的又是相輔相成的。對于不同的系統(tǒng),由于功能及系統(tǒng)目標的不同,對上述指標的要求各有所側(cè)重。</p><p>  進一步確定上一章邏輯設(shè)計中設(shè)計好的關(guān)系模式中各個數(shù)據(jù)項的類型和長度,將每個關(guān)系轉(zhuǎn)換

37、為數(shù)據(jù)庫中的二維表格,并確定了各個表的主鍵和外鍵,得到以下表結(jié)構(gòu):</p><p><b>  數(shù)據(jù)庫一覽表</b></p><p><b>  管理用戶表</b></p><p><b>  員工檔案表</b></p><p><b>  考勤信息表</b&g

38、t;</p><p><b>  員工評價表</b></p><p><b>  員工工資表</b></p><p>  5.1.3數(shù)據(jù)的存放位置的設(shè)計</p><p>  根據(jù)本系統(tǒng)的數(shù)據(jù)庫的使用情況,主數(shù)據(jù)文件信息量大且使用頻繁將其存儲在高速存儲器(硬盤)上。將表和表上的索引存儲在不同的磁盤上以

39、便提高查詢效率,同時這樣可以提高物理I/O讀寫效率。數(shù)據(jù)庫備份文件和日志文件等文件因為使用頻率小而且數(shù)據(jù)量非常大,存放在低速存儲設(shè)備上。</p><p>  5.1.4 關(guān)系模式的存取方法</p><p>  關(guān)系模式采用索引存取方法與聚簇存取方法共用。</p><p>  5.1.5.數(shù)據(jù)庫安全性</p><p>  數(shù)據(jù)庫安全性是數(shù)據(jù)庫系

40、統(tǒng)的一個重要方面,它是指保護數(shù)據(jù)庫以防止被不合法的使用。安全保護設(shè)計的主要目的是以最小的代價防止對數(shù)據(jù)庫的非法訪問。系統(tǒng)應(yīng)在物理設(shè)計時注意考慮了數(shù)據(jù)庫安全問題。系統(tǒng)對用戶的使用權(quán)限進行分類和分級。系統(tǒng)用戶的使用權(quán)限可劃分為數(shù)據(jù)庫管理員級和使用人員級兩大類。為保證軟件與數(shù)據(jù)庫系統(tǒng)的安全運行,防止不合法的運行或計算機系統(tǒng)的不穩(wěn)定對系統(tǒng)造成損害,應(yīng)對系統(tǒng)的軟件和硬件進行合理的安全設(shè)置和可靠性設(shè)計。安全措施應(yīng)在系統(tǒng)中層層設(shè)置,包括用戶標識和口令

41、、不同操作員的權(quán)限設(shè)置、數(shù)據(jù)庫文件的加密等。</p><p>  由于本系統(tǒng)運行于網(wǎng)絡(luò)環(huán)境下,所以系統(tǒng)的安全與可靠性顯得非常重要。針對這一問題,主要考慮了以下幾種預防和處理的措施:</p><p>  1、對物理破壞的應(yīng)急處理</p><p>  主機以及核心設(shè)備采用磁盤備份,使得系統(tǒng)具有良好的可靠性。</p><p>  2、防范人為的作弊

42、與破壞</p><p>  本系統(tǒng)防范人為破壞的方法主要是:</p><p>  (1)利用操作系統(tǒng)的安全性,防止對數(shù)據(jù)庫的非法訪問。進入系統(tǒng)時必須通過操作員密碼,方可進入系統(tǒng)。</p><p>  (2)采用授權(quán)控制,加強用戶及口令管理等措施。對公司內(nèi)部人員對數(shù)據(jù)的訪問進行控制,對用戶、信息及操作分類授權(quán)。</p><p>  總之,系統(tǒng)的

43、安全性和可靠性對于該系統(tǒng)是非常重要的,是不可缺少的必須環(huán)節(jié)。</p><p>  第六章 實現(xiàn)、運行與維護</p><p><b>  6.1 實現(xiàn)</b></p><p>  根據(jù)概要設(shè)計和邏輯設(shè)計的結(jié)果,在計算機上建立實際的數(shù)據(jù)庫結(jié)構(gòu),導入數(shù)據(jù)進行程序調(diào)試。</p><p>  6.1.1 數(shù)據(jù)庫的實現(xiàn)</p&

44、gt;<p>  (1)創(chuàng)建數(shù)據(jù)庫qyrs</p><p> ?。?)創(chuàng)建五個表(用戶,員工,考勤,評價,工資)</p><p>  CREATE TABLE user (</p><p>  `user_id` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT

45、 '用戶名' ,</p><p>  `user_pwd` char(255) NOT NULL COMMENT '密碼' ,</p><p>  `user_des` char(255) NULL COMMENT '權(quán)限' ,</p><p>  PRIMARY KEY (`user_id`)</p>

46、<p><b>  )</b></p><p><b>  ;</b></p><p><b>  ;</b></p><p>  CREATE TABLE manrecord (</p><p>  `ygid` varchar(10) NOT NULL ,&

47、lt;/p><p>  `ygname` char(10) NOT NULL ,</p><p>  `ygdept` varchar(10) NULL ,</p><p>  `ygsex` varchar(2) NULL ,</p><p>  `ygbirthday` varchar(10) NULL ,</p>&l

48、t;p>  `ygplace` varchar(40) NULL ,</p><p>  `yglevel` varchar(10) NULL ,</p><p>  `ygspecial` varchar(10) NULL ,</p><p>  `ygdate1` varchar(10) NULL ,</p><p>  `

49、ygdate2` varchar(10) NULL ,</p><p>  PRIMARY KEY (`ygid`)</p><p><b>  )</b></p><p><b>  ;</b></p><p>  CREATE TABLE chekin (</p><p&g

50、t;  `kqid` varchar(8) NOT NULL ,</p><p>  `kqname` varchar(10) NOT NULL ,</p><p>  `kqdate` varchar(10) NOT NULL ,</p><p>  `kqabsent` decimal NULL ,</p><p>  `kqla

51、te` decimal NULL ,</p><p>  PRIMARY KEY (`kqid`)</p><p><b>  )</b></p><p>  CREATE TABLE manapparise (</p><p>  `pjid` varchar(8) NOT NULL COMMENT '員工

52、號' ,</p><p>  `pjname` varchar(10) NULL COMMENT '評價名' ,</p><p>  `pjdept` varchar(10) NULL COMMENT '評價部門' ,</p><p>  `pjdate` varchar(10) NULL COMMENT '評價

53、日期' ,</p><p>  `pjresult` varchar(40) NULL COMMENT '評價結(jié)果' ,</p><p>  PRIMARY KEY (`pjid`)</p><p><b>  )</b></p><p><b>  ;</b></p

54、><p>  CREATE TABLE pay (</p><p>  `gzid` varchar(8) NOT NULL COMMENT '員工號' ,</p><p>  `gzname` varchar(10) NOT NULL COMMENT '工資名' ,</p><p>  `gztotal`

55、decimal(8,2) NULL COMMENT '總工資' ,</p><p>  `gzdate` varchar(10) NULL COMMENT '工資日期' ,</p><p>  PRIMARY KEY (`gzid`)</p><p><b>  )</b></p><p&g

56、t;<b>  ;</b></p><p>  6.2 人機界面設(shè)計</p><p>  6.2.1 用戶登陸界面</p><p>  用戶登陸界面是每一個用戶,在登陸本系統(tǒng)時出現(xiàn)的界面,如要用戶輸入用戶名、密碼和驗證碼,以及確定用戶身份。其界面如下圖:</p><p><b>  用戶登陸界面</b&g

57、t;</p><p>  6.2.2 企業(yè)人事管理界面</p><p>  員工登陸成功后,進入員工管理模塊,其界面如下:</p><p><b>  企業(yè)人事管理界面</b></p><p><b>  6.3 系統(tǒng)測試 </b></p><p>  6.3.1用

58、戶登陸測試</p><p>  (1)登陸信息驗證測試。有一名用戶,用戶名為:001 密碼為:001,其身份為員工。當其在登陸界面所有的信息輸入正確時將進入如圖的界面。如果該用戶輸入的為002,系統(tǒng)就會提示用戶出錯,出錯界面如下:</p><p><b>  登陸錯誤提示1</b></p><p>  (2)如果用戶在輸入登陸信息時角色不符合,

59、將彈出錯誤提示。將會彈出一下提示框:</p><p><b>  登陸錯誤提示2</b></p><p>  6.3.2 企業(yè)人事管理測試</p><p>  (1)企業(yè)管理測試。一名員工,登陸系統(tǒng)后,進入如圖界面,可進行自己的個人信息查詢。如下圖:</p><p><b>  員工信息查詢</b>

60、</p><p> ?。?)該用戶選擇了查詢員工信息,點擊員工基本信息,如下圖:</p><p><b>  查詢后的考勤信息</b></p><p>  6.3.3 管理員管理測試</p><p> ?。?)一個管理員,登陸系統(tǒng)成功后,進入如圖界面,點擊員工管理系統(tǒng),可進行增刪改查,如下圖:</p>&l

61、t;p><b>  管理員登陸信息</b></p><p>  (2)在上圖界面,點擊查看所有員工的考勤信息,進入如下界面:</p><p> ?。?)點擊修改,將李琳的工資修改成4000,修改后的界面如下:</p><p><b>  修改后的李琳工資</b></p><p><b&g

62、t;  6.4 運行維護</b></p><p>  經(jīng)過實際的測試和運行,已經(jīng)可以滿足員工信息的增刪改查,系統(tǒng)運行穩(wěn)定,日后的使用和維護中DBA應(yīng)該注意進行定期備份數(shù)據(jù)庫,以免丟失數(shù)據(jù)庫。定期清理數(shù)據(jù)庫中的無效數(shù)據(jù),以提高運行效率。對軟件及運行環(huán)境進行日常維護。</p><p><b>  總 結(jié)</b></p><p>  對本

63、系統(tǒng)的性能、經(jīng)濟性及管理方面進行了具體評價。所謂系統(tǒng)評價是對一個信息系統(tǒng)的性能進行估計、檢查、測試、分析和評審的過程。</p><p><b>  一、性能上:</b></p><p>  系統(tǒng)的設(shè)計合理,具備的功能基本上達到了設(shè)計的要求,系統(tǒng)根據(jù)用戶要求出發(fā),使系統(tǒng)界面使用方便,并且容易維護,而且具有適應(yīng)性強的特點。</p><p><

64、b>  二、經(jīng)濟效果評價:</b></p><p>  1.提高了管理效率:用計算機代替了部分的手工勞動,減輕了工作人員的勞動強度,使他們從繁重的勞動中解脫出來。同時,便于管理人員進行調(diào)查研究和決策。由于各類數(shù)據(jù)集中處理,提高了企業(yè)的整體工作效率。</p><p>  2.提高了管理水平:由于信息處理的效率提高了,使事后處理變?yōu)榱藢崟r管理,同時使管理工作逐步走向定量化。&

65、lt;/p><p>  3.提高企業(yè)對市場信息的適應(yīng)能力,由于用計算機提供輔助決策方案,因此,當市場情況變化時,企業(yè)可及時進行相應(yīng)的決策,以適應(yīng)市場變化。</p><p>  二、管理方面的評價:</p><p>  實現(xiàn)了計算機的管理。加快了辦公自動化的進程。使管理更加科學。管理上的科學必然會提高工作效率,加快企業(yè)的前進步伐。</p><p>

66、  綜上所述,系統(tǒng)在性能,獲得效益,及管理上都達到了系統(tǒng)的目標。</p><p>  通過本企業(yè)認識管理系統(tǒng)的開發(fā),我們對軟件開發(fā)過程有了更清晰的了解,首先是問題定義、需求分析,然后是功能設(shè)計、詳細設(shè)計等,并對軟件測試的方法、手段有了較深的理解,同時對人事管理的流程有了一個系統(tǒng)的認識。在開發(fā)過程還認真學習了與系統(tǒng)相關(guān)的知識,極大地拓寬了我們的知識面。</p><p>  該系統(tǒng)任有一些不足

67、之處,例如該系統(tǒng)只是單機版的,不利于網(wǎng)絡(luò)傳輸數(shù)據(jù),還有其操作界面的方面問題,盡管在設(shè)計的過程中,我們時刻考慮到了操作界面的友好性,但實際情況是遠遠不能滿足客戶的要求,考慮到軟件使用群體將是一群幾乎沒有任何電腦操作經(jīng)驗的人,我們正在考慮設(shè)計出一種傻瓜式的界面。</p><p><b>  附錄:</b></p><p><b>  Java代碼:</b&

68、gt;</p><p>  package qyrs1;</p><p>  public class Begin {</p><p>  public static void main(String[] args) {</p><p>  new DLFrame();</p><p><b>  }<

69、/b></p><p><b>  }</b></p><p>  package qyrs1;</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;&l

70、t;/p><p>  import java.sql.*;</p><p>  class DLFrame extends JFrame implements ActionListener, ItemListener {// 登錄界面</p><p>  JPanel p1 = null;</p><p>  JPanel p2 = null;&

71、lt;/p><p>  JPanel p3 = null;</p><p>  JLabel userName = new JLabel("用戶:");</p><p>  JTextField txtUser = new JTextField();</p><p>  JLabel password = new JLabel

72、("密碼:");</p><p>  JPasswordField txtPwd = new JPasswordField(6);</p><p>  JLabel role = new JLabel("角色:");</p><p>  JComboBox cbrole = new JComboBox();</p>

73、<p>  JButton btnLogin = new JButton("登錄");</p><p>  JButton btncz = new JButton("重置");</p><p>  JButton btnCancel = new JButton("取消");</p><p> 

74、 JLabel imageLabel;</p><p>  Icon image;</p><p>  static int OK = 1;</p><p>  static int CANCEL = 0;</p><p>  int actionCode = 0;</p><p>  Connection con =

75、 null;</p><p>  Statement stmt = null;</p><p>  ResultSet rs = null;</p><p>  int qxian = 0;</p><p>  public DLFrame() {// 構(gòu)造方法</p><p>  super("登錄界面&q

76、uot;);</p><p>  p1 = new JPanel();</p><p>  p2 = new JPanel();</p><p>  p3 = new JPanel();</p><p>  cbrole.addItem("管理員");</p><p>  cbrole.addIte

77、m("用戶");</p><p>  image = new ImageIcon("D:\0 (1).jpg");</p><p>  imageLabel = new JLabel(image);</p><p>  p1.add(imageLabel);</p><p>  this.setLayo

78、ut(new FlowLayout());</p><p>  this.setBounds(500, 300, 346, 345);</p><p>  p2.setLayout(new GridLayout(4, 1));</p><p>  p2.add(userName);</p><p>  p2.add(txtUser);<

79、/p><p>  p2.add(password);</p><p>  p2.add(txtPwd);</p><p>  p2.add(role);</p><p>  p2.add(cbrole);</p><p>  p3.add(btnLogin);</p><p>  p3.add(bt

80、ncz);</p><p>  p3.add(btnCancel);</p><p>  this.add(p1);</p><p>  this.add(p2);</p><p>  this.add(p3);</p><p>  this.setResizable(false);</p><p&

81、gt;  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  this.show();</p><p>  btnLogin.addActionListener(this);</p><p>  cbrole.addItemListener(this);</p><p>

82、;  btncz.addActionListener(this);</p><p>  btnCancel.addActionListener(this);</p><p><b>  }</b></p><p>  public void connDB() { // 連接數(shù)據(jù)庫</p><p><b>  t

83、ry {</b></p><p>  Class.forName("com.mysql.jdbc.Driver");</p><p>  } catch (ClassNotFoundException e) {</p><p>  e.printStackTrace();</p><p><b>  

84、}</b></p><p><b>  try {</b></p><p>  con = DriverManager.getConnection(</p><p>  "jdbc:mysql://localhost/qyrs?useUnicode=true&characterEncoding=utf-8"

85、;, "root", "");</p><p>  stmt = con.createStatement();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b&g

86、t;</p><p><b>  }</b></p><p>  public void closeDB() // 關(guān)閉連接</p><p><b>  {</b></p><p><b>  try {</b></p><p>  stmt.close

87、();</p><p>  con.close();</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b><

88、/p><p>  public void itemStateChanged(ItemEvent e) {</p><p>  if (e.getStateChange() == ItemEvent.SELECTED) {</p><p>  JComboBox jcb = (JComboBox) e.getSource();</p><p>  

89、qxian = jcb.getSelectedIndex();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  Object source

90、 = e.getSource();</p><p>  String un = null;</p><p>  String pw = null;</p><p>  boolean success = false;// 用于判斷是否登錄成功</p><p>  if (source == btnLogin) {</p><

91、;p>  if (txtUser.getText().equals("") || txtPwd.getText().equals("")) {// 判斷是否輸入了用戶名和密碼</p><p>  JOptionPane.showMessageDialog(null, "登錄名和密碼不能為空!");</p><p><b

92、>  } else {</b></p><p>  this.connDB();</p><p><b>  try {</b></p><p>  rs = stmt.executeQuery("select * from user where user_des="</p><p>

93、;<b>  + qxian);</b></p><p>  while (rs.next()) {</p><p>  un = rs.getString("user_id").trim();</p><p>  pw = rs.getString("user_pwd").trim();</p&g

94、t;<p>  if (txtUser.getText().equals(un)) {</p><p>  if (txtPwd.getText().equals(pw)) {</p><p>  actionCode = OK;</p><p>  this.setVisible(false);</p><p>  if (q

95、xian == 0) {</p><p>  new MainUI();// 進入管理員界面</p><p><b>  }</b></p><p>  if (qxian == 1) {</p><p>  new MainUI1();</p><p><b>  }</b>

96、;</p><p>  success = true;</p><p><b>  break;</b></p><p><b>  } else {</b></p><p>  JOptionPane.showMessageDialog(null, "密碼錯誤!");</

97、p><p>  txtPwd.setText("");</p><p>  success = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p

98、><p>  if (!success) {</p><p>  JOptionPane.showMessageDialog(null, "登錄名錯誤!");</p><p>  txtUser.setText("");</p><p>  txtPwd.setText("");<

99、/p><p><b>  }</b></p><p>  } catch (SQLException e1) {</p><p>  e1.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b>&

100、lt;/p><p>  } else if (source == btncz) {</p><p>  txtUser.setText("");</p><p>  txtPwd.setText("");</p><p>  } else if (source == btnCancel) {</p&g

101、t;<p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  package qyrs1;</p><p>  i

102、mport java.sql.Connection;</p><p>  import java.sql.DriverManager;</p><p>  import java.sql.PreparedStatement;</p><p>  import java.sql.ResultSet;</p><p>  import java.

103、sql.Statement;</p><p>  import java.util.Vector;</p><p>  import javax.swing.JTable;</p><p>  public class Yhadmin {</p><p>  Connection con;</p><p>  Stri

104、ng sql;</p><p>  Statement statement;</p><p>  PreparedStatement pstmt;</p><p>  ResultSet rs;</p><p>  int result;</p><p>  public Yhadmin() { </p>

105、<p><b>  }</b></p><p>  public void dbConnect(){</p><p><b>  try {</b></p><p>  Class.forName("com.mysql.jdbc.Driver");// 加載驅(qū)動程序</p>

106、<p>  con = DriverManager.getConnection(</p><p>  "jdbc:mysql://localhost/qyrs?useUnicode=true&characterEncoding=utf-8", "root", "");</p><p>  }catch (Exc

107、eption ex) {</p><p>  System.out.println(ex);</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void dbClose(){</p><p><b> 

108、 try {</b></p><p>  //if(rs.next())rs.close();</p><p>  if(!con.isClosed()) con.close();</p><p>  }catch (Exception ex) {</p><p>  System.out.println(ex);</p

109、><p><b>  }</b></p><p><b>  }</b></p><p>  public void queryAll(Vector<Vector<String>> rowData){</p><p>  if(!rowData.isEmpty()) rowDat

110、a.clear();</p><p>  dbConnect();</p><p><b>  try {</b></p><p>  sql="SELECT user_id,user_pwd,user_des FROM user";</p><p>  pstmt = con.prepareStat

111、ement(sql);// 數(shù)據(jù)庫操作</p><p>  rs = pstmt.executeQuery();</p><p>  rsToRowData(rowData);</p><p>  }catch (Exception ex) {System.out.println(ex);} </p><p>  dbClo

112、se();</p><p><b>  }</b></p><p>  public void queryByuser_id(Vector<Vector<String>> rowData,String user_id){</p><p>  if(!rowData.isEmpty()) rowData.clear();&

113、lt;/p><p>  dbConnect();</p><p><b>  try {</b></p><p>  sql="SELECT user_id,user_pwd,user_des FROM user where user_id=?";</p><p>  pstmt = con.prepar

114、eStatement(sql);// 數(shù)據(jù)庫操作</p><p>  pstmt.setString(1, user_id);</p><p>  rs = pstmt.executeQuery();</p><p>  rsToRowData(rowData);</p><p>  }catch (Exception ex) {System

115、.out.println(ex);} </p><p>  dbClose();</p><p><b>  }</b></p><p>  public void rsToRowData(Vector<Vector<String>> rowData){</p><p><b>  t

116、ry</b></p><p><b>  {</b></p><p>  if (!rs.next()){}</p><p><b>  else {</b></p><p><b>  do{</b></p><p>  Vector<

117、;String> row=new Vector<String>();</p><p>  row.add(rs.getString("user_id"));</p><p>  row.add(rs.getString("user_pwd"));</p><p>  row.add(rs.getString(

118、"user_des"));</p><p>  //row.add(rs.getString("gzdate"));</p><p>  rowData.add(row);</p><p>  } while (rs.next());</p><p><b>  }</b>

119、;</p><p>  }catch(Exception ex) {</p><p>  System.out.println(ex);</p><p><b>  }</b></p><p><b>  }</b></p><p>  public int insert(

120、Vector<String> data){</p><p>  dbConnect();</p><p><b>  try {</b></p><p>  sql="insert into user values(?,?,?)";</p><p>  pstmt = con.prepar

121、eStatement(sql);// 數(shù)據(jù)庫操作</p><p>  pstmt.setString(1, data.get(0));</p><p>  pstmt.setString(2, data.get(1));</p><p>  pstmt.setString(3, data.get(2));</p><p>  //pstmt.

122、setString(4, data.get(3)); </p><p>  result = pstmt.executeUpdate(); </p><p>  }catch (Exception ex) {System.out.println(ex);}</p><p>  dbClose();</p><p>  return resu

123、lt;</p><p><b>  }</b></p><p>  public int update(Vector<String> data){</p><p>  dbConnect();</p><p><b>  try {</b></p><p>  s

124、ql="update user set user_pwd=?,user_des=? where user_id=?";</p><p>  pstmt = con.prepareStatement(sql);// 數(shù)據(jù)庫操作</p><p>  pstmt.setString(1, data.get(1));</p><p>  pstmt.se

125、tString(2, data.get(2));</p><p>  pstmt.setString(3, data.get(0)); </p><p>  result = pstmt.executeUpdate(); </p><p>  }catch (Exception ex) {System.out.println(ex);}</p>&l

126、t;p>  dbClose();</p><p>  return result;</p><p><b>  }</b></p><p>  public int delete(String user_id){</p><p>  dbConnect();</p><p><b>

127、;  try {</b></p><p>  sql="delete from user where user_id=?";</p><p>  pstmt = con.prepareStatement(sql);// 數(shù)據(jù)庫操作</p><p>  pstmt.setString(1, user_id);</p>&

128、lt;p>  result = pstmt.executeUpdate(); </p><p>  }catch (Exception ex) {System.out.println(ex);}</p><p>  dbClose();</p><p>  return result;</p><p><b>  }<

129、/b></p><p><b>  }</b></p><p>  package qyrs1;</p><p>  import java.awt.event.ActionEvent;</p><p>  import java.awt.event.ActionListener;</p><p

溫馨提示

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

評論

0/150

提交評論