軟件工程課程設(shè)計(jì)試驗(yàn)室設(shè)備管理系統(tǒng)_第1頁
軟件工程課程設(shè)計(jì)試驗(yàn)室設(shè)備管理系統(tǒng)_第2頁
軟件工程課程設(shè)計(jì)試驗(yàn)室設(shè)備管理系統(tǒng)_第3頁
軟件工程課程設(shè)計(jì)試驗(yàn)室設(shè)備管理系統(tǒng)_第4頁
軟件工程課程設(shè)計(jì)試驗(yàn)室設(shè)備管理系統(tǒng)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選實(shí)驗(yàn)室設(shè)備管理系統(tǒng)目錄一、 系統(tǒng)的開發(fā)背景與目標(biāo) 1、開發(fā)背景2、開發(fā)目標(biāo)二、可行性分析與初步開發(fā)計(jì)劃1、技術(shù)可行性2、經(jīng)濟(jì)可行性3、法律可行性4、初步開發(fā)計(jì)劃三、 需求分析1、系統(tǒng)功能列表2、數(shù)據(jù)流圖3、數(shù)據(jù)字典4、數(shù)據(jù)加工的描述5、性能需求四、系統(tǒng)設(shè)計(jì)1、系統(tǒng)結(jié)構(gòu)圖精選2、輸出設(shè)計(jì)3、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)4、模塊詳細(xì)設(shè)計(jì)五、課程設(shè)計(jì)總結(jié)六、代碼七、 參考文獻(xiàn)一、系統(tǒng)的開發(fā)背景與開發(fā)目標(biāo)1、系統(tǒng)的開發(fā)背景現(xiàn)代社會的校園網(wǎng)絡(luò)環(huán)境,已經(jīng)大大發(fā)生了變化,除了個(gè)人筆記本電腦,各種計(jì)算機(jī)、 語音實(shí)驗(yàn)室機(jī)房也成為了使用頻率頗高的場所,我們不能僅僅把它理解為提供上機(jī)的環(huán)境, 而是應(yīng)該完善此處的各種相關(guān)工作,

2、如考勤,收費(fèi)等,同時(shí)最大限度的降低機(jī)房的運(yùn)營成本,提高使用率。通過建設(shè)“實(shí)驗(yàn)室設(shè)備管理系統(tǒng)”,運(yùn)用先進(jìn)的技術(shù)手段和設(shè)備,滿足以上應(yīng)用需求。實(shí)驗(yàn)室設(shè)備管理系統(tǒng)是一個(gè)功能比較完善的數(shù)據(jù)管理軟件,具有數(shù)據(jù)操作方便高效迅速等優(yōu)點(diǎn),具有很好的可移植性,可在WINDOWS系列等操作系統(tǒng)上使用。2、系統(tǒng)的開發(fā)目標(biāo)a提高人員的工作效率,提高設(shè)備的利用率b實(shí)驗(yàn)室的設(shè)備管理更加便捷有效c減少設(shè)備管理的費(fèi)用,節(jié)省開支d提高決策效率e能夠準(zhǔn)確的控制生產(chǎn)精選二、可行性分析與初步開發(fā)計(jì)劃1技術(shù)可行性對系統(tǒng)的簡要描述在原來的手工系統(tǒng)之上創(chuàng)建,利用計(jì)算機(jī)實(shí)現(xiàn)對實(shí)驗(yàn)室設(shè)備的管理,包括借出、購入、修理儀器、歸還儀器等各種功能采用

