![123.企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)----畢業(yè)設(shè)計(jì).doc_第1頁](http://file.renrendoc.com/FileRoot1/2019-7/16/b441de9f-9213-43ed-8693-3c0bf919694a/b441de9f-9213-43ed-8693-3c0bf919694a1.gif)
![123.企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)----畢業(yè)設(shè)計(jì).doc_第2頁](http://file.renrendoc.com/FileRoot1/2019-7/16/b441de9f-9213-43ed-8693-3c0bf919694a/b441de9f-9213-43ed-8693-3c0bf919694a2.gif)
![123.企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)----畢業(yè)設(shè)計(jì).doc_第3頁](http://file.renrendoc.com/FileRoot1/2019-7/16/b441de9f-9213-43ed-8693-3c0bf919694a/b441de9f-9213-43ed-8693-3c0bf919694a3.gif)
![123.企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)----畢業(yè)設(shè)計(jì).doc_第4頁](http://file.renrendoc.com/FileRoot1/2019-7/16/b441de9f-9213-43ed-8693-3c0bf919694a/b441de9f-9213-43ed-8693-3c0bf919694a4.gif)
![123.企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)----畢業(yè)設(shè)計(jì).doc_第5頁](http://file.renrendoc.com/FileRoot1/2019-7/16/b441de9f-9213-43ed-8693-3c0bf919694a/b441de9f-9213-43ed-8693-3c0bf919694a5.gif)
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1 1 頁頁 共共 4242 頁頁 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 題題 目:目: 企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)企業(yè)員工信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 系系 部:部: 計(jì)算機(jī)系 專專 業(yè):業(yè): 計(jì)算機(jī)應(yīng)用與維護(hù) 學(xué)學(xué) 號:號: 學(xué)生姓名:學(xué)生姓名: 指導(dǎo)教師:指導(dǎo)教師: 職職 稱:稱: 二二 oo 年年 月月 日日 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 2 2 頁頁 共共 4242 頁頁 畢業(yè)論文(設(shè)計(jì))任務(wù)書畢業(yè)論文(設(shè)計(jì))任務(wù)書 課題名稱:課題名稱:_ _ 企業(yè)員工管理系統(tǒng)企業(yè)員工管理系統(tǒng)_ 系系 部:部:_ _ 計(jì)算機(jī)系_ 專專 業(yè):業(yè):_ _ 計(jì)算機(jī)應(yīng)用與維護(hù)_ 姓姓 名:名:_ _ _ 學(xué)學(xué) 號:號:_ _ _ _ 指導(dǎo)教師:指導(dǎo)教師:_ _ _ 二二 oo 六六 年年 六六 月月 一一 日日 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3 3 頁頁 共共 4242 頁頁 一、畢業(yè)論文(設(shè)計(jì))的目的與要求:一、畢業(yè)論文(設(shè)計(jì))的目的與要求: 企業(yè)員工管理系統(tǒng)(pms(personnel-manager-system),它是用來 對企業(yè)工廠等員工進(jìn)行管理的一個(gè)桌面應(yīng)用程序,通過該系統(tǒng)使用者可 以輕松對員工的資料進(jìn)行輸入、查詢、修改,使得員工資料的管理更加 方便。本文旨在闡述如何用 java 語言開發(fā)基于桌面操作系統(tǒng)以及微軟 數(shù)據(jù)庫(microsoft office access)平臺的小型管理系統(tǒng),其重點(diǎn)是如 何連接數(shù)據(jù)庫以及如何對數(shù)據(jù)庫進(jìn)行操作。 二、畢業(yè)論文(設(shè)計(jì))的內(nèi)容:二、畢業(yè)論文(設(shè)計(jì))的內(nèi)容: 1.企業(yè)員工管理系統(tǒng)的源代碼設(shè)計(jì) 2.企業(yè)員工管理系統(tǒng)調(diào)試 3.企業(yè)員工管理系統(tǒng)的實(shí)現(xiàn) 4.課題實(shí)現(xiàn)環(huán)境 windows xp jdk 1.5.0_1 intellij idea 5.0 三、畢業(yè)論文(設(shè)計(jì))進(jìn)程的安排三、畢業(yè)論文(設(shè)計(jì))進(jìn)程的安排 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 4 4 頁頁 共共 4242 頁頁 序序 號號 論文(設(shè)計(jì))各階段名稱論文(設(shè)計(jì))各階段名稱日日 期期備備 注注 1 1 課題討論,需求分析(3.1-3.5) 2 2 課題的整體策劃和構(gòu)思(3.63.10) 3 3 課題所需資料的采集(3.113.15) 4 4 課題的實(shí)現(xiàn)與調(diào)試(3.164.30) 5 5 撰寫論文(5.1 6.1) 6 6 論文的答辯(6 月初) 四、任務(wù)執(zhí)行日期:四、任務(wù)執(zhí)行日期: 自自_ _年年_ _ _ _月月_ _ 日起,至日起,至_ _ _ _年年_ _ _ _月月_ _ _ _日止。日止。 學(xué)學(xué) 生(簽字)生(簽字)_ 指導(dǎo)教師(簽字)指導(dǎo)教師(簽字)_ 系系 主主 任(簽字)任(簽字)_ 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 5 5 頁頁 共共 4242 頁頁 摘要摘要 企業(yè)員工管理系統(tǒng)(pms(personnel-manager-system),它是用來對企 業(yè)工廠等員工進(jìn)行管理的一個(gè)桌面應(yīng)用程序,通過該系統(tǒng)使用者可以輕松 對員工的資料進(jìn)行輸入、查詢、修改,使得員工資料的管理更加方便。本 文旨在闡述如何用 java 語言開發(fā)基于桌面操作系統(tǒng)以及微軟數(shù)據(jù)庫 (microsoft office access)平臺的小型管理系統(tǒng),其重點(diǎn)是如何連接數(shù)據(jù) 庫以及如何對數(shù)據(jù)庫進(jìn)行操作。 關(guān)鍵詞:關(guān)鍵詞: java; 面向?qū)ο螅?microsoft office access;jdbc;dbms 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 6 6 頁頁 共共 4242 頁頁 目目 錄錄 1 引言3 1.1java 開發(fā)前奏3 1.2java 虛擬機(jī)及 java 跨平臺原理.4 2 系統(tǒng)分析6 2.1 可行性分析6 2.2 需求分析7 3 統(tǒng)設(shè)計(jì)8 3.1 結(jié)構(gòu)設(shè)計(jì)8 3.2 詳細(xì)設(shè)計(jì).12 4 討論.29 4.1 存在的問題及改進(jìn)思想.29 5 結(jié)束語.30 6 致謝.31 7 參考文獻(xiàn).31 8 附錄:程序 api 文檔.33 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 7 7 頁頁 共共 4242 頁頁 1 1 引言引言 1.1 java 開發(fā)前奏 sun 公司在 20 世紀(jì) 90 年代初開發(fā)電子消費(fèi)產(chǎn)品時(shí)覺得 c 和 c+有許多 不足,因而著手這一新型的編程語言,并于 1995 年正式推出 java。java 用于 www 后,因其在 www 上支持各種動(dòng)態(tài)和交互效果而迅速聞名。此后, 各種瀏覽器競相支持 java,各種 java 應(yīng)用也逐漸熱門。 java 是一種簡單易用、完全面向?qū)ο?、有平臺無關(guān)性、安全可靠的、 主要面向 internet 的開發(fā)工具。自從 1995 年正式問世以來,它的快速發(fā) 展已經(jīng)讓整個(gè) web 世界發(fā)生翻天覆地的變化。隨著 java servlet 的推出, java 在電子商務(wù)方面開始嶄露頭角,最新的 java server page(jsp)技術(shù) 的推出,更讓 java 成為基于 web 應(yīng)用程序的首選開發(fā)工具。 java 是第一套允許使用者將應(yīng)用程序通過 internet 從遠(yuǎn)端服務(wù)器傳輸 到本地計(jì)算機(jī)上并執(zhí)行的一種語言,是一種應(yīng)用程序提供者不需要知道使 用者的計(jì)算機(jī)硬件與軟件環(huán)境的語言。比爾蓋茨曾經(jīng)說過:“java 是最 卓越的程序設(shè)計(jì)語言” 。 相比其他語言,java 技術(shù)平臺具有明顯的優(yōu)越性。從最初建造 java 平臺開始,就考慮了安全性的問題,即其安全性是建立在 java 平臺的內(nèi)核 中的。其他的語言只是在軟件開發(fā)時(shí)才由用戶自行處理其安全問題,難免 會有安全漏洞。其次對于程序員來說,java 比其他人和一門語言都好用, 原因在于:java 有自動(dòng)回收垃圾的功能,java 增加了對象和變量的強(qiáng)制類 型檢查,java 還取消了指針。 目前,java 技術(shù)的架構(gòu)包括以下三個(gè)方面: j2ee(java 2 platform enterprise edition) 企業(yè)版,是以企業(yè) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 8 8 頁頁 共共 4242 頁頁 為環(huán)境而開發(fā)應(yīng)用程序的解決方案。目前已經(jīng)成為開發(fā)商創(chuàng)建電子商務(wù)的 事實(shí)標(biāo)準(zhǔn)。 j2se(java 2 platform standard edition) 標(biāo)準(zhǔn)版,是桌面開發(fā) 和低端商務(wù)應(yīng)用的解決方案。提供 corba 標(biāo)準(zhǔn)的 orb 技術(shù),結(jié)合 java 的 rmi 支持分布式交互操作環(huán)境。 j2me(java 2 platform micro edition) 小型版,是致力于消費(fèi) 產(chǎn)品和嵌入式設(shè)備的最佳解決方案。提供 http 高級 internet 協(xié)議,使移 動(dòng)電話能以 client/server 方式直接訪問 internet 全部信息,不同的 client 訪問不同的文件,此外還能訪問本地存儲區(qū),提供高效率的無線交 流。 java 技術(shù)又有以下廣泛的內(nèi)涵: 首先,它是一門編程語言,java 能夠創(chuàng)建所有其他傳統(tǒng)語言能編寫 的應(yīng)用程序,java 能夠?qū)應(yīng)毩⒌膽?yīng)用程序,運(yùn)行在裝有 java 虛擬機(jī)的操作 系統(tǒng)上。java 編寫的程序經(jīng)常用在 www 環(huán)境中(比如 applet、servlet 等) , applet 在瀏覽器中執(zhí)行不需要操作系統(tǒng) jvm 的支持。 其次,java 還是一個(gè)開發(fā)環(huán)境,java 技術(shù)包含一系列的工具:編譯 器,解釋器、文檔生成工具、打包工具等。另外由 java 2 sdk 提供的 jre(java runtime environment)還包括一個(gè)完整的 java 類集合,比如 基本語言類、gui 控件類等。 最后,java 也是一個(gè)運(yùn)行環(huán)境,我們可以從 sun 公司提供的 java 2 sdk 中來搭建運(yùn)行環(huán)境,而這一切都是免費(fèi)的。 1.2java 虛擬機(jī)及 java 跨平臺原理 java 虛擬機(jī)(jvm)是可運(yùn)行 java 字節(jié)碼的假想計(jì)算機(jī),java 的跨平 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 9 9 頁頁 共共 4242 頁頁 臺是相對于其他語言而言的,與其他程序相比,執(zhí)行的中間過程只是多了 一個(gè) java 虛擬機(jī),如下圖 1-2 所示: windows 下的 c 語言編譯過程 java 語言編譯過程 圖 1-2 c 與 java 的編譯過程 由圖 1.2 可見,只要實(shí)現(xiàn)了特種平臺下的解釋程序,java 字節(jié)碼就能 通過解釋程序在該平臺下運(yùn)行,這是 java 跨平臺的根本。當(dāng)前并不是在所 有的平臺下都有相應(yīng)的 java 解釋器程序,這也是 java 并不是在所有的平 臺下都能運(yùn)行的原因,它只能在已實(shí)現(xiàn)了 java 解釋器程序的平臺下運(yùn)行。 java 兼顧解釋性與編譯性語言的特點(diǎn),java 源文件轉(zhuǎn)換成 class 字節(jié) 碼文件的過程是編譯型的, class 在 操作系統(tǒng)上運(yùn)行的過程是解釋型的, java 虛擬機(jī)充當(dāng)了解釋器的作用。 c 原程序(擴(kuò)展名為.c) windows 可執(zhí)行文件 (擴(kuò)展名為.exe) c 編譯程序 windows 操作系統(tǒng) 執(zhí)行 java 原程序(擴(kuò)展名為.java) java 編譯程序 java 字節(jié)碼文件(擴(kuò)展名為.class) 執(zhí)行 java 虛擬機(jī) windows 下 的 java 字節(jié) 碼解釋程序 linux 下的 java 字節(jié)碼 解釋程序 能解釋 java 字節(jié) 碼的 cpu 執(zhí)行 linux 系統(tǒng) 執(zhí)行 其他系統(tǒng) 執(zhí)行 windows 系統(tǒng) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1010 頁頁 共共 4242 頁頁 2 2 系統(tǒng)分析系統(tǒng)分析 2.1 可行性分析 2.1.1 技術(shù)可行性 從目前市場上的操作系統(tǒng)和管理類的軟件來看,對于比較簡單的小型 管理系統(tǒng),一般使用 microsoft access 數(shù)據(jù)庫就已經(jīng)足夠了,它需要一個(gè) 良好的操作界面,方便、簡單的操作過程是很有必要的。 java 無疑是開發(fā)圖形界面的最佳選擇,豐富的類庫提供了足夠的控件 供開發(fā)人員使用,使得界面設(shè)計(jì)更是靈活多變,能夠設(shè)計(jì)出更多、更好的 用戶界面。 在 java 與數(shù)據(jù)庫連接方面,使用 jdbc 可以很容易的將 sql 語句傳到 任何關(guān)系型數(shù)據(jù)庫中,java 與 jdbc 的結(jié)合,使得程序員可以只寫一次數(shù)據(jù) 庫應(yīng)用軟件后就可以在任何一種數(shù)據(jù)庫系統(tǒng)上運(yùn)行。由于 java 語言具有健 壯性、安全、易使用、易理解和自動(dòng)下載到網(wǎng)絡(luò)等優(yōu)點(diǎn),因此它是數(shù)據(jù)庫 應(yīng)用的一個(gè)極好的基礎(chǔ)語言。jdbc 又實(shí)現(xiàn) java 應(yīng)用程序與各種不同數(shù)據(jù)庫 的對話,擴(kuò)充了 java 應(yīng)用程序的應(yīng)用范圍。 java 訪問數(shù)據(jù)庫有兩種情況,即 applet 和 application,但是他們訪 問數(shù)據(jù)庫的步驟大致相同,以下 java 訪問 access 數(shù)據(jù)庫的工作原理 圖 2-1-1.1 java 訪問數(shù)據(jù)庫的工作原理圖 java application 的最廣泛的用途是應(yīng)用于公司或企業(yè)內(nèi)部網(wǎng)上,所以 數(shù)據(jù)庫 java 應(yīng)用程序 jdbc 應(yīng)用編程接口 jdbc 驅(qū)動(dòng)程序管理器 jdbc-odbc 橋接驅(qū)動(dòng)程序 odbc 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1111 頁頁 共共 4242 頁頁 可以稱為商業(yè)網(wǎng)的應(yīng)用。這些 applications 可以訪問本地或是任何網(wǎng)絡(luò)上 的共享數(shù)據(jù)庫服務(wù)器,當(dāng)然它也能通過 internet 來訪問數(shù)據(jù)庫,圖 2-2 表 示了 java application 訪問網(wǎng)絡(luò)數(shù)據(jù)庫的情況。 2.1.2 經(jīng)濟(jì)可行性 該管理系統(tǒng)比較小,對機(jī)器的配置等要求比較低,界面友好,程序簡 單易用,容易上手,操作者不需要對計(jì)算機(jī)數(shù)據(jù)庫等有很深的了解、認(rèn)識。 2.2 需求分析 2.2.1 功能要求 從一開始,我的目標(biāo)就是建立一個(gè)企業(yè)人事管理系統(tǒng),功能不是很齊 全,主要實(shí)現(xiàn)以下幾項(xiàng)功能:用戶登錄,添加、修改、刪除注冊用戶信息; 添加新員工信息,員工人事調(diào)動(dòng)信息的錄入,查找、修改員工信息;重新 初始化數(shù)據(jù)庫等。 2.2.2 運(yùn)行要求 本程序的建議運(yùn)行環(huán)境為:windows 9x/2000/xp + jre 5.0 update 6 java 應(yīng)用程序 jdbc 驅(qū)動(dòng)程序 (可允許的下載) 本地硬盤資源 或其他資源 客戶端lan 或 internet數(shù)據(jù)庫服務(wù)器 圖 2-1-1.1 application 訪問網(wǎng)絡(luò)數(shù) 據(jù)庫據(jù)庫 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1212 頁頁 共共 4242 頁頁 3 3 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 3.1 結(jié)構(gòu)設(shè)計(jì) 3.1.1 主界面設(shè)計(jì) 良好的用戶界面對一個(gè)應(yīng)用程序有著非常重要的作用,通過它,程序 的用戶可以知道該如何進(jìn)行操作,它直接與用戶打交道,要簡單明了。 主程序界面設(shè)計(jì): 應(yīng)當(dāng)有一個(gè)菜單欄,不同的功能在不同的菜單中,用戶可以隨時(shí)找 到 程序?qū)⑺械墓δ芏技傻绞髽?biāo)右鍵中,用戶可以在不使用菜單的 情況下快速在不同的窗口之間切換 3.1.2 其它窗口設(shè)計(jì) 管理員登陸 數(shù)據(jù)庫的直接管理人員被稱為管理員,能對學(xué)生的資料進(jìn)行修改,只 有管理員登陸正確登陸后用戶才能對數(shù)據(jù)庫進(jìn)行修改。 輸入用戶賬號、密碼 選擇用戶的類型,這里的類型只有管理 員和普通用戶兩種 圖圖 3-1-1.1 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1313 頁頁 共共 4242 頁頁 管理用戶部分 管理用戶包括三兩個(gè)方面: 添加新用戶資料,包括用戶的賬號、密碼以及注冊的用戶的類型。 刪除用戶,刪除已經(jīng)存在的用戶,從賬號欄選擇要?jiǎng)h除的賬戶。 修改用戶,管理員可以修改登陸用戶的密碼,以及用戶的權(quán)限等。 圖圖 3-1-2-2.13-1-2-2.1 新員工資料輸入部分 企業(yè)中有新員工加入的時(shí)候我們應(yīng)當(dāng)添加員工的資料,程序自動(dòng)根據(jù) 數(shù)據(jù)庫中已有的員工的編號的自動(dòng)為新員工編號,員工的這個(gè)編號在數(shù)據(jù) 庫中是唯一的,自始至終都是不可以更改的。 圖圖 3-1-2-1 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1414 頁頁 共共 4242 頁頁 圖圖 3-1-2-33-1-2-3 人事調(diào)動(dòng)管理部分 當(dāng)員工因?yàn)樯?、調(diào)動(dòng)、退休等原因離開公司的時(shí)候,為了能掌握員 職工所有動(dòng)向以及在以后能及時(shí)查找到該員工,該部分用于記錄員工的動(dòng) 向。 圖圖 3-1-2-43-1-2-4 員工信息查找修改部分 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1515 頁頁 共共 4242 頁頁 員工加入公司后其個(gè)人資料難免會發(fā)生改變,面對這種情況我們需要 及時(shí)地對員工的信息進(jìn)行更改,這個(gè)更改工程我們應(yīng)該能對員工的所有資 料能一幕了然,然后再根據(jù)需求進(jìn)行更改;要查找員工的調(diào)動(dòng)信息,要直 觀的列出要查找的員工的每次調(diào)動(dòng)的時(shí)間和最終去向,以方便能夠及時(shí)找 到該員工。 圖圖 3-1-2-53-1-2-5 3.1.3 數(shù)據(jù)庫的組成 數(shù)據(jù)庫是該系統(tǒng)的核心,它是存儲企業(yè)員工信息資料以及企業(yè)部門資 料的地方,本程序的數(shù)據(jù)庫包括以下幾個(gè)方面: 對登陸用戶管理員信息存儲的數(shù)據(jù)庫,這里面應(yīng)當(dāng)包括登陸用戶的 賬號、密碼以及該用戶對軟件操作的權(quán)限等信息。 對員工信息存儲的數(shù)據(jù)庫,這里面應(yīng)當(dāng)包括員工基本資料、員工的 調(diào)動(dòng)情況等資料。 存放基本部門信息的數(shù)據(jù)庫,這些基本的部門信息在程序啟動(dòng)或窗 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1616 頁頁 共共 4242 頁頁 口被打開的時(shí)候可能會用到他們 程序的數(shù)據(jù)庫存放在該程序的當(dāng)前目錄下,該數(shù)據(jù)庫一共包括有六兩 個(gè)程序要用到的表: system 用于存放該程序登陸用戶的詳細(xì)資料 worker 用于存放員工學(xué)生的基本資料 change 用于存放員工人事調(diào)動(dòng)信息 department 用于存儲各個(gè)部門信息 duty 用于存儲所有員工職務(wù)信息 education 用于存儲學(xué)歷信息 當(dāng)程序?yàn)閳?zhí)行的時(shí)候數(shù)據(jù)庫中只有 department、duty、education 這 三個(gè)表,其他三個(gè)表在程序第一次運(yùn)行的時(shí)候會由程序自動(dòng)創(chuàng)建。 具體數(shù)據(jù)庫圖(如圖 3-1-3 所示) 圖 3-1-3 數(shù)據(jù)庫表 3.2 詳細(xì)設(shè)計(jì) 3.2.1 流程圖與功能圖 系統(tǒng)流程圖 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1717 頁頁 共共 4242 頁頁 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 1818 頁頁 共共 4242 頁頁 程序啟動(dòng) 加載 config.xml 設(shè)置 判斷是否是第一次運(yùn)行 初始化數(shù)據(jù)庫 初始化管理員 用戶登陸 否 是 賬號是否正確 是 連接數(shù)據(jù)庫 登陸次數(shù) programe comment : 0 0 create table worker (idw varchar(50) not null,namew varchar(20), sexw varchar(5),birthw varchar(30),deptw varchar(10), dutyw varchar(10),eduw varchar(10),professw varchar(15), addrw varchar(100),telew varchar(25),emailw varchar(60) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 2626 頁頁 共共 4242 頁頁 create table change (idw varchar(50) not null,namew varchar(20), timew varchar(50),containw varchar(50), demow varchar(100) insert into system(username,userpasswd,usertype) values(admin,21232f297a57a5a743894a0e4a801fc3,管理員 ) create table system(username varchar(30) not null, userpasswd varchar(50) not null,usertype varchar(10) not null) 該文件中存儲了三個(gè)程序運(yùn)行時(shí)初始化數(shù)據(jù)庫的時(shí)候使用的 sql 語句,程 序需要初始化數(shù)據(jù)庫的時(shí)候就將從該文件中取出需要語句。另外 first_or_not 是指程序運(yùn)行的次數(shù),initdatabase 指初始數(shù)據(jù)庫的次數(shù), 這兩個(gè)變量的初始值都是 0,程序運(yùn)行時(shí)先判斷這兩個(gè)值,如果都是 0 說明 程序是第一次運(yùn)行,程序會自行初始化數(shù)據(jù)庫,創(chuàng)建系統(tǒng)必須的表。 管理員登陸,檢測用戶賬號密碼是否正確 while(rs.next() try name=rs.getstring(“username“); 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 2727 頁頁 共共 4242 頁頁 password=rs.getstring(“userpasswd“); type=rs.getstring(“usertype“); if(username.equals(name) break; catch (sqlexception e) e.printstacktrace(); 添加系統(tǒng)管理員,使用 statement 對象對數(shù)據(jù)庫表進(jìn)行操作,該對象實(shí) 現(xiàn)對表記錄的更新、插入、刪除等操作。在添加用戶前要檢查用戶名是否 存在。 源代碼: try if(statetemp!=null) int line = statetemp.executeupdate(“insert into system (username,userpasswd,usertype) values (“ + info0 +“,“+ encode.md5(info2) +“,“+info4+“)“); if(line=1) system.out.println(“成功添加賬號為:“+info0+“ 新用 戶!“); 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 2828 頁頁 共共 4242 頁頁 joptionpane.showmessagedialog(managerjinternalframe,“成功添加 賬號為:“+info0+“ 新用戶!“,“提示“, joptionpane.information_message); catch (sqlexception e1) /例外處理 管理登陸用戶的賬號密碼,包括更新用戶密碼和刪除用戶 * 更新用戶密碼 try if(statetemp!=null) int line = statetemp.executeupdate(“update system set userpasswd=“+ encode.md5(info2) +“,usertype=“+ info4 +“ + “where username=“+ info0 +“); if(line=1) system.out.println(“成功更新名為:“+info0+“ 的信息 !“); joptionpane.showmessagedialog(managerjinternalframe,“成功更新 名為:“+info0+“的信息!“,“提示 “,joptionpane.information_message); catch (sqlexception e1) /例外處理 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 2929 頁頁 共共 4242 頁頁 * 刪除用戶 try if(statetemp!=null) int line=statetemp.executeupdate(“delete from system where username=“+ info0 +“); if(line=1) system.out.println(“成功刪除賬號為:“+info0+“的用戶! “); joptionpane.showmessagedialog(managerjinternalframe,“成功刪除 賬號為:“+info0+“的用戶!“,“提示 “,joptionpane.information_message); catch (sqlexception e1) /例外處理 員工信息管理包括三部分,分別是輸入新員工的基本資料、輸入員工的 調(diào)動(dòng)信息、員工信息的查詢修改。這三個(gè)方面的信息都分別放置在一個(gè) string 類型的數(shù)組中,這個(gè)數(shù)組分別從員工信息管理三部分相應(yīng)的類方法 中取得。 * 輸入新員工的基本資料,并存儲倒數(shù)據(jù)庫中,數(shù)據(jù)庫的更新語句如下: 更新 worker 表: int line = statetemp.executeupdate(“insert into worker (idw,namew,sexw,birthw,deptw,dutyw,eduw,professw,addrw,telew,em ailw) values(“ + newworker0 + “,“ + “ + newworker1 + “,“ 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3030 頁頁 共共 4242 頁頁 + “ + newworker2 + “,“ + “ + newworker3 + “,“ + “ + newworker4 + “,“ + “ + newworker5 + “,“ + “ + newworker6 + “,“ + “ + newworker7 + “,“ + “ + newworker8 + “,“ + “ + newworker9 + “,“ + “ + newworker10 + “)“ ); 更新 change 表: line = statetemp.executeupdate(“insert into change (idw,namew,timew,containw,demow) values(“+ “ + newworker0 + “,“ + “ + newworker1 + “,“+ “ + newworker12 + “,“ + “ + newworker11 +“,“ + “)“); 這里的 newworker 數(shù)組是由 addnew 類中獲得的,里面記錄了所有新員工的 信息。該類不但要更新 worker 表,還要更新 change 表。 * 輸入員工的調(diào)動(dòng)信息,與上面的輸入新員工的基本資料相似,不同的是 sql 語句 insert 的參數(shù)由 change 類中取得。該類實(shí)現(xiàn)了 caretlistener 接 口,為 idtextfield 添加該事件,當(dāng)里面的內(nèi)容沒改變一次就觸發(fā)一次 caretupdate()方法。當(dāng)輸入的員工編號存在的時(shí)候,程序?qū)T工的信息取 出并放在相應(yīng)的組件當(dāng)中。 * 員工信息的查詢修改,該方法同輸入員工的調(diào)動(dòng)信息相同,也實(shí)現(xiàn)了 caretlistener 接口,其作用和輸入員工的調(diào)動(dòng)信息相同。該部分使用了 jtable 組件,為了能及時(shí)更新 table 的顯示,自己需要?jiǎng)?chuàng)建 mytablemodel 類,該類繼承了 abstracttablemodel 類,需要實(shí)現(xiàn) abstracttablemodel 類中所有未實(shí)現(xiàn)的方法。 public class mytablemodel extends abstracttablemodel 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3131 頁頁 共共 4242 頁頁 private object p; private string n; public mytablemodel(string contains,string columnname) p = contains; n = columnname; public int getcolumncount() return n.length; public int getrowcount() return p.length; public string getcolumnname(int col) return ncol; public object getvalueat(int row, int col) return prowcol; public class getcolumnclass(int c) return getvalueat(0, c).getclass(); public boolean iscelleditable(int rowindex, int columnindex) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3232 頁頁 共共 4242 頁頁 return true; /* public void setvalueat(object value, int row, int col) prowcol = value; firetablecellupdated(row, col); */ 密碼的安全性 程序中注冊的登錄用戶的密碼不能以明文的形式存儲,那樣很不安全, 所以數(shù)據(jù)庫中存儲的密碼文件要是加密后的密文,這個(gè)程序里選擇使用 md5 加密用戶密碼。在 encode 類中實(shí)現(xiàn) md5 方法。java 實(shí)現(xiàn) md5 加密的代碼如 下: public class encode public static string md5(string passwd) char hexchars = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f; try byte bytes = passwd.getbytes(); messagedigest md = messagedigest.getinstance(“md5“); md.update(bytes); bytes = md.digest(); int j = bytes.length; char chars = new charj * 2; 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3333 頁頁 共共 4242 頁頁 int k = 0; for (byte b : bytes) charsk+ = hexcharsb 4 charsk+ = hexcharsb return new string(chars); catch (exception e) return null; 3.2. 5 錯(cuò)誤處理 程序運(yùn)行后難免會有輸入錯(cuò)誤,程序中出錯(cuò)可以幫助我們很快的找到 出錯(cuò)地點(diǎn),程序中數(shù)據(jù)庫方面的異常主要有 classnotfoundexception 和 sqlexception,創(chuàng)建程序主界面方面則有只 exception,使用這些對象的 printstacktrace()方法可以找到程序出錯(cuò)的地方和出錯(cuò)原因。 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3434 頁頁 共共 4242 頁頁 4 4 討論討論 4.1 存在的問題及改進(jìn)思想 本程序的編寫歷時(shí)一個(gè)多月,在 windows xp jdk 1.5.0_1 平臺上 測試通過,基本上實(shí)現(xiàn)了預(yù)期的目的,但功能還很不完善。鑒于本人精力 水平有限,時(shí)間倉促,錯(cuò)誤與不足之處在所難免,以待后續(xù)開發(fā)中不斷改 進(jìn)和完善。 在后續(xù)開發(fā)中,準(zhǔn)備從以下幾方面著手: 增加動(dòng)態(tài)信息分布功能,允許員工通過網(wǎng)絡(luò)查詢自己的資料,并且進(jìn) 行確認(rèn)。 增強(qiáng)數(shù)據(jù)查詢功能,在關(guān)鍵字查詢的基礎(chǔ)上增加分類查詢。 總之,本程序編寫不是一個(gè)終點(diǎn),而是一個(gè)起點(diǎn)。java 在不斷發(fā)展,它 的強(qiáng)項(xiàng)并不是使用 j2se 來開發(fā)桌面應(yīng)用程序,而更多的應(yīng)用是使用 j2ee 開發(fā)網(wǎng)絡(luò)應(yīng)用程序,盡管它在開發(fā)桌面程序上占有很多優(yōu)勢。java 博大精 深,現(xiàn)在唯有不斷學(xué)習(xí)和吸收,才能趕上時(shí)代的進(jìn)步。 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3535 頁頁 共共 4242 頁頁 5 5 結(jié)束語結(jié)束語 做什么事情都要有個(gè)好的開頭,一個(gè)應(yīng)用程序在開發(fā)之前的需求分析 工作影響整個(gè)開發(fā)過程。從需求分析入手,做好各項(xiàng)準(zhǔn)備工作程序各 子功能的確定、數(shù)據(jù)庫的設(shè)計(jì)等,然后選擇開發(fā)環(huán)境、開發(fā)工具,一步一 步,循序漸進(jìn),最終把一個(gè)好的企業(yè)人事管理系統(tǒng)展現(xiàn)在各位用戶的眼前。 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3636 頁頁 共共 4242 頁頁 6 6 致謝致謝 我的畢業(yè)設(shè)計(jì)工作是在 xxx 老師指導(dǎo)下進(jìn)行的。從選題、設(shè)計(jì)、編程、 調(diào)試、撰寫論文等環(huán)節(jié),都是在 xxx 老師精心指導(dǎo)下完成。苗連強(qiáng)老師工 作認(rèn)真、治學(xué)嚴(yán)謹(jǐn)。在畢業(yè)設(shè)計(jì)期間,不僅使我學(xué)習(xí)到了知識,而且還得 到了綜合鍛煉和提高。同時(shí),也更加懂得了如何做一個(gè)合格的大學(xué)生去面 對未來。在此,我十分感謝 xxx 老師的精心指導(dǎo)! 同時(shí)我也感謝在三年中教過我的所有老師!感謝幫助我的所有同學(xué)! 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3737 頁頁 共共 4242 頁頁 7 7 參考文獻(xiàn) 1. 張孝祥 java 就業(yè)培訓(xùn)教程 清華大學(xué)出版社,2003 2. 侯捷 java 編程思想(第二版) 機(jī)械工業(yè)出版社 2002 3. 王路 j2se 核心 api 參考與實(shí)例 中國水利水電出版社,2002 4. 李東升 jdbc 數(shù)據(jù)庫編程與 j2ee. 電子工業(yè)出版社,2004 5. 竇魏 java 軟件開發(fā)(第二版) 人民郵電出版社,2004 6. 殷兆麟 java 網(wǎng)絡(luò)編程. 國防工業(yè)出版社,2001 7. 林志揚(yáng) 精通 java swing 程序設(shè)計(jì) 中國鐵道出版社 2002 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3838 頁頁 共共 4242 頁頁 8 8 附錄:程序附錄:程序 apiapi 文檔文檔 1 1、 packagepackage dwldwl classclass addnewaddnew java.lang.object dwl.addnewdwl.addnew public class addnewaddnew extends java.lang.object 實(shí)現(xiàn)添加新員工的界面,并且可以獲得員工的信息 構(gòu)造方法摘要構(gòu)造方法摘要 addnewaddnew(java.sql.connection conn) 初始化界面,并從數(shù)據(jù)庫中取出需要的信息 方法摘要方法摘要 java.lang.stringgetinformation getinformation()得到要添加的新員工的信息 javax.swing.jpanelgetpanel getpanel()得到包含有組件的面板容器 2 2、 packagepackage dwldwl classclass changechange java.lang.object dwl.changedwl.change public class changechange extends java.lang.object implements javax.swing.event.caretlistener, javax.swing.event.changelistener 該類實(shí)現(xiàn)創(chuàng)建人事變動(dòng)的窗口 構(gòu)造方法摘要構(gòu)造方法摘要 changechange(java.sql.connection conn) 初始化界面,并從數(shù)據(jù)庫中取出需要的信息 方法摘要方法摘要 void caretupdatecaretupdate(javax.swing.event.caretevent e) 本類實(shí)現(xiàn)了 caretlistener 接口,該方法重寫接口 中為實(shí)現(xiàn)的 caretupdate()方法, 該方法用于查找員工信息 java.lang.stringgetchangeinfo getchangeinfo() 取得人事變更窗口中的所有的信息 javax.swing.jpanelgetpanel getpanel() 得到含有組件的容器 void statechangedstatechanged(javax.swing.event.changeevent e) 本類實(shí)現(xiàn)了 changelistener 接口,該方法重寫接口 中為實(shí)現(xiàn)的 statechanged()方法 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 3939 頁頁 共共 4242 頁頁 3 3、 packagepackage dwldwl classclass connectdbconnectdb java.lang.object dwl.connectdbdwl.connectdb public class connectdbconnectdb extends java.lang.object 該類實(shí)現(xiàn)連接數(shù)據(jù)庫的界面 構(gòu)造方法摘要構(gòu)造方法摘要 connectdbconnectdb() 方法摘要方法摘要 boolean chackloginchacklogin(java.lang.string useinfo, java.sql.connection conn) 該方法實(shí)現(xiàn)檢查登陸用戶帳號密碼是否正確 java.lang.stringgetlogininfo getlogininfo() 得到登陸用戶的資料 private java.lang.stringgetname getname() 得到登陸用戶的用戶名 javax.swing.jpanelgetpanel getpanel() 得到該類的窗口中組件的布局界面 private java.lang.stringgetpassword getpassword() 得到登陸用戶的密碼 private java.lang.stringgettype gettype() 用于獲得登陸用戶的類型 4 4、 packagepackage dwldwl classclass getdatagetdata java.lang.object dwl.getdatadwl.getdata public class getdatagetdata extends java.lang.object 該類用于為每個(gè)需要數(shù)據(jù)庫中數(shù)據(jù)的窗口取出數(shù)據(jù) 構(gòu)造方法摘要構(gòu)造方法摘要 getdatagetdata() getdatagetdata(java.sql.connection conn) 方法摘要方法摘要 java.lang.stringgetcolumnname getcolumnname() 得到 change 表的列名 java.lang.string getcontainsgetcontains(java.sql.resultset rschange) 把記錄集中的內(nèi)容轉(zhuǎn)化為二維數(shù)組 intgetid getid() 取得指定要添加的新員工的 id java.util.vector getsystemgetsystem(java.lang.string tablename) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 4040 頁頁 共共 4242 頁頁 得到指定數(shù)據(jù)庫表的內(nèi)容 java.util.vector getsysteminfogetsysteminfo(java.lang.string column) 得到賬號密碼表指定列的所有內(nèi)容 5 5、 packagepackage dwldwl classclass mainmain java.lang.object dwl.maindwl.main public class mainmain extends java.lang.object implements java.awt.event.actionlistener 主程序,創(chuàng)建程序主界面以及啟動(dòng)程序 構(gòu)造方法摘要構(gòu)造方法摘要 mainmain() 創(chuàng)建程序主窗口 方法摘要方法摘要 private voidabout about() 本程序的說明 void actionperformedactionperformed(java.awt.event.actionevent ae) 在菜單欄上顯示時(shí)間 private voidaddnewworker addnewworker() 添加新員工信息 private voidchangeworker changeworker() 員工的人事變動(dòng) private voidconnectdatabase connectdatabase() 連接并打開數(shù)據(jù)庫 private boolean initdatabaseinitdatabase(int reason) 初始化數(shù)據(jù)庫,reason 為 0 說明程序運(yùn)行時(shí)檢查是否需 要初始化數(shù)據(jù)庫,是否初始化取決于 propertities 中的 count 屬 性 private booleaninitproperties initproperties() 獲得系統(tǒng)屬性,這些系統(tǒng)屬性包括一些常量 private voidjbinit jbinit() 初始化界面,創(chuàng)建菜單、工具欄 private voidlogindatabase logindatabase() 顯示連接數(shù)據(jù)庫窗口,并且建立與數(shù)據(jù)庫的連 接 private voidlogoutdatabase logoutdatabase() 斷開登陸用戶與數(shù)據(jù)庫的連接 static voidmain main(java.lang.string args) 程序的入口 private voidmanageruser manageruser() 管理登陸用戶 private voidpopmenu popmenu(java.awt.event.mouseevent mouse) 彈出鼠標(biāo)右鍵菜單 private voidsearchworker searchworker() 查詢更改員工信息 private void setallbuttonfalsesetallbuttonfalse(boolean setflag) 設(shè)置菜單欄、工具欄、彈出菜單中的按鈕的狀態(tài) 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文) 第第 4141 頁頁 共共 4242 頁頁 6 6、 packagepackage dwldwl classclass manageusermanageuser java.lang.object dwl.manageuserdwl.manageuser public class manageusermanageuser extends java.lang.object implements ja
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粵人版地理八年級上冊《第二節(jié) 工業(yè)》聽課評課記錄1
- 八年級數(shù)學(xué)上冊 12.3 角的平分線的性質(zhì) 第2課時(shí) 角的平分線的判定聽評課記錄 新人教版
- 指導(dǎo)青年教師開展課題研究協(xié)議書(2篇)
- 電力傳輸合同(2篇)
- 人教版數(shù)學(xué)八年級下冊《閱讀與思考海倫-秦九韶公式》聽評課記錄1
- 【2022年新課標(biāo)】部編版七年級上冊道德與法治7.2 愛在家人間 聽課評課記錄
- 小學(xué)數(shù)學(xué)-六年級下冊-4-3-5 用比例解決問題 聽評課記錄
- 華東師大版八年級上冊數(shù)學(xué)聽評課記錄《13.4尺規(guī)作圖(2)》
- 湘教版數(shù)學(xué)八年級上冊1.3.3《整數(shù)指數(shù)冪的運(yùn)算法則》聽評課記錄1
- 蘇科版數(shù)學(xué)九年級上冊第2章《弧長及扇形的面積》聽評課記錄
- 2025年魯泰集團(tuán)招聘170人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 企業(yè)員工食堂管理制度框架
- 《辣椒主要病蟲害》課件
- 電力溝施工組織設(shè)計(jì)-電纜溝
- 2024年煤礦安全生產(chǎn)知識培訓(xùn)考試必答題庫及答案(共190題)
- 《法律援助》課件
- 小兒肺炎治療與護(hù)理
- GB/T 36547-2024電化學(xué)儲能電站接入電網(wǎng)技術(shù)規(guī)定
- 學(xué)校物業(yè)管理投標(biāo)書范本
- 《高處作業(yè)安全》課件
評論
0/150
提交評論