




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEword文檔可自由復(fù)制編輯《數(shù)據(jù)庫》實(shí)習(xí)報(bào)告課題:人事管理系統(tǒng)課程名稱:數(shù)據(jù)庫原理及應(yīng)用學(xué)生姓名:學(xué)生學(xué)號(hào):所在專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)所在班級(jí):指導(dǎo)老師:成績:目錄設(shè)計(jì)總說明 31.人事管理系統(tǒng)概述 41.1研究背景 41.2意義及目的開發(fā) 42.系統(tǒng)需求分析 52.1開發(fā)環(huán)境和軟件 52.2系統(tǒng)設(shè)計(jì)與功能分析 53.數(shù)據(jù)庫設(shè)計(jì) 63.1系統(tǒng)概念結(jié)構(gòu)設(shè)計(jì) 63.1.1系統(tǒng)功能模塊圖 63.1.2數(shù)據(jù)流程圖 73.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì) 83.3物理結(jié)構(gòu)設(shè)計(jì) 103.4數(shù)據(jù)庫關(guān)系圖 114.系統(tǒng)模塊設(shè)計(jì)概述 144.1用戶登錄模塊 144.2系統(tǒng)管理模塊 144.3信息管理模塊 144.4信息查詢模塊 154.5其他模塊 155.系統(tǒng)運(yùn)行與測試 165.1用戶登錄 165.2系統(tǒng)管理 165.3信息管理 175.4信息查詢 195.5其他模塊 205.5.1關(guān)于 205.5.2計(jì)算器 205.5.3退出 205.6優(yōu)缺點(diǎn)自我評(píng)價(jià) 216.課程設(shè)計(jì)總結(jié) 227.附錄(代碼) 23參考文獻(xiàn) 36設(shè)計(jì)總說明設(shè)計(jì)概況名稱:人事管理系統(tǒng)用途:學(xué)校等機(jī)構(gòu)功能:實(shí)現(xiàn)對員工信息的管理與維護(hù)等功能設(shè)計(jì)說明學(xué)生學(xué)籍管理系統(tǒng),可用于學(xué)校等機(jī)構(gòu)的學(xué)生信息管理,查詢,更新與維護(hù),使用方便,易用性強(qiáng),圖形界面清晰明了。該軟件用java語言編寫,用SQLServer2005數(shù)據(jù)庫作為后臺(tái)的數(shù)據(jù)庫進(jìn)行信息的存儲(chǔ),用SQL語句完成添加,查詢,修改,刪除的操作。用ODBC驅(qū)動(dòng)實(shí)現(xiàn)前臺(tái)Java與后臺(tái)SQL數(shù)據(jù)庫的連接。Java語言跨平臺(tái)性強(qiáng),可以在windows,linux,ubuntu等系統(tǒng)下使用,方便簡單,安全性好。SQLServer2005數(shù)據(jù)庫高效安全,兩者結(jié)合可相互利用各自的優(yōu)勢。該系統(tǒng)實(shí)現(xiàn)的大致功能:系統(tǒng)功能的基本要求:員工各種信息的輸入,包括員工的基本信息、學(xué)歷信息、婚姻狀況信息、職稱等。員工各種信息的修改;對于轉(zhuǎn)出、辭職、辭退、退休員工信息的刪除;按照一定的條件,查詢、統(tǒng)計(jì)符合條件的員工信息;至少應(yīng)該包括每個(gè)員工詳細(xì)信息的查詢、按婚姻狀況查詢、按學(xué)歷查詢、按工作崗位查詢等,至少應(yīng)該包括按學(xué)歷、婚姻狀況、崗位、參加工作時(shí)間等統(tǒng)計(jì)各自的員工信息;對查詢、統(tǒng)計(jì)的結(jié)果打印輸出。3.本系統(tǒng)只實(shí)現(xiàn)了基本操作功能,對于一些更大型、屬性更多、關(guān)系更復(fù)雜的企業(yè),便利性和安全性仍有不足,使用過程中造成的不便還請諒解!1.人事管理系統(tǒng)概述1.1研究背景人事管理系統(tǒng)是企業(yè)管理系統(tǒng)中不可缺少的重要組成部分,它的內(nèi)容對于企業(yè)的決策者和管理者來說都至關(guān)重要,所以人事檔案管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長,將產(chǎn)生大量的文件何數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。1.2意義及目的開發(fā)作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對人事檔案信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事檔案管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣一套管理軟件成為很有必要的事情。本系統(tǒng)針對以上缺點(diǎn)能夠極大地提高學(xué)生信息管理的效率,也是科學(xué)化、正規(guī)化的管理,與世界接軌的重要條件。所以如何自動(dòng)高效地管理信息是這些年來許多人所研究的。一個(gè)健全的人事管理系統(tǒng)是一個(gè)學(xué)?;蚰硞€(gè)集體單位正常運(yùn)作的必要條件,使人事管理方便快捷而又清晰,面對各種不同種類的信息,需要合理的數(shù)據(jù)庫結(jié)構(gòu)來保存數(shù)據(jù)信息以及有效地程序結(jié)構(gòu)來支持各種數(shù)據(jù)的操作的執(zhí)行。實(shí)現(xiàn)集體單位管理系統(tǒng)化,規(guī)范化和自動(dòng)化,從而達(dá)到提高人事管理的工作效率和工作質(zhì)量的目的。2.系統(tǒng)需求分析2.1開發(fā)環(huán)境和軟件本學(xué)籍采用Java語言編寫前臺(tái)程序,后臺(tái)采用SQLServer2005軟件管理數(shù)據(jù)庫,調(diào)試和運(yùn)行皆由EclipseSDKv3.5.0完成。2.2系統(tǒng)設(shè)計(jì)與功能分析系統(tǒng)設(shè)計(jì)的基本思想:用戶登錄模塊系統(tǒng)管理模塊1)密碼修改2)重新登錄3)添加/刪除用戶4)退出系統(tǒng)信息管理模塊1)對學(xué)校里所有員工和院系進(jìn)行統(tǒng)一標(biāo)號(hào),將每一位員工的信息保存在員工檔案記錄中2)對新聘的員工,將其信息加入到員工檔案記錄中;對于轉(zhuǎn)出、退休、辭職、辭退的員工,將其信息從員工檔案記錄中刪除3)當(dāng)員工信息發(fā)生變動(dòng)時(shí),修改員工檔案記錄中相應(yīng)的屬性信息查詢模塊查詢員工信息及院系信息其他模塊1)計(jì)算器2)關(guān)于系統(tǒng)的說明3)退出系統(tǒng)功能的基本要求:員工各種信息的輸入,包括員工的基本信息、學(xué)歷信息、婚姻狀況信息、職稱等。員工各種信息的修改;對于轉(zhuǎn)出、辭職、辭退、退休員工信息的刪除;按照一定的條件,查詢、統(tǒng)計(jì)符合條件的員工信息;至少應(yīng)該包括每個(gè)員工詳細(xì)信息的查詢、按婚姻狀況查詢、按學(xué)歷查詢、按工作崗位查詢等,至少應(yīng)該包括按學(xué)歷、婚姻狀況、崗位、參加工作時(shí)間等統(tǒng)計(jì)各自的員工信息;對查詢、統(tǒng)計(jì)的結(jié)果打印輸出。3.數(shù)據(jù)庫設(shè)計(jì)3.1系統(tǒng)概念結(jié)構(gòu)設(shè)計(jì)3.1.1系統(tǒng)功能模塊圖人事管理系統(tǒng)人事管理系統(tǒng)系統(tǒng)管理信息管理信息查詢用戶登錄其他院系信息管理員工信息管理員工信息查詢院系信息查詢關(guān)于計(jì)算器退出密碼修改重新登錄添加/刪除用戶退出系統(tǒng)添加修改刪除添加修改刪除3.1.2數(shù)據(jù)流程圖3.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)畫出系統(tǒng)E-R圖員工員工姓名院系編號(hào)工資編號(hào)崗位編號(hào)名族學(xué)歷婚姻狀況性別職稱編號(hào)身份證號(hào)聯(lián)系方式住址圖4員工實(shí)體圖院系院系院系編號(hào)號(hào)院系名稱圖5院系實(shí)體圖管理員管理員用戶名密碼編號(hào)圖6管理員實(shí)體圖員工院系院系(1)員工(n)管理員(1)屬于管理管理員ID管理密碼員工編號(hào)姓名性別婚姻狀況民族學(xué)歷崗位編號(hào)工資聯(lián)系電話住址身份證號(hào)院系編號(hào)院系名稱職稱編號(hào)圖7各實(shí)體之間聯(lián)系圖(總體E-R圖)3.3物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫物理設(shè)計(jì)階段的任務(wù)是根據(jù)具體計(jì)算機(jī)系統(tǒng)的特點(diǎn),給給定的數(shù)據(jù)庫系統(tǒng)確定合理的存儲(chǔ)結(jié)構(gòu)和存取方法。所謂的“合理”主要有兩個(gè)含義:一個(gè)是要使設(shè)計(jì)出的物理數(shù)據(jù)庫占用較少的存儲(chǔ)空間,另一個(gè)對數(shù)據(jù)庫的操作具有盡可能高的速度。主要體現(xiàn)在索引和存儲(chǔ)結(jié)構(gòu)的設(shè)置。(1)建立索引1.對員工信息表在屬性列:員工編號(hào)上建立聚集索引,在屬性列:身份證號(hào)建立唯一索引;2.對院系信息表在屬性列:院系編號(hào)上建立聚集索引;(2)存儲(chǔ)過程1.創(chuàng)建不帶參數(shù)的存儲(chǔ)過程:查詢在信息學(xué)院的員工的編號(hào)和姓名createprocedures2asselect員工編號(hào),員工姓名from員工信息where院系編號(hào)=(select院系編號(hào)from院系信息where院系名稱='信息學(xué)院')goexecs22.創(chuàng)建帶參數(shù)的存儲(chǔ)過程:根據(jù)用戶輸入的員工編號(hào),輸出其姓名和學(xué)歷createprocedures1(@員工編號(hào)int,@員工姓名nchar(10)output,@學(xué)歷nchar(10)output)asselect@學(xué)歷=學(xué)歷,@員工姓名=員工姓名from員工信息where員工編號(hào)=@員工編號(hào)godeclare@員工姓名nchar(10),@學(xué)歷nchar(10)execs1'2',@員工姓名output,@學(xué)歷outputselect'員工姓名'=@員工姓名,'學(xué)歷'=@學(xué)歷(3)存儲(chǔ)結(jié)構(gòu)確定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu),包括確定關(guān)系,索引,日志,備份等的存儲(chǔ)安排及存儲(chǔ)結(jié)構(gòu),以及確定系統(tǒng)存儲(chǔ)參數(shù)的配置。將日志文件和數(shù)據(jù)庫(表,索引等)分別放在不同的磁盤,可以改進(jìn)系統(tǒng)的性能,提高系統(tǒng)的安全性,所以,系統(tǒng)應(yīng)將日志文件存放在不同的磁盤上。3.4數(shù)據(jù)庫關(guān)系圖關(guān)系模型(1)崗位信息表(崗位編號(hào),崗位名稱):其中崗位編號(hào)為主鍵;(2)用戶表(管理員ID,密碼):管理員ID為主鍵;(3)員工信息表(員工編號(hào),員工姓名,性別,院系編號(hào),崗位編號(hào),職稱編號(hào),婚姻狀況,民族,學(xué)歷,聯(lián)系方式,住址,身份證號(hào),工資):其中員工編號(hào)為主鍵,院系編號(hào)、崗位編號(hào)、職稱編號(hào)均為外鍵;(4)院系信息表(院系編號(hào),院系名稱):其中院系編號(hào)為主鍵;(5)職稱信息表(職稱編號(hào),職稱名稱):其中職稱編號(hào)為主鍵。數(shù)據(jù)庫表(1)崗位信息表:(2)用戶表:(3)員工信息表:(4)院系信息表:(5)職稱信息表:4.系統(tǒng)模塊設(shè)計(jì)概述4.1用戶登錄模塊該模塊用于管理員的登錄,后臺(tái)數(shù)據(jù)庫的用戶表中給出了三個(gè)管理員ID和相對應(yīng)的密碼,只有輸入正確方可進(jìn)入系統(tǒng)。4.2系統(tǒng)管理模塊功能如下圖所示:(具體見系統(tǒng)運(yùn)行與測試此模塊)4.3信息管理模塊功能如下圖所示:1)對學(xué)校里所有員工和院系進(jìn)行統(tǒng)一標(biāo)號(hào),將每一位員工的信息保存在員工檔案記錄中2)對新聘的員工,將其信息加入到員工檔案記錄中;對于轉(zhuǎn)出、退休、辭職、辭退的員工,將其信息從員工檔案記錄中刪除3)當(dāng)員工信息發(fā)生變動(dòng)時(shí),修改員工檔案記錄中相應(yīng)的屬性(見系統(tǒng)運(yùn)行與測試此模塊)4.4信息查詢模塊功能如下圖所示:(具體見系統(tǒng)運(yùn)行與測試此模塊)4.5其他模塊此模塊主要用于顯示此系統(tǒng)的運(yùn)行環(huán)境、開發(fā)環(huán)境等信息,考慮到管理員可能要用到數(shù)值、統(tǒng)計(jì)等計(jì)算等,我們還提供了計(jì)算器。5.系統(tǒng)運(yùn)行與測試5.1用戶登錄5.2系統(tǒng)管理5.3信息管理5.4信息查詢5.5其他模塊5.5.1關(guān)于5.5.2計(jì)算器5.5.3退出主界面左邊一列最下一個(gè)即為退出按鈕。5.6優(yōu)缺點(diǎn)自我評(píng)價(jià)優(yōu)點(diǎn):Java語言跨平臺(tái)性強(qiáng),可以在windows,linux,ubuntu等系統(tǒng)下使用,方便簡單,安全性好。SQLServer2005數(shù)據(jù)庫高效安全,兩者結(jié)合可相互利用各自的優(yōu)勢;此系統(tǒng)界面整潔大方,功能較強(qiáng)大,根據(jù)界面的布局提示,用戶可快速方便地操作,考慮到用戶可能要進(jìn)行統(tǒng)計(jì)和數(shù)值運(yùn)算,更加體現(xiàn)了人性化的設(shè)計(jì)構(gòu)思;后臺(tái)的數(shù)據(jù)庫設(shè)計(jì)基本符合3NF的要求,表格設(shè)計(jì)了五張,每張表的屬性都根據(jù)實(shí)際情況定義類型和相應(yīng)的約束,基本涵蓋了一個(gè)小型企業(yè)需要的信息,表和表之間的關(guān)系(外鍵與主鍵的建立)也基本符合實(shí)際要求,為了便于快速查詢信息,建立了聚集索引和唯一索引,也建立了有參數(shù)和無參數(shù)的存儲(chǔ)過程;此系統(tǒng)只能供有權(quán)限的管理員登錄與操作,提高了安全性。缺點(diǎn):對于員工信息表,當(dāng)時(shí)忘了加“出生日期”這一重要屬性,接近尾聲時(shí)才發(fā)現(xiàn),可是由于時(shí)間緊迫,沒有修改;五張表之間,崗位信息表和職稱信息表與其他表的聯(lián)系不是太密切,應(yīng)當(dāng)直接加入屬性,也是由于時(shí)間緊迫,沒有修改,照成了數(shù)據(jù)冗余;建立的存儲(chǔ)過程在界面代碼中未調(diào)用,用戶只是管理員類型,沒有設(shè)置具體的權(quán)限,使得其他人員無法操作;功能強(qiáng)大的同時(shí),代碼相應(yīng)比較多,雖然注釋了不少,可對于普通用戶來說,看起來還是比較不方便,這些代碼也照成了一定程度上的資源浪費(fèi);對于員工信息的查詢,只能直接顯示院系、職稱、崗位編號(hào),無法顯示相應(yīng)的信息。6.課程設(shè)計(jì)總結(jié)在我看來,數(shù)據(jù)庫課程設(shè)計(jì)主要的目標(biāo)是利用課程中學(xué)到的數(shù)據(jù)庫知識(shí)和技術(shù)較好的開發(fā)設(shè)計(jì)出數(shù)據(jù)庫應(yīng)用系統(tǒng),去解決各行各業(yè)信息化處理的要求。通過這次課程設(shè)計(jì),可以鞏固我們對數(shù)據(jù)庫基本原理和基礎(chǔ)理論的理解,掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的基本方法,進(jìn)一步提高我們綜合運(yùn)用所學(xué)知識(shí)的能力。當(dāng)我們先確定下來要做的題目時(shí),并不是急著著手寫程序。而是大家一起商量這個(gè)系統(tǒng)概述、系統(tǒng)目標(biāo)、系統(tǒng)需求、業(yè)務(wù)流程分析、數(shù)據(jù)流程分析和數(shù)據(jù)詞典,做好這些工作以后,我們各個(gè)組員作了一些分工。在主要功能方面我主要負(fù)責(zé)實(shí)現(xiàn)添加和刪除用戶、用戶密碼修改的功能的實(shí)現(xiàn),相對于而言,我的工作比較輕松,其中加入了一個(gè)計(jì)算器類,主要負(fù)責(zé)計(jì)數(shù),這是一個(gè)人性化的考慮在里面。我們的分工不同,遇到的困難自然也就不一樣了,我們平時(shí)都是獨(dú)立做自己的那一部分,但是會(huì)及時(shí)將自己的進(jìn)展告知組員,以便一個(gè)的系統(tǒng)的完美完成。當(dāng)然我們也會(huì)集中起來探討一下各自遇到的問題,大家共同想辦法解決,搜索資料、借閱大量書本、向其他同學(xué)請教等等都是我們解決問題的方式,最終在大家的努力下,不太完美卻是很認(rèn)真完成的系統(tǒng)誕生了!辛苦在這時(shí)顯得是那么蒼白無力,興奮的盡頭淹沒了所有的辛苦。以前也做過課程設(shè)計(jì),但是這次的課程設(shè)計(jì)涉及到的開發(fā)工具不一樣了,最主要的不一樣體現(xiàn)在我們要用到兩個(gè)開發(fā)平臺(tái),我們不僅要做出前臺(tái)數(shù)據(jù)庫,還要與后臺(tái)開發(fā)的數(shù)據(jù)庫進(jìn)行連接,這是一個(gè)全新的認(rèn)識(shí):我們不可能將大量的數(shù)據(jù)直接放在代碼之中。對于SQL2005可以熟練的應(yīng)用,主要得益于老師要求我們平時(shí)做的一些實(shí)驗(yàn),所以在后臺(tái)的設(shè)計(jì)和操作沒有花費(fèi)太多的時(shí)間,雖然平時(shí)抱怨實(shí)驗(yàn)太多,這個(gè)時(shí)候還是不會(huì)忘記感謝老師平時(shí)的嚴(yán)格要求。后臺(tái)的開發(fā)對我來說真的是空前的挑戰(zhàn),首先涉及到的Java語言是在老師的要求下,自己在圖書館借書學(xué)得,絕對的半桶水,困難很大也很多,在組員的幫助下也算成功的克服了那些困難,得到一個(gè)圓滿的結(jié)局!當(dāng)我遇到錯(cuò)誤的時(shí)候,感到很受打擊;值得欣慰的是,在組員的幫助和大量參考書的查閱下,最終成功了!這次課程設(shè)計(jì)讓我懂得遇到困難永不放棄的重要性,我知道了團(tuán)隊(duì)合作的重要性,我領(lǐng)悟了只有堅(jiān)持不懈才會(huì)取得勝利.7.附錄(代碼)關(guān)于類:主要功能:顯示人事管理系統(tǒng)的一些相關(guān)信息源代碼:packagea;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassAboutextendsJInternalFrame{ JLabellabel=newJLabel("運(yùn)行環(huán)境:Windows"); JLabellabe2=newJLabel("開發(fā)環(huán)境:JAVA,SQLServer"); JLabellabe3=newJLabel("制作人員:郝中奎、馬家權(quán)、童孟丹"); JLabellabe4=newJLabel("對應(yīng)學(xué)號(hào):201011621407;201011621421;201011621322"); publicAbout(){ setTitle("關(guān)于"); Containercon=getContentPane();con.setLayout(newGridLayout(4,1));con.add(label);con.add(labe2);con.add(labe3);con.add(labe4);con.setBackground(Color.white); setResizable(false); setSize(380,220); setVisible(true); setClosable(true); } }添加和刪除用戶類:主要功能:用于添加和刪除管理員的帳號(hào)信息源代碼:packagea;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPasswordField;importjavax.swing.JTextField;publicclassAddDeleteUserextendsjavax.swing.JInternalFrame{ privateJButtonbutACancel,butDCancel,butDelete,butOk;privateJComboBoxcbUserName;privateJLabeljLabel1,jLabel2,jLabel3,jLabel4,jLabel5;privateJPasswordFieldpas1,pas2,pas3;privateJTextFieldtxtname;publicAddDeleteUser(){initComponents();this.setVisible(true);this.setClosable(true);this.setSize(268,350);}privatevoidinitComponents(){ jLabel1=newJLabel();jLabel2=newJLabel();jLabel3=newJLabel();txtname=newJTextField();pas1=newJPasswordField();pas2=newJPasswordField();butOk=newJButton();butACancel=newJButton();jLabel4=newJLabel();cbUserName=newJComboBox();jLabel5=newJLabel();pas3=newJPasswordField();butDelete=newJButton();butDCancel=newJButton();getContentPane().setLayout(null);jLabel1.setText("新用戶名:");getContentPane().add(jLabel1);jLabel1.setBounds(30,30,70,20);jLabel2.setText("輸入密碼:");getContentPane().add(jLabel2);jLabel2.setBounds(30,60,70,18);jLabel3.setText("確認(rèn)密碼:");getContentPane().add(jLabel3);jLabel3.setBounds(30,90,60,18);getContentPane().add(txtname);txtname.setBounds(100,30,130,24);getContentPane().add(pas1);pas1.setBounds(100,60,130,24);getContentPane().add(pas2);pas2.setBounds(100,90,130,24);butOk.setText("添加");getContentPane().add(butOk);butOk.setBounds(80,130,70,27);butACancel.setText("清空");getContentPane().add(butACancel);butACancel.setBounds(160,130,70,27);jLabel4.setText("已有用戶名:");getContentPane().add(jLabel4);jLabel4.setBounds(30,180,80,18);getContentPane().add(cbUserName);cbUserName.setBounds(100,180,130,24);jLabel5.setText("密碼:");getContentPane().add(jLabel5);jLabel5.setBounds(30,210,60,18);getContentPane().add(pas3);pas3.setBounds(100,216,130,24);butDelete.setText("刪除");getContentPane().add(butDelete);butDelete.setBounds(79,260,70,27);butDCancel.setText("清空");getContentPane().add(butDCancel);butDCancel.setBounds(160,260,70,27);//將所有用用戶名讀出來Database.joinDB();Stringsql="select*from用戶";try{ if(Database.query(sql)){ while(Database.rs.next()){ Stringname=Database.rs.getString("管理員ID"); cbUserName.addItem(name); } } }catch(Exceptione){}//為添加和取消按鈕加事件butOk.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ if(txtname.getText().equals("")){ newJOptionPane().showMessageDialog(null,"用戶名不能為空!"); } elseif(pas1.getText().equals("")){ newJOptionPane().showMessageDialog(null,"密碼不能為空!"); } elseif(pas1.getText().equals(pas2.getText())){ Stringsql="insert用戶values('"+txtname.getText()+"','"+pas1.getText()+"')"; try{ if(Database.executeSQL(sql)){ newJOptionPane().showMessageDialog(null,"添加成功!"); cbUserName.addItem(txtname.getText()); } } catch(Exceptionea){} } } });butACancel.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ txtname.setText(""); pas1.setText(""); pas2.setText(""); } });//為刪除和取消按鈕加事件butDelete.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringname=""+cbUserName.getSelectedItem(); Stringsql="select*from用戶where管理員ID='"+name+"'"; try{ if(Database.query(sql)){ Database.rs.next(); Stringpas=pas3.getText(); Stringpassword=Database.rs.getString("密碼"); System.out.println(password); if(pas.equals(password)){ Stringsdelete="deletefrom用戶where管理員ID='"+name+"'"; if(Database.executeSQL(sdelete)){ newJOptionPane().showMessageDialog(null,"刪除成功!");pas3.setText("");cbUserName.removeAllItems();Stringsql1="select*from用戶"; if(Database.query(sql1)){ while(Database.rs.next()){ Stringname1=Database.rs.getString("管理員ID"); cbUserName.addItem(name1); } } } } else{ newJOptionPane().showMessageDialog(null,"密碼不正確!"); } } } catch(Exceptionel){ System.out.println(el); } } });butDCancel.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ pas3.setText(""); } });}}用戶修改密碼類:主要功能:用于修改相應(yīng)管理員帳號(hào)的密碼源代碼:packagea;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassAmendPasswordextendsJInternalFrame{JLabellbe1=newJLabel("修改密碼");JPanelp=newJPanel();publicAmendPassword(){ setTitle("修改密碼");p.add(lbe1);AmendPanelpanel=newAmendPanel();ContainercontentPane=getContentPane();contentPane.add(p,"North");contentPane.add(panel,"Center");setBounds(100,100,280,260);this.setClosable(true);setVisible(true);}}classAmendPanelextendsJPanel{JButtonb1,b2;JLabellbe2,lbe3,lbe4,lbe5;JPasswordFieldpas1,pas2,pas3;JComboBoxtf;publicAmendPanel(){lbe2=newJLabel("用戶名:");lbe3=newJLabel("輸入舊密碼:");lbe4=newJLabel("輸入新密碼:");lbe5=newJLabel("確定新密碼:");tf=newJComboBox();pas1=newJPasswordField();pas2=newJPasswordField();pas3=newJPasswordField();b1=newJButton("確定");b2=newJButton("清空");add(lbe2);lbe2.setBounds(16,10,90,25);this.add(tf);tf.setBounds(100,10,120,25);add(lbe3);lbe3.setBounds(16,45,90,25);add(pas1);pas1.setBounds(100,45,120,25);add(lbe4);lbe4.setBounds(16,80,80,25);add(pas2);pas2.setBounds(100,80,120,25);add(lbe5);lbe5.setBounds(16,115,80,25);add(pas3);pas3.setBounds(100,115,120,25);add(b1);b1.setBounds(100,160,60,30);add(b2);b2.setBounds(160,160,60,30);setLayout(null);//將所有用用戶名讀出來Database.joinDB();Stringsql="select*from用戶";try{ if(Database.query(sql)){ while(Database.rs.next()){ Stringname=Database.rs.getString("管理員ID"); tf.addItem(name); } } }catch(Exceptione){}//為確定取消按鈕加事件b1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringname=""+tf.getSelectedItem(); System.out.println(name); Stringsql="select*from用戶where管理員ID='"+name+"'"; System.out.println(sql); try{ if(Database.query(sql)){ Database.rs.next(); Stringps1=pas1.getText(); Stringpassword=Database.rs.getString("密碼"); if(ps1.equals(password)){ if(pas2.getText().equals(pas3.getText())){ Stringsupdate="update用戶set密碼='"+pas3.getText()+"'where管理員ID='"+name+"'"; Database.executeSQL(supdate); newJOptionPane().showMessageDialog(null,"密碼更改成功!"); } else{ newJOptionPane().showMessageDialog(null,"兩次密碼不同!"); } } else{ newJOptionPane().showMessageDialog(null,"舊密碼不正確!"); } } } catch(Exceptionel){ System.out.println(el); } } });b2.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ pas1.setText(""); pas2.setText(""); pas3.setText(""); } });}}計(jì)算器類主要功能:計(jì)算功能源代碼:packagea;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.sql.*;publicclassCalculatorextendsJInternalFrameimplementsActionListener{ privateJTextFielddisplayText=newJTextField(); privateJButtonbuttonTag=newJButton(); privateJButtonbuttonBackspace=newJButton("Backspace"); privateJButtonbuttonCe=newJButton("CE"); privateJButtonbuttonc=newJButton("C"); privateJButton[]button=newJButton[24]; privateString[]keys={"MC","7","8","9","/","sqrt","MR","4","5","6","*","%", "MS","1","2","3","-","1/x","M+","0","+/-",".","+","="}; privateStringnumStr1=""; privateStringnumStr2=""; privateStringnumsave=""; privatecharop; privatebooleanfirstInput=true; privatebooleanoperatorTag1=true; privatebooleanoperatorTag2=true; publicCalculator(){ setTitle("計(jì)算器"); setSize(345,265); Containerpane=getContentPane(); pane.setLayout(null);displayText.setHorizontalAlignment(JTextField.RIGHT); displayText.setSize(320,30); displayText.setLocation(10,10); pane.add(displayText); buttonTag.setSize(60,30); buttonTag.setLocation(10,50); pane.add(buttonTag); buttonBackspace.setSize(110,30); buttonBackspace.setLocation(90,50); buttonBackspace.setForeground(Color.red); buttonBackspace.addActionListener(this); pane.add(buttonBackspace); buttonCe.setSize(65,30); buttonCe.setLocation(200,50); buttonCe.setForeground(Color.red); pane.add(buttonCe); buttonc.setSize(65,30); buttonc.setLocation(265,50); buttonc.setForeground(Color.red); buttonc.addActionListener(this); pane.add(buttonc); intx,y; x=10; y=85; for(intind=0;ind<24;ind++){ button[ind]=newJButton(keys[ind]); button[ind].addActionListener(this); button[ind].setLocation(x,y); if(ind%6==0||ind%6==5) {button[ind].setSize(60,30); x=x+60;} else {button[ind].setSize(50,30); x=x+50;} if(ind%6==0||ind%6==4||ind%24==23) button[ind].setForeground(Color.red); else button[ind].setForeground(Color.blue); pane.add(button[ind]); if((ind+1)%6==0) { x=10; y=y+30; } } setVisible(true); this.setClosable(true); } publicvoidactionPerformed(ActionEvente){ StringresultStr=""; Stringstr=String.valueOf(e.getActionCommand()); charch=str.charAt(0); if(str.equals("0")||str.equals("1")||str.equals("2")||str.equals("3")||str.equals("4")|| str.equals("5")||str.equals("6")||str.equals("7")||str.equals("8")|| str.equals("9")||str.equals(".")){ if(firstInput){ numStr1=numStr1+ch; displayText.setText(numStr1); } else{ numStr2=numStr2+ch; displayText.setText(numStr2); } } elseif(str.equals("+")||str.equals("-")||str.equals("*") ||str.equals("/")&operatorTag2){ if(numStr2.equals("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影院線建設(shè)與運(yùn)營合作協(xié)議
- 機(jī)械零件加工協(xié)議
- 人體細(xì)胞獲得氧氣的過程課件+-2024-2025學(xué)年北師大版生物七年級(jí)下冊
- 建設(shè)工程居間合同協(xié)議書
- 全包私人裝修合同
- 分期付款買手房合同
- 外貿(mào)銷售合同分享
- 弱電裝修工程合同
- 無子女財(cái)產(chǎn)離婚協(xié)議書
- 電商平臺(tái)交易退款規(guī)定協(xié)議
- 做一個(gè)專業(yè)的班主任課件
- 盟史簡介12.10.18課件
- 供應(yīng)鏈的三道防線:需求預(yù)測、庫存計(jì)劃、供應(yīng)鏈執(zhí)行
- 大學(xué)生勞動(dòng)教育教程全套PPT完整教學(xué)課件
- GB/T 985.1-2008氣焊、焊條電弧焊、氣體保護(hù)焊和高能束焊的推薦坡口
- GB/T 15970.7-2000金屬和合金的腐蝕應(yīng)力腐蝕試驗(yàn)第7部分:慢應(yīng)變速率試驗(yàn)
- 制度經(jīng)濟(jì)學(xué):05團(tuán)隊(duì)生產(chǎn)理論
- 作文格子紙(1000字)
- 刻度尺讀數(shù)練習(xí)(自制)課件
- 四年級(jí)下冊美術(shù)課件 4紙卷魔術(shù)|蘇少版
- 七年級(jí)數(shù)學(xué)蘇科版下冊 101 二元一次方程 課件
評(píng)論
0/150
提交評(píng)論