3、建議系統(tǒng)可能帶來的影響在建立所建議系統(tǒng)時(shí),預(yù)期會帶來的影響包括以下幾個(gè)方面。(1)對設(shè)備的影響由于所建議系統(tǒng)是基于 WINDOWS操作系統(tǒng)和互聯(lián)網(wǎng)的,所以需要配備足夠符合以上列出 的各種軟硬件條件的計(jì)算機(jī)和通信線路。系統(tǒng)失效后,服務(wù)器端需要利用備份的數(shù)據(jù)庫恢復(fù)數(shù)據(jù)信息,要求要有足夠的數(shù)據(jù)備份空間。(2)對軟件的影響需要落實(shí)是否有符合本報(bào)告所列出的正版的軟件環(huán)境,如果沒有則需要購買。(3)對用戶單位機(jī)構(gòu)的影響投入使用前還需改進(jìn)現(xiàn)有的管理模式。(4)對開發(fā)的影響管理員只要輸入簡單的數(shù)據(jù)就可以完成設(shè)備管理。(5)對經(jīng)費(fèi)開支的影響除了需要支付開發(fā)單位的有關(guān)費(fèi)用外,每年還需要一定的運(yùn)行維護(hù)費(fèi)用(見經(jīng)濟(jì)可

4、行性分 析)。1.3技術(shù)可行性評價(jià)本系統(tǒng)是一個(gè)基于局域網(wǎng)、互聯(lián)網(wǎng)和 WINDOWS操作的系統(tǒng),現(xiàn)有技術(shù)已較為成熟,利用現(xiàn)有技術(shù)完全可以實(shí)現(xiàn)系統(tǒng)開發(fā)目標(biāo)。 同時(shí),開發(fā)期限較為寬裕,精選預(yù)計(jì)可以在規(guī)定期限內(nèi)完成開發(fā)任務(wù)。2經(jīng)濟(jì)可行性支出(1) 一次性支出1)系統(tǒng)開發(fā)、建立費(fèi)用3.4萬元。其中:本系統(tǒng)開發(fā)期為3個(gè)月,需要開發(fā) 人員3人(不一定都是參加滿3個(gè)月)。根據(jù)軟件系統(tǒng)的規(guī)模估算,開發(fā)工作量 月為3人2個(gè)月即6人月,每人月的人工費(fèi)按5000員計(jì)算,開發(fā)費(fèi)用為3萬元。 實(shí)驗(yàn)室設(shè)備等基本信息建立需要 2人1個(gè)月即2人月,每人月的人工費(fèi)用按2000 員計(jì)算,需0.4萬元。2)硬件設(shè)備費(fèi)共4.6萬元,其

5、中:微機(jī)1臺約0.6萬元;服務(wù)器1臺及網(wǎng)絡(luò) 等設(shè)備費(fèi)4萬元。3)外購開發(fā)工具、軟件環(huán)境費(fèi)用共 4萬元。4)其他費(fèi)用共2萬元。一次性支出總費(fèi)用:14萬元。(2)經(jīng)常性費(fèi)用主要是系統(tǒng)的運(yùn)行費(fèi)用,假設(shè)本系統(tǒng)運(yùn)行期10年,每年的運(yùn)行費(fèi)用(包括系統(tǒng)維修、設(shè)備維護(hù)等)5萬元,按年利率5%計(jì)算運(yùn)行費(fèi)用見表A-1 系統(tǒng)投資成本總額為:14+38.6082=52.6082萬元效益假設(shè)投入本系統(tǒng),效率可以提高 50%,以現(xiàn)有的工作人員10人計(jì)算,可減精選精選5人,每人每月平均工資按2500元計(jì)算,每年節(jié)約人員工資 5X12X 0.25=15萬元/年。按年利率5%計(jì)算,效益計(jì)算如下表。系統(tǒng)收益總額為:115.827

6、9萬元。收益/投資比在10年期內(nèi),系統(tǒng)總成本 52.6082萬元,系統(tǒng)總收益 115.8279萬元。投資回報(bào)率:X%(即為 52.6082=15 /(1+j)+15/ (1+j) 2+15/ (1+j) 10 的方程解 ix 100)純收益:115.8279- 52.6082= 63.21975萬元從經(jīng)濟(jì)上考慮,開發(fā)本系統(tǒng)完全可行的。投資回收周期投資回收期:3+ ( 52.6082- 40.8489 /12.34083.95 年敏感性分析生命周期為10年,需要30人左右。3法律可行性法律因素侵犯專利權(quán):有 侵犯版權(quán):有為了能夠解決在使用實(shí)驗(yàn)設(shè)備出現(xiàn)的一些問題,需要建立一個(gè)安全完善的管理平臺,能

7、 夠使設(shè)備信息能夠快速完整地自動(dòng)記錄在案,并自動(dòng)更新用戶使用可行性適用于實(shí)驗(yàn)室設(shè)備管理,系統(tǒng)操作簡單,便于管理人員使用。4初步開發(fā)計(jì)劃精選任務(wù)計(jì)劃時(shí)間人員開發(fā)背景與目標(biāo)2天可行性分析3天需求分析10天系統(tǒng)設(shè)計(jì)20天編他15天調(diào)試5天三、需求分析1、系統(tǒng)功能列表(Function List)帝求標(biāo)R需求名稱需求來源需求描述需求等級1統(tǒng)計(jì)查詢用戶查詢設(shè)備的信息 如購買日期,型 號類別低2維修用戶維修的情況,維 修員,維修日期, 維修狀況中3購買用戶購買的情況和信 息,購買日期,價(jià) 格高4報(bào)廢用戶報(bào)廢設(shè)備的信 息,報(bào)廢日期和 型號數(shù)量高2、數(shù)據(jù)流圖0層數(shù)據(jù)流圖:精選登錄信息 r實(shí)驗(yàn)室設(shè)備 管理系統(tǒng)設(shè)

8、備管理員無效登錄信息一各種操作 處理結(jié)果 *審核信息審核結(jié)果上級領(lǐng)導(dǎo)1層數(shù)據(jù)流圖:登錄信息無效登錄信息2層數(shù)據(jù)流圖:精選3、數(shù)據(jù)字典1數(shù)據(jù)流條目登陸信息輸入:設(shè)備管理員輸出:身份驗(yàn)證描述:登陸信息=用戶名+密碼+登陸權(quán)限 查詢信息輸入:合法人員對設(shè)備的查詢操作輸出:設(shè)備信息表 描述:查詢信息=設(shè)備名|型號|類別|購置日期維修信息輸入:所需維修設(shè)備的信息輸出:確定維修設(shè)備的記錄描述:維修信息=修理日期+設(shè)備名+編號+修理廠家+修理費(fèi)用+責(zé)任人 購買設(shè)備精選輸入:購買設(shè)備的信息輸出:確定購買的新設(shè)備的記錄描述:新設(shè)備=類別+設(shè)備名+編號+型號+規(guī)格+單價(jià)+數(shù)量+購置日期+生產(chǎn)廠家+保質(zhì)期+經(jīng)辦人等

9、報(bào)廢設(shè)備輸入:所需報(bào)廢的設(shè)備的信息輸出:報(bào)廢的設(shè)備記錄描述:報(bào)廢設(shè)備=類別+設(shè)備+型號等審核信息輸入:審核輸出:上級領(lǐng)導(dǎo)描述:審核信息=報(bào)廢設(shè)備信息/新設(shè)備購買信息.加工條目身份驗(yàn)證,統(tǒng)計(jì)查詢,維修,購買,報(bào)廢,生產(chǎn)報(bào)表,審核。.文件條目登陸表輸入:身份驗(yàn)證輸出:身份驗(yàn)證數(shù)據(jù)結(jié)構(gòu):用戶名+密碼+登陸權(quán)限設(shè)備基本信息表輸入:統(tǒng)計(jì)查詢數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號+規(guī)格等維修記錄表輸入:統(tǒng)計(jì)查詢,維修輸出:統(tǒng)計(jì)查詢數(shù)據(jù)結(jié)構(gòu):修理日期+設(shè)備名+編號+修理廠家+修理費(fèi)用+責(zé)任人購買設(shè)備表輸入:統(tǒng)計(jì)查詢,購買輸出:統(tǒng)計(jì)查詢數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+編號+型號+規(guī)格+單價(jià)+數(shù)量+購置日期+生產(chǎn)廠家+保質(zhì)期+經(jīng)

10、辦人等報(bào)廢記錄表輸入:報(bào)廢,統(tǒng)計(jì)查詢,生產(chǎn)報(bào)表輸出:統(tǒng)計(jì)查詢,生產(chǎn)報(bào)表數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號等申請表輸入:統(tǒng)計(jì)查詢,生產(chǎn)報(bào)表輸出:統(tǒng)計(jì)查詢,生產(chǎn)報(bào)表,購買數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號+規(guī)格+數(shù)量.數(shù)據(jù)加工處理的描述登陸用例精選簡要說明:本用例說明用戶如何登錄到系統(tǒng)。角色:管理員、實(shí)驗(yàn)員、學(xué)生前置條件:啟動(dòng)程序,進(jìn)入登錄界面基本事件流:.用戶輸入基本信息(登錄名和密碼),點(diǎn)擊確定按鈕.系統(tǒng)查找數(shù)據(jù)庫,看該用戶是否在數(shù)據(jù)庫中。若存在則進(jìn)入主頁面。備選事件流:1.輸入無效的用戶名或密碼, 提示用戶名或密碼不能為空或者提示用戶名或密 碼不正確。后置條件:登錄成功特殊需求:沒有和本用例有關(guān)的特殊需

11、求。擴(kuò)展點(diǎn):沒有和本用例有關(guān)的擴(kuò)展點(diǎn)。購買設(shè)備用例簡要說明:本用例說明管理員如何購買設(shè)備并記錄進(jìn)入系統(tǒng)。角色:管理員前置條件:已經(jīng)成功登陸到系統(tǒng)?;臼录鳎?.管理員填寫設(shè)備各種信息,確定添加。2.系統(tǒng)把對應(yīng)信息寫入數(shù)據(jù)庫,更新數(shù)據(jù)庫。備選事件流:輸入了已存在的設(shè)備編號,系統(tǒng)提示編號中已存在。后置條件:購買成功。特殊需求:沒有和本用例有關(guān)的特殊需求。擴(kuò)展點(diǎn):沒有和本用例有關(guān)的擴(kuò)展點(diǎn)。報(bào)廢設(shè)備用例簡要說明:本用例說明管理員如何從入系統(tǒng)中刪除報(bào)廢的設(shè)備記錄。角色:管理員前置條件:已經(jīng)成功登陸到系統(tǒng)?;臼录鳎?.管理員根據(jù)設(shè)備編號,找到需要?jiǎng)h除的設(shè)備記錄,確定刪除。2系統(tǒng)把從數(shù)據(jù)庫中刪除對應(yīng)信

12、息,更新數(shù)據(jù)庫。備選事件流: 輸入了不存在的設(shè)備編號,系統(tǒng)提示未找到記錄。后置條件:刪除成功。特殊需求:沒有和本用例有關(guān)的特殊需求。擴(kuò)展點(diǎn):沒有和本用例有關(guān)的擴(kuò)展點(diǎn)。設(shè)備查詢用例簡要說明:本用例說明管理員如何查詢系統(tǒng)中已記錄的實(shí)驗(yàn)設(shè)備。角色:管理員前置條件:已經(jīng)成功登陸到系統(tǒng)?;臼录鳎?管理員選擇設(shè)備查詢功能,根據(jù)名稱、編號、添加時(shí)間等方式,填寫信息并查詢。.系統(tǒng)查找數(shù)據(jù)庫,找到符合條件的信息。3.返回找到的信息。備選事件流: 輸入不存在的設(shè)備信息,系統(tǒng)提示未找到該設(shè)備信息。后置條件:查詢成功。精選特殊需求:沒有和本用例有關(guān)的特殊需求。擴(kuò)展點(diǎn):沒有和本用例有關(guān)的擴(kuò)展點(diǎn)。.性能需求數(shù)據(jù)精確度

13、該軟件計(jì)算設(shè)備時(shí)以“臺”、“件”等為實(shí)物計(jì)件單位,報(bào)表輸出中的金額保證到0.01的精度。時(shí)間特性查詢在3秒內(nèi)完成,表項(xiàng)輸出在 8秒內(nèi)完成適應(yīng)性考慮到工作人員有時(shí)候辦公地點(diǎn)的移動(dòng)性,在設(shè)計(jì)時(shí)應(yīng)該注意軟件的適應(yīng)性,對于查詢 功能應(yīng)盡可能獨(dú)立方便地將其移植到筆記本、掌上電腦等硬件平臺.運(yùn)行需求用戶界面采用Windows的通用圖形界,對用戶友好,且必須對鼠標(biāo)和鍵盤提供支持。硬件接口支持一般x86系列微機(jī)和 Windows CE,即一般的PC機(jī)。四、系統(tǒng)設(shè)計(jì)精選.狀態(tài)圖.輸出設(shè)計(jì)輸入:a.輸入數(shù)據(jù)數(shù)字信息符合輸入精度要求b.輸入可選信息完全使用下拉框完成輸出:a.輸出數(shù)據(jù)符合輸出精度要求輸出數(shù)據(jù)格式字體

14、大小統(tǒng)一.數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)精選(1)實(shí)體表1 用戶表(UserInfo)字段備注uIdVarchar(15)用戶名,主鍵uNameVarchar(15)姓名uPasswdVarchar(15)密碼uPositionVarchar(15)身份,主鍵【2實(shí)驗(yàn)室管理員表(StoreManagerInfO字段備注uIdVarchar(15)用戶名,主鍵lIdVarchar(15)倉庫編號,外鍵約束于實(shí)驗(yàn)室表【3實(shí)驗(yàn)室表(LabInfo)字段備注lIdVarchar(15)頭駁至編會,主鍵lNameVarchar(15)實(shí)驗(yàn)室名稱lPlaceVarchar(15)所在校區(qū)【4設(shè)備表(EquipInfo)字

15、段備注eIdVarchar(15)設(shè)備編號,主鍵eNameVarchar(15)設(shè)備名稱精選eStandardVarchar(15)規(guī)格型號eProCompanyVarchar(15)生廣J商eTypeVarchar(15)設(shè)備類型(2)關(guān)系表11入庫登記表(InInfo)字段備注eIdVarchar(15)設(shè)備編號,主鍵,外鍵約束于設(shè)備表sIdVarchar(15)倉庫編號,主鍵,外鍵約束于倉庫表iDateDateTime入庫時(shí)間,主鍵iNumint入庫數(shù)量記錄表11 購買申請表(BuyApplyInfo)字段備注baIdVarchar(15)序列號,主鍵eIdVarchar(15)設(shè)備編號

16、,外鍵約束于設(shè)備表smNameVarchar(15)申請人,外鍵約束于倉庫管理員表baDateDateTime申請時(shí)間baNumInt申請數(shù)量精選【2】維修申請表(MaintainInfo)字段備注maidVarchar(15)序列號,主鍵pidVarchar(15)固定資產(chǎn)編號,外鍵約束于固定負(fù)嚴(yán)表ImNameVarchar(15)申請人,外鍵約束于實(shí)驗(yàn)室管理員表maDateDateTime申請時(shí)間【3】購買登記表(BuyInfo)字段備注bidVarchar(15)序列號,主鍵eidVarchar(15)設(shè)備編號,外鍵約束于設(shè)備表bPriceMoney購買單價(jià)bDateDateTime購買

17、時(shí)間bNumint購頭數(shù)重【4】維修記錄表(MaintainInfo )字段備注midVarchar(15)序列號,主鍵pidVarchar(15)固定資產(chǎn)編號,外鍵約束于固定負(fù)嚴(yán)表精選mDateDateTime維修時(shí)間【5】報(bào)廢記錄表(Discardinfo)字段備注didVarchar(15)序列號,主鍵pidVarchar(15)固定資產(chǎn)編號,外鍵約束于固定負(fù)嚴(yán)表dDateDateTime報(bào)廢時(shí)間【6】 購買審核表(BuyCheckinfo)字段備注bcidVarchar(15)序列號,主鍵baidVarchar(15)申請序列號,外鍵約束于購買申請去olNameVarchar(15)審

18、核人,外鍵約束于上級領(lǐng)導(dǎo)表bcDateDateTime審核時(shí)間【7】維修審核表(MaintainCheckinfo)字段備注mcidVarchar(15)序列號,主鍵maidVarchar(15)申請序列號,外鍵約束于維修申請表olNameVarchar(15)審核人,外鍵約束于上級領(lǐng)導(dǎo)表精選mcDateDateTime審核時(shí)間.模塊詳細(xì)設(shè)計(jì)設(shè)備管理員操作模塊設(shè)備管理員精選課程設(shè)計(jì)總結(jié)六、代碼1、用戶登錄界面:package com.niit.gui_event;import com.niit.logical.*;import java.awt.*;import java.awt.event.

19、*;import javax.swing.*;public class Login extends JFrame /*/private static final long serialVersionUID = 1L;精選/控件聲明private JLabel IPosition, IName, IPasswd, ITitle ;private JComboBox cbPosition, cbName;private JPasswordField pfPasswd;private JButton bConfirm , bCancel;private Container con;private J

20、Panel pCon;private User info;public Login() super(用戶登錄);/控件初始化con = getContentPane();lPosition = new JLabel(身 份:);lName = new JLabel(用戶名:);lPasswd = new JLabel(密碼:);lTitle = new JLabel(實(shí)驗(yàn)室設(shè)備管理系統(tǒng) );lTitle .setForeground(Color.RED);pfPasswd = new JPasswordField();bConfirm = new JButton(確定);bCancel = n

21、ew JButton(取消);String aPosition = new String 系統(tǒng)管理員,倉庫管理員,實(shí)驗(yàn)室管理員 ”購買登記員,上級令M導(dǎo);cbPosition = new JComboBox(aPosition);int index = cbPosition .getSelectedIndex();if (index = 0) info = new Administration。; elseif (index = 1) info = new StoreManager(); elseif (index = 2) info = new LabManager(); elseif (i

22、ndex = 3) info = new BuyManager(); elseinfo = new OverLeader();/數(shù)組初始化pCon = new JPanel5;String cName = info.getIdByPosition( info);cbName = new JComboBox(cName);精選for (int i = 0; i pCon.length; i+) pConi = new JPanel();)public void launch() /控件添加con.setLayout(new GridLayout(5, 1);pCon0.add(lPosition

23、);pCon0.add(cbPosition);pCon1.add(lName);pCon1.add(cbName);pCon2.add(lPasswd);pCon2.add(pfPasswd);pCon3.add(bConfirm );pCon3.add(bCancel);pCon4.add(lTitle);add(pCon4);for (int i = 0; i pCon.length - 1; i+) con.add(pConi);/控件設(shè)置pfPasswdsetEchoChar(*);pfPasswdsetColumns(10);setBounds(400, 100, 400, 400

24、);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );/添加監(jiān)聽器cbPosition.addActionListener( new ListenAction();bConfirm .addActionListener( new ListenAction();bCance.addActionListener( new ListenAction(); pfPasswdaddKeyListener(new ListenKey();)/定義按鈕,下拉框處理器class ListenAction implements Ac

25、tionListener public void actionPerformed(ActionEvent e) if (e.getSource() = bConfirm ) / 點(diǎn)擊確定按鈕info.setuId(cbName.getSelectedItem().toString();info .setuPasswdnew String(pfPasswdgetPassword();info.setuPosition(cbPosition.getSelectedItem().toString(); if (info .login(info) new Main(info).launch(); se

26、tVisible(false);精選pfPasswd.setText(null); else JOptionPane.showMessageDialo(gew Login(),用戶名,密碼或身份錯(cuò)誤);pfPasswd.setText(null); elseif (e.getSource() = cbPosition ) / 身份下拉框改變時(shí) int index = cbPosition .getSelectedIndex();if (index = 0) info = new Administration。; elseif (index = 1) info = new StoreManage

27、r(); elseif (index = 2) info = new LabManager(); elseif (index = 3) info = new BuyManager(); else info = new OverLeader();String口 cName = info .getIdByPosition( info);/刷新用戶名列表cbName.removeAllItems();for (int i = 0; i cName. length; i+) cbName.addItem(cNamei); else Systemexit(0);pfPasswd .setText(nul

28、l);/定義鍵盤處理器class ListenKey extends KeyAdapter SuppressWarnings(static-access) public void keyPressed(KeyEvent e) if (e.getKeyTexe.getKeyCode().compareToIgnoreCase(ENTER ) = 0) bConfirm .doClick();2、主界面:精選package com.niit.gui_event;import javax.swing.*;import com.niit.logical.*;import java.awt.event.

29、*;public class Main extends JFrame /*/private static final long serialVersionUID = 1L;private JTabbedPanetp;private JPanel p口;private User info;public Main() super(實(shí)驗(yàn)室設(shè)備管理系統(tǒng));tp = new JTabbedPane();p = new JPanel8;public Main(User info)this();=info;p0 = new UserManage();p1 = new EquipIn();p2 = new E

30、quipOut();p3 = new Register(info);p4 = new Apply(info);p5 = new Checks(info);p6= new Search();p7= new PasswdModyfy(info);public void launch() tp.addTab(用戶管理, p0);tp.addTab(設(shè)備入庫, p1);tp.addTab(設(shè)備出庫, p2);tp.addTab(設(shè)備登記, p3);tp.addTab(設(shè)備申請, p4);tp.addTab(審核申請, p5);精選tp.addTab(統(tǒng)計(jì)查詢, p6);tp.addTab(個(gè)人信息維護(hù)

31、, p7);if(info instanceof Administration) tp.setEnabledAt(1, false); tp.setEnabledAt(2, false); tp.setEnabledAt(3, false); tp.setEnabledAt(4, false); tp.setEnabledAt(5, false);elseif(infotp.setEnabledAt(6, false);instanceof StoreManager)tp.setEnabledAt(0, false);tp.setEnabledAt(3, false);tp.setEnable

32、dAt(5, false);tp .setSelectedIndex(1);elseif(info instanceof LabManager) tp.setEnabledAt(0, false); tp.setEnabledAt(1, false); tp.setEnabledAt(2, false);tp.setEnabledAt(5, false);tp .setSelectedIndex(3);elseif(info instanceof BuyManager) tp.setEnabledAt(0, false);tp.setEnabledAt(1, false);tp.setEnab

33、ledAt(2, false);tp.setEnabledAt(4, false);tp.setEnabledAt(5, false);tp .setSelectedIndex(3);elseif(infoinstanceof OverLeader)tp.setEnabledAt(0, false);tp.setEnabledAt(1, false);tp.setEnabledAt(2, false);tp.setEnabledAt(3, false);tp.setEnabledAt(4, false); tp .setSelectedIndex(5);getContentPane().add

34、tp);setSize(1280, 780);setVisible(true);addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e)Systemexit(0););精選)3、購買設(shè)備:package com.niit.gui_event;import javax.swing.*;import com.niit.logical.*;import java.awt.*;import java.awt.event.*;import com.niit.data.*;import java.sql.

35、*;public class MaintainApply extends JPanel /*/private static final long serialVersionUID = 1L; private JLabel lpId ;private JTextField tf ;private JButton bApply , bAgain, bDelete;private JPanel pUp, pDown ;private JTable t ;private JScrollPanejsp;private User user;private LabManager lm;private Mai

36、ntainApplyData maInfo ;public MaintainApply(User user) super(new BorderLayout();this.user = user;lpId = new JLabel(固定資產(chǎn)編號);tf = new JTextField();tf .setColumns(15);bApply = new JButton(申請); bAgain = new JButton(重置);bDelete = new JButton(取消申請); pUp = new JPanel();精選pDown = new JPanel();Im = new LabMa

37、nager();maInfo = new MaintainApplyData();String head = new String口 序列號,固定資產(chǎn)編號,申請人,呻請時(shí)間;Object data = lm.getMaintainApplyAll();t = new JTable(data, head);t.setRowHeight(25);jsp = new JScrollPanet);pUp.add(lpId);pUp.add(tf);pUp.add(bApply);pUp.add(bAgain);pDown .add(bDelete);add(pUp, BorderLayout. NOR

38、TH );add(jsp, BorderLayout. CENTER);add(pDown , BorderLayout. SOUTH);/添加監(jiān)聽器bApply .addActionListener( new ListenButton();bAgain.addActionListener( new ListenButton(); bDelete.addActionListener( new ListenButton();/處理器class ListenButton implements ActionListener public void actionPerformed(ActionEven

39、t e) if (e.getSource() = bApply) / 申請按鈕 maInfo .setpId(new Integer(tf .getText();maInfo .setuId(user.getuId();maInfo .setDate(new Date(System.currentTimeMillis();lm.add(maInfo);bAgain.doClick(); elseif (e.getSource() = bAgain) / 重置按鈕 tf.setText(null); elseif (e.getSource() = bDelete) / 刪除按鈕int selec

40、tedIndex = -1;for (int i = 0; i t.getRowCount(); i+) if (t.isRowSelected(i) = true)selectedIndex = i;if (selectedIndex = -1) 精選JOptionPane.showMessageDialOgull,請先選擇某一項(xiàng)!);return; else int option = JOptionPane. showConfirmDialog(null,是否確定刪除?提示,JOptionPane.YES_NO_CANCEL_OPTION );if (option = JOptionPan

41、e. YES_OPTION) maInfo .setId(new Integer(t.getValueAt(selectedIndex, 0).toString();Im.deletegalnfo);/刷新數(shù)據(jù)表remove(jsp);String head = new String 序列號,固定資產(chǎn)編號,申請人,申請時(shí)間;Object口口 data = lm.getMaintainApplyAll();t = new JTable(data, head);t.setRowHeight(25);t.validate();jsp = new JScrollPane(t);add(jsp, Bor

42、derLayout. CENTER);validate();4、維修設(shè)備:package com.niit.gui_event;import java.awt.BorderLayout;import java.awt.Cursor;import javax.swing.*;import java.awt.*;import com.niit.logical.*;import java.awt.event.*;import java.sql.Date;import com.niit.data.*;public class EquipIn extends JPanel 精選/*/private st

43、atic final long serialVersionUID = 1L;private JLabel leId, lsId, liNum , lPara;private JTextField tfiNum ;private JComboBox cbeId, cbsId;private JButton bIn , bAgain, bDelete;private JPanel pUp, pDown ;private JScrollPanejsp;private JTable t;private StoreManager sma;private InData inInfo ;public Equ

44、ipIn() super(new BorderLayout(); / 設(shè)置布局管理器/控件初始化leId = new JLabel(設(shè)備編號);lsId = new JLabel(倉庫編號);liNum = new JLabel(入庫數(shù)量);lPara = new JLabel(參數(shù)設(shè)置);lParasetForeground(Color.RED);tfiNum = new JTextField();tfiNum .setColumns(10);bIn = new JButton(入庫);bAgain = new JButton(重置);bDelete = new JButton(刪除);pU

45、p = new JPanel();pDown = new JPanel();sma = new StoreManager();inInfo = new InData();String eId = sma.geteId();String sId = sma.getsIdAll();cbeId = new JComboBox(eId);cbsId = new JComboBox(sId);String head = new String口 設(shè)備編號/倉庫編號,入庫時(shí)間 入庫數(shù)量;精選Object data = smagetInAll();t = new JTable(data, head);t.s

46、etRowHeight(25);jsp = new JScrollPanet);/添加控件pUp.add(leId);pUp.add(cbeId);pUp.add(lsId);pUp.add(cbsId);pUp.add(liNum );pUp.add(tfiNum );pUp.add(bIn);pUp.add(bAgain);pUp.add(lPara);pDown .add(bDelete);add(pUp, BorderLayout. NORTH );add(jsp, BorderLayout. CENTER);add(pDown , BorderLayout. SOUTH);/添加監(jiān)聽

47、器bIn.addActionListener( new ListenButton();bAgain.addActionListener( new ListenButton();bDelete.addActionListener( new ListenButton(); lParaaddMouseListener(new ListenMouse();/定義按鈕處理器class ListenButton implements ActionListener public void actionPerformed(ActionEvent e) if (e.getSource() = bIn) / 點(diǎn)擊

48、入庫按鈕inInfo .seteId(cbeId.getSelectedItem().toString();inInfo .setsId(cbsId.getSelectedItem().toString();inInfo .setDate(new Date(System.currentTimeMillis();inInfo .setNum(new Integer(tfiNum .getText();smaaddQnInfo );bAgain.doClick(); elseif (e.getSource() = bAgain) / 點(diǎn)擊重置按鈕 tfiNum .setText(null); el

49、seif (e.getSource() = bDelete) / 點(diǎn)擊刪除按鈕 int selectedIndex = -1;for (int i = 0; i t.getRowCount(); i+) 精選if (t.isRowSelected(i) = true) selectedIndex = i;)if (selectedIndex = -1) JOptionPane.showMessageDialo(gull,請先選擇某一項(xiàng)!);return; else int option = JOptionPane. showConfirmDialog(null,是否確定刪除?, 提示,JOpt

50、ionPane.YES_NO_CANCEL_OPTION );if (option = JOptionPane. YES_OPTION) inInfo .seteId(String) t.getValueAt(selectedIndex, 0);inInfo .setsId(String) t.getValueAt(selectedIndex, 1);inInfo .setDate(Date) t.getValueAt(selectedIndex, 2); sma.delete(inInfo ); /刷新數(shù)據(jù)表remove(jsp);String head = new String 設(shè)備編號

51、倉庫編號,入庫時(shí)間,入庫數(shù)量; Object口口 data = smagetInAll();t = new JTable(data, head);t.setRowHeight(25);t.validate();jsp = new JScrollPane(t);add(jsp, BorderLayout. CENTER); validate(); /定義鼠標(biāo)處理器class ListenMouse extends MouseAdapter public void mouseEntered(MouseEvent e) lParasetCursor(new Cursor(Cursor.HAND_CU

52、RSOR); public void mousePressed(MouseEvent e) new ParameterSet();5、用戶管理精選package com.niit.gui_event;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.*;import java.awt.*;import javax.swing.*;import com.niit.logical.*;public class UserManage extends JPanel /*/private stati

53、c final long serialVersionUID = 1L;private JLabel口 lArray = new JLabel7;private JButton bArray = new JButton3;private JTextField口 tfArray = new JTextField2;private JPasswordField口 pfArray = new JPasswordField2;private JPanel口 pArray = new JPanel4;private JComboBox cbPosition, cbSL;private JScrollPan

54、ejsp;private JTable t;private Administration Admin ;private StoreManager sma;private LabManager lm;public UserManage() super(new BorderLayout(); / 設(shè)置布局管理器/控件初始化lArray 0 = new JLabel(注冊身份);lArray1 = new JLabel(用戶名);lArray 2 = new JLabel(姓名);lArray 3 = new JLabel(密碼);lArray 4 = new JLabel(確認(rèn)密碼);lArray

55、 5 = new JLabel(編號);lArray 6 = new JLabel(參數(shù)設(shè)置);bArray0 = new JButton(注冊);bArray1 = new JButton(重置);精選bArray2 = new JButton(刪除);for (int i = 0; i 2; i+) tfArray i = new JTextField();tfArray i.setColumns(10);pfArray i = new JPasswordField();pfArray i.setColumns(10);pArray i = new JPanel();pArray 2 =

56、new JPanel();pArray 3 = new JPanelfiew GridLayout(2, 1);String position = new String 系統(tǒng)管理員,倉庫管理員 實(shí)驗(yàn)室管理員 購買登記 員”,上級領(lǐng)導(dǎo);cbPosition = new JComboBox(position);cbSL = new JComboBox();Admin = new Administration。;sma = new StoreManager();lm = new LabManager();String head = new String口 用戶名,姓名,身份;Object data

57、= Admin .getAll();t = new JTable(data, head);t.setRowHeight(25);jsp = new JScrollPanet);/屬性設(shè)置lArray 5.setVisible(false);cbSL.setVisible(false);lArray 6.setForeground(Color.RED);/控件添加pArray 0.add(lArray 0);pArray 0.add(cbPosition);pArray0.add(lArray 1);pArray 0.add(tfArray 0);pArray 0.add(lArray 2);p

58、Array 0.add(tfArray 1);pArray1.add(lArray 3);pArray 1.add(pfArray 0);pArray1.add(lArray 4);pArray 1.add(pfArray 1);精選pArray1.add(lArray 5);pArray1.add(cbSL);pArray 1.add(bArray 0);pArray 1.add(bArray 1);pArray1.add(lArray 6);pArray 2.add(bArray 2);pArray 3.add(pArray 0);pArray 3.add(pArray 1);add(pA

59、rray3, BorderLayout. NORTH );add(jsp, BorderLayout. CENTER);add(pArray 2, BorderLayout. SOUTH);/添加監(jiān)聽器bArray 0.addActionListener( new ListenAction();bArray 1.addActionListener( new ListenAction();bArray 2.addActionListener( new ListenAction(); cbPosition.addActionListener( new ListenAction(); lArray

60、6.addMouseListener(new ListenMouse();/定義按鈕,下拉框動(dòng)作處理器class ListenAction implements ActionListener public void actionPerformed(ActionEvent e) Admin .setuId(tfArray 0.getText();Admin .setuName(tfArray 1.getText();Admin .setuPasswdQew String(pfArray 0.getPassword();Admin .setuPosition(cbPosition .getSele

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論