版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 設(shè)計(jì)名稱: 實(shí)驗(yàn)設(shè)備管理系統(tǒng) </p><p> 設(shè)計(jì)題目: 實(shí)驗(yàn)設(shè)備管理系統(tǒng) </p><p> 專業(yè)班級(jí): 軟件工程一班
2、 </p><p> 學(xué)生姓名: </p><p> 學(xué)生成績(jī): </p><p> 指導(dǎo)教師(職稱):
3、 </p><p> 課題工作時(shí)間: 2013年12月20日至2014年1月8日 </p><p> 軟件學(xué)院課程設(shè)計(jì)任務(wù)書(shū)</p><p> 課程設(shè)計(jì):實(shí)驗(yàn)室設(shè)備管理系統(tǒng)</p><p><b> 項(xiàng)目管理:</b></p><p><b&g
4、t; 軟件需求分析</b></p><p><b> 引言</b></p><p><b> 編寫(xiě)目的</b></p><p> 此需求說(shuō)明書(shū)詳細(xì)陳述了“實(shí)驗(yàn)設(shè)備管理系統(tǒng)”的所提供各項(xiàng)功能。其中包括用戶的功能性需求以及非功能性需求,為用戶提供完整且較詳盡的系統(tǒng)功能運(yùn)作藍(lán)圖。同時(shí)為設(shè)計(jì)人員提供一個(gè)完整的、
5、可靠的設(shè)計(jì)約束,以便高質(zhì)量地設(shè)計(jì)、編寫(xiě)代碼,完成系項(xiàng)目預(yù)期目標(biāo)。還給開(kāi)發(fā)人員提供了參考。</p><p> 此需求說(shuō)明書(shū)的預(yù)期讀者為項(xiàng)目經(jīng)理、設(shè)計(jì)人員、開(kāi)發(fā)人員、用戶等。</p><p><b> 背景</b></p><p><b> 說(shuō)明:</b></p><p> a.待開(kāi)發(fā)的軟件系統(tǒng)
6、的名稱:實(shí)驗(yàn)設(shè)備管理系統(tǒng);</p><p> b.本項(xiàng)目的任務(wù)提出者:西安文理學(xué)院;</p><p> c.本項(xiàng)目的開(kāi)發(fā)者:張興華 陳琛 任小艷;</p><p> d.本項(xiàng)目的用戶:西安文理學(xué)院相關(guān)管理人員;</p><p> e.該軟件系統(tǒng)同其他系統(tǒng)或其他機(jī)構(gòu)的基本的相互來(lái)往關(guān)系:與西安文理學(xué)院財(cái)務(wù)管理軟件系統(tǒng)有相應(yīng)接口。<
7、/p><p><b> 定義</b></p><p> LEM:實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(Laboratory Equipment Management);</p><p><b> 任務(wù)概述</b></p><p><b> 目標(biāo)</b></p><p
8、> 隨著高校規(guī)模的擴(kuò)大,實(shí)驗(yàn)室及倉(cāng)庫(kù)的增多,人工管理實(shí)驗(yàn)設(shè)備已變得過(guò)于低效,為了解決這一問(wèn)題,高校實(shí)驗(yàn)室設(shè)備管理系統(tǒng)將實(shí)現(xiàn)設(shè)備管理的自動(dòng)化。</p><p> 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)將貫穿于設(shè)備從購(gòu)進(jìn)到報(bào)廢的整個(gè)流程的管理過(guò)程,幫助管理員高效地管理整個(gè)高校的所有設(shè)備,并給上級(jí)領(lǐng)導(dǎo)提供一個(gè)審核監(jiān)督管理的平臺(tái)。</p><p><b> 用戶的特點(diǎn)</b><
9、/p><p> 此軟件的使用用戶為: 西安文理學(xué)院相關(guān)管理人員。</p><p> 因此,我們通常可以認(rèn)為:用戶具有較高的文化水平和學(xué)習(xí)能力,并且具有一定的計(jì)算機(jī)使用水平和經(jīng)驗(yàn),可以了解整個(gè)LEM系統(tǒng)的工作流程及注意事項(xiàng),與此同時(shí)對(duì)于LEM系統(tǒng)的基本操作,可以無(wú)困難執(zhí)行。在參考用戶手冊(cè)的情況下可以無(wú)需進(jìn)行專業(yè)培訓(xùn),即可順利使用本系統(tǒng)。</p><p><b&g
10、t; 需求規(guī)定</b></p><p><b> 功能性需求規(guī)定</b></p><p><b> 系統(tǒng)整體功能層次圖</b></p><p> 3.1.2 業(yè)務(wù)流程分析</p><p><b> 數(shù)據(jù)流圖:</b></p><p&g
11、t;<b> 流程詳細(xì)說(shuō)明:</b></p><p> 倉(cāng)庫(kù)管理員統(tǒng)計(jì)倉(cāng)庫(kù)中設(shè)備的庫(kù)存量,找出庫(kù)存量不足的設(shè)備,填寫(xiě)購(gòu)買(mǎi)申請(qǐng)表,領(lǐng)導(dǎo)對(duì)此申請(qǐng)表進(jìn)行審核,審核通過(guò)后,產(chǎn)生購(gòu)買(mǎi)報(bào)表交給購(gòu)買(mǎi)員。</p><p> 購(gòu)買(mǎi)員將購(gòu)買(mǎi)的設(shè)備及購(gòu)買(mǎi)信息交給購(gòu)買(mǎi)登記員,由他進(jìn)行購(gòu)買(mǎi)登記。購(gòu)買(mǎi)登記員查詢申請(qǐng)審核表,將設(shè)備分配到各倉(cāng)庫(kù)。</p><p> 倉(cāng)
12、庫(kù)管理員對(duì)購(gòu)買(mǎi)的設(shè)備進(jìn)行入庫(kù)登記,出庫(kù)登記。</p><p> 實(shí)驗(yàn)室管理員負(fù)責(zé)對(duì)報(bào)廢的設(shè)備進(jìn)行報(bào)廢登記并處理,找出要維修的設(shè)備填寫(xiě)維修申請(qǐng)表,領(lǐng)導(dǎo)對(duì)維修申請(qǐng)表進(jìn)行審核,通過(guò)后產(chǎn)生維修報(bào)表交給維修員,維修員將設(shè)備送交某一修理廠家進(jìn)行維修。</p><p> 設(shè)備維修完后,交還原實(shí)驗(yàn)室,由實(shí)驗(yàn)室管理員進(jìn)行維修登記。</p><p><b> 系統(tǒng)用戶列
13、表</b></p><p> 高校LEM面向五類用戶:系統(tǒng)管理員,購(gòu)買(mǎi)登記員,倉(cāng)庫(kù)管理員,實(shí)驗(yàn)室管理員,上級(jí)領(lǐng)導(dǎo),這幾類用戶通過(guò)高校LEM系統(tǒng)進(jìn)行設(shè)備管理上的交流,而該系統(tǒng)為用戶提供不同的功能。</p><p><b> 【1】系統(tǒng)管理員</b></p><p> 1.注冊(cè)本系統(tǒng)用戶;</p><p>
14、 2.注銷本系統(tǒng)用戶;</p><p><b> 3.?dāng)?shù)據(jù)庫(kù)的維護(hù);</b></p><p><b> 4.本人信息維護(hù);</b></p><p><b> 【2】購(gòu)買(mǎi)登記員</b></p><p> 1. 將購(gòu)買(mǎi)員提交的購(gòu)買(mǎi)信息進(jìn)行登記,記錄有關(guān)設(shè)備基本信息,設(shè)備的
15、購(gòu)買(mǎi)信息如價(jià)格,數(shù)量等;</p><p> 2.查詢領(lǐng)導(dǎo)的購(gòu)買(mǎi)申請(qǐng)審核信息;</p><p> 3.根據(jù)審核信息將購(gòu)買(mǎi)的設(shè)備分配到相應(yīng)的倉(cāng)庫(kù),將有關(guān)詳單提交倉(cāng)庫(kù)管理員,</p><p><b> 4.本人信息維護(hù)。</b></p><p><b> 【3】倉(cāng)庫(kù)管理員</b></p>
16、;<p> 根據(jù)購(gòu)買(mǎi)登記員提交的詳單進(jìn)行入庫(kù)登記;</p><p> 根據(jù)實(shí)驗(yàn)室管理員提交的詳單進(jìn)行出庫(kù)登記;</p><p> 查詢統(tǒng)計(jì)本倉(cāng)庫(kù)中的所有設(shè)備的庫(kù)存量,統(tǒng)計(jì)出庫(kù)存量不足的設(shè)備;</p><p> 根據(jù)統(tǒng)計(jì)信息進(jìn)行購(gòu)買(mǎi)申請(qǐng)。</p><p><b> 本人信息維護(hù);</b></p
17、><p><b> 【4】實(shí)驗(yàn)室管理員</b></p><p> 管理本實(shí)驗(yàn)室中各設(shè)備,找出需要維修的設(shè)備,進(jìn)行維修申請(qǐng);</p><p> 對(duì)于不能維修的設(shè)備,要進(jìn)行報(bào)廢記錄;</p><p> 查詢統(tǒng)計(jì)本實(shí)驗(yàn)室設(shè)備擁有量,統(tǒng)計(jì)出數(shù)量不足的設(shè)備,產(chǎn)生詳單提交倉(cāng)庫(kù)管理員;</p><p>
18、對(duì)于已維修完成的設(shè)備,根據(jù)維修員提交維修單進(jìn)行維修記錄;</p><p><b> 本人信息維護(hù)。</b></p><p><b> 【5】上級(jí)領(lǐng)導(dǎo)</b></p><p> 查看購(gòu)買(mǎi)申請(qǐng)表,對(duì)申請(qǐng)進(jìn)行審核,審核后產(chǎn)生購(gòu)買(mǎi)訂單交于購(gòu)買(mǎi)員;</p><p> 查看維修申請(qǐng)表,對(duì)申請(qǐng)進(jìn)行審核,審
19、核后產(chǎn)生維修訂單交于維修員;</p><p><b> 個(gè)人信息維護(hù)。</b></p><p><b> 軟件系統(tǒng)數(shù)據(jù)字典</b></p><p><b> 3.21數(shù)據(jù)流條目</b></p><p><b> 登陸信息</b></p>
20、<p><b> 輸入:設(shè)備管理員</b></p><p><b> 輸出:身份驗(yàn)證1</b></p><p> 描述:登陸信息=用戶名+密碼+登陸權(quán)限</p><p><b> 查詢信息</b></p><p> 輸入:合法人員對(duì)設(shè)備的查詢操作<
21、/p><p><b> 輸出:設(shè)備信息表</b></p><p> 描述:查詢信息=設(shè)備名/型號(hào)/類別/購(gòu)置日期</p><p><b> 維修信息</b></p><p> 輸入:所需維修設(shè)備的信息</p><p> 輸出:確定維修設(shè)備的記錄</p>&
22、lt;p> 描述:維修信息=設(shè)備名+修理日期+修理廠家+修理費(fèi)+負(fù)責(zé)人</p><p><b> 新設(shè)備</b></p><p> 輸入:購(gòu)買(mǎi)設(shè)備的信息</p><p> 輸出:確定購(gòu)買(mǎi)的新設(shè)備的記錄</p><p> 描述:新設(shè)備=類別+設(shè)備名+型號(hào)+規(guī)格+單價(jià)+數(shù)量等</p><p
23、><b> 報(bào)廢設(shè)備</b></p><p> 輸入:所需報(bào)廢的設(shè)備的信息</p><p> 輸出:報(bào)廢的設(shè)備記錄</p><p> 描述:報(bào)廢設(shè)備=類別+設(shè)備名+型號(hào)等</p><p><b> 審核信息</b></p><p><b> 輸入:
24、審核3</b></p><p><b> 輸出:上級(jí)領(lǐng)導(dǎo)</b></p><p> 描述:審核信息=報(bào)廢設(shè)備信息/新設(shè)備購(gòu)買(mǎi)記錄</p><p><b> 3.22加工條目</b></p><p> 身份驗(yàn)證1,統(tǒng)計(jì)查詢2.1,維修2.2,購(gòu)買(mǎi)2.3,報(bào)廢2.4,生產(chǎn)報(bào)表3.1,
25、審核3.2</p><p><b> 3.23文件條目</b></p><p><b> 登陸表</b></p><p><b> 輸入:身份驗(yàn)證1</b></p><p><b> 輸出:身份驗(yàn)證1</b></p><p>
26、; 數(shù)據(jù)結(jié)構(gòu):用戶名+密碼+登陸權(quán)限</p><p><b> 設(shè)備基本信息表</b></p><p> 輸入:統(tǒng)計(jì)查詢2.1</p><p> 數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號(hào)+規(guī)格等</p><p><b> 維修記錄表</b></p><p> 輸入:統(tǒng)計(jì)查詢2
27、.1,維修2.2</p><p> 輸出:統(tǒng)計(jì)查詢2.1</p><p> 數(shù)據(jù)結(jié)構(gòu):設(shè)備名+修理日期+修理廠家+修理費(fèi)+責(zé)任人等</p><p><b> 新設(shè)備表</b></p><p> 輸入:統(tǒng)計(jì)查詢2.1,購(gòu)買(mǎi)2.2</p><p> 輸出:統(tǒng)計(jì)查詢2.1</p>
28、<p> 數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號(hào)+規(guī)格+單價(jià)+數(shù)量+生產(chǎn)廠家+購(gòu)買(mǎi)人等</p><p><b> 報(bào)廢記錄表</b></p><p> 輸入:報(bào)廢2.4,統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1</p><p> 輸出:統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1</p><p> 數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號(hào)等&l
29、t;/p><p><b> 申請(qǐng)表</b></p><p> 輸入:統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1</p><p> 輸出:統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1,購(gòu)買(mǎi)2.3</p><p> 數(shù)據(jù)結(jié)構(gòu):設(shè)備名+型號(hào)+規(guī)格+數(shù)量+負(fù)責(zé)人</p><p><b> 非功能新需求規(guī)定</
30、b></p><p><b> 精度</b></p><p><b> 軟件的輸入精度:</b></p><p> a.輸入的數(shù)字信息,精度保留到小數(shù)點(diǎn)后兩位。</p><p> b.輸入的公司或單位名稱,必須是全稱,不可以是簡(jiǎn)稱或者是簡(jiǎn)寫(xiě)。</p><p>
31、 e.輸入的可選信息時(shí),以下拉框內(nèi)容為備選選擇,不可以自行輸入。</p><p><b> 時(shí)間特性需求</b></p><p> 對(duì)于該軟件的時(shí)間特性要求為:</p><p> a.響應(yīng)時(shí)間:小于7秒鐘;</p><p> b.更新處理時(shí)間:小于6秒鐘;</p><p><b>
32、; 靈活性</b></p><p> 該軟件的靈活性的要求(即當(dāng)需求發(fā)生某些變化時(shí),該軟件對(duì)這些變化的適應(yīng)能力):</p><p> a.運(yùn)行環(huán)境的變化:可以實(shí)現(xiàn)跨平臺(tái)操作;</p><p> b.同其他軟件的接口的變化:設(shè)計(jì)多元化接口,以實(shí)現(xiàn)與其他軟件接口之間的通信;</p><p> c.精度和有效時(shí)限的變化:統(tǒng)一修
33、改數(shù)據(jù)精度、以及有效時(shí)限的數(shù)據(jù)庫(kù)內(nèi)容;</p><p><b> 可靠性</b></p><p> 本系統(tǒng)的可靠性是指:系統(tǒng)在規(guī)定的條件下、在規(guī)定的時(shí)間內(nèi)完成規(guī)定的功能的能力。</p><p> 影響可靠性的操作流程有:</p><p> 新增用戶時(shí)可能出現(xiàn)信息無(wú)法提交的情況。</p><p&
34、gt; 設(shè)備購(gòu)買(mǎi)登記階段,可能出現(xiàn)設(shè)備信息無(wú)法寫(xiě)入,購(gòu)買(mǎi)信息登記錯(cuò)誤。</p><p> 由于本系統(tǒng)是LEM系統(tǒng),故對(duì)于可靠性的要求較高。具體要求:</p><p> 全部錄入信息以各紙質(zhì)詳單,如購(gòu)買(mǎi)詳單,維修詳單等為準(zhǔn);</p><p> 數(shù)據(jù)的正確性需經(jīng)過(guò)多方核查。</p><p> 自動(dòng)對(duì)于各種信息數(shù)據(jù)進(jìn)行備份。</p&
35、gt;<p> 報(bào)表生成與紙質(zhì)、電子報(bào)表相一致。</p><p><b> 輸入輸出要求</b></p><p><b> 輸入:</b></p><p> 輸入數(shù)據(jù)數(shù)字信息符合輸入精度要求</p><p> 輸入可選信息完全使用下拉框完成</p><p&
36、gt;<b> 輸出:</b></p><p> 輸出數(shù)據(jù)符合輸出精度要求</p><p> 輸出數(shù)據(jù)格式字體大小統(tǒng)一</p><p><b> 3.4故障處理要求</b></p><p> 當(dāng)服務(wù)器死機(jī)時(shí),要求服務(wù)器必須在2小時(shí)內(nèi)恢復(fù),數(shù)據(jù)必須在3小時(shí)內(nèi)恢復(fù)。</p>&l
37、t;p><b> 運(yùn)行環(huán)境規(guī)定</b></p><p><b> 設(shè)備</b></p><p> 運(yùn)行該軟件所需要的硬設(shè)備,包括:</p><p> 處理器型號(hào):Intel Core2;</p><p> 內(nèi)存容量:1.00G;</p><p><b&g
38、t; 硬盤(pán):120G</b></p><p><b> 支持軟件</b></p><p> 操作系統(tǒng):windows2000操作系統(tǒng)以及以上版本;</p><p> 數(shù)據(jù)庫(kù):Sql Server 2008 R2版數(shù)據(jù)庫(kù)</p><p> MyEclipse開(kāi)發(fā)工具</p><p&
39、gt;<b> 5文化和政策需求</b></p><p> 不得引起用戶文化上的沖突,不能出現(xiàn)敏感和不應(yīng)出現(xiàn)的字眼和圖片。符合國(guó)家基本法律法規(guī)以及最新的國(guó)家營(yíng)銷以及市場(chǎng)戰(zhàn)略上的相關(guān)政策,不得與我國(guó)社會(huì)主義政策相違背。</p><p><b> 三:軟件設(shè)計(jì)</b></p><p> 1實(shí)驗(yàn)室設(shè)備管理系統(tǒng)模塊結(jié)構(gòu)圖&
40、lt;/p><p><b> 2界面設(shè)計(jì)</b></p><p><b> 登錄界面</b></p><p> ?。?)任意注冊(cè)管理人員登錄后界面</p><p> 3實(shí)驗(yàn)室設(shè)備管理系統(tǒng)數(shù)據(jù)設(shè)計(jì)</p><p> 4管理系統(tǒng)其中的3個(gè)模塊的詳細(xì)設(shè)計(jì)</p>
41、<p><b> 上級(jí)領(lǐng)導(dǎo)操作模塊</b></p><p> ?、谠O(shè)備管理員操作模塊</p><p><b> 統(tǒng)功能操作模塊</b></p><p><b> 5數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p><b> 模型圖</b></p&
42、gt;<p><b> E-R圖</b></p><p><b> 物理實(shí)現(xiàn)</b></p><p><b> 實(shí)體表</b></p><p> 用戶表(UserInfo)</p><p> 倉(cāng)庫(kù)管理員表(StoreManagerInfo)</p&
43、gt;<p> 【3】實(shí)驗(yàn)室管理員表(StoreManagerInfo)</p><p> 【4】倉(cāng)庫(kù)表(StoreInfo)</p><p> 【5】實(shí)驗(yàn)室表(LabInfo)</p><p> 【5】設(shè)備表(EquipInfo)</p><p> 【6】固定資產(chǎn)表(PropertyInfo)</p>
44、<p><b> (2) 關(guān)系表</b></p><p> 入庫(kù)登記表(InInfo)</p><p> 【2】出庫(kù)登記表(OutInfo)</p><p><b> (3) 記錄表</b></p><p> 【1】購(gòu)買(mǎi)申請(qǐng)表(BuyApplyInfo)</p>&
45、lt;p> 【2】維修申請(qǐng)表(MaintainInfo)</p><p> 【3】購(gòu)買(mǎi)登記表(BuyInfo)</p><p> 【4】維修記錄表(MaintainInfo)</p><p> 【5】報(bào)廢記錄表(DiscardInfo)</p><p> 【6】 購(gòu)買(mǎi)審核表(BuyCheckInfo)</p>&
46、lt;p> 【7】維修審核表(MaintainCheckInfo)</p><p><b> 四、編碼與單元測(cè)試</b></p><p><b> 1、用戶登錄界面:</b></p><p> package com.niit.gui_event;</p><p> import c
47、om.niit.logical.*;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> public class Login extends JFrame {</p>
48、<p><b> /**</b></p><p><b> * </b></p><p><b> */</b></p><p> private static final long serialVersionUID = 1L;</p><p><b&g
49、t; // 控件聲明</b></p><p> private JLabel lPosition, lName, lPasswd, lTitle;</p><p> private JComboBox cbPosition, cbName;</p><p> private JPasswordField pfPasswd;</p>
50、<p> private JButton bConfirm, bCancel;</p><p> private Container con;</p><p> private JPanel[] pCon;</p><p> private User info;</p><p> public Login() {</
51、p><p> super("用戶登錄");</p><p><b> // 控件初始化</b></p><p> con = getContentPane();</p><p> lPosition = new JLabel("身 份:");</p><p&
52、gt; lName = new JLabel("用戶名:");</p><p> lPasswd = new JLabel("密 碼:");</p><p> lTitle = new JLabel("實(shí)驗(yàn)室設(shè)備管理系統(tǒng)");</p><p> lTitle.setForeground(Color.
53、RED);</p><p> pfPasswd = new JPasswordField();</p><p> bConfirm = new JButton("確定");</p><p> bCancel = new JButton("取消");</p><p> String[] aPosi
54、tion = new String[] { "系統(tǒng)管理員", "倉(cāng)庫(kù)管理員", "實(shí)驗(yàn)室管理員",</p><p> "購(gòu)買(mǎi)登記員", "上級(jí)領(lǐng)導(dǎo)" };</p><p> cbPosition = new JComboBox(aPosition);</p><p&g
55、t; int index = cbPosition.getSelectedIndex();</p><p> if (index == 0) {</p><p> info = new Administration();</p><p> } else if (index == 1) {</p><p> info = new St
56、oreManager();</p><p> } else if (index == 2) {</p><p> info = new LabManager();</p><p> } else if (index == 3) {</p><p> info = new BuyManager();</p><p&g
57、t;<b> } else {</b></p><p> info = new OverLeader();</p><p><b> }</b></p><p><b> // 數(shù)組初始化</b></p><p> pCon = new JPanel[5];</
58、p><p> String[] cName = info.getIdByPosition(info);</p><p> cbName = new JComboBox(cName);</p><p> for (int i = 0; i < pCon.length; i++)</p><p> pCon[i] = new JPane
59、l();</p><p><b> }</b></p><p> public void launch() {</p><p><b> // 控件添加</b></p><p> con.setLayout(new GridLayout(5, 1));</p><p>
60、; pCon[0].add(lPosition);</p><p> pCon[0].add(cbPosition);</p><p> pCon[1].add(lName);</p><p> pCon[1].add(cbName);</p><p> pCon[2].add(lPasswd);</p><p&
61、gt; pCon[2].add(pfPasswd);</p><p> pCon[3].add(bConfirm);</p><p> pCon[3].add(bCancel);</p><p> pCon[4].add(lTitle);</p><p> add(pCon[4]);</p><p> fo
62、r (int i = 0; i < pCon.length - 1; i++)</p><p> con.add(pCon[i]);</p><p><b> // 控件設(shè)置</b></p><p> pfPasswd.setEchoChar('*');</p><p> pfPasswd.
63、setColumns(10);</p><p> setBounds(400, 100, 400, 400);</p><p> setVisible(true);</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b> // 添加監(jiān)聽(tīng)器&l
64、t;/b></p><p> cbPosition.addActionListener(new ListenAction());</p><p> bConfirm.addActionListener(new ListenAction());</p><p> bCancel.addActionListener(new ListenAction());&
65、lt;/p><p> pfPasswd.addKeyListener(new ListenKey());</p><p><b> }</b></p><p> // 定義按鈕,下拉框處理器</p><p> class ListenAction implements ActionListener {</p&g
66、t;<p> public void actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == bConfirm) {//點(diǎn)擊確定按鈕</p><p> info.setuId(cbName.getSelectedItem().toString());</p><p> inf
67、o.setuPasswd(new String(pfPasswd.getPassword()));</p><p> info.setuPosition(cbPosition.getSelectedItem().toString());</p><p> if (info.login(info)) {</p><p> new Main(info).launc
68、h();</p><p> setVisible(false);</p><p> pfPasswd.setText(null);</p><p><b> } else {</b></p><p> JOptionPane.showMessageDialog(new Login(), "用戶名,密碼或
69、身份錯(cuò)誤");</p><p> pfPasswd.setText(null);</p><p><b> }</b></p><p> } else if (e.getSource() == cbPosition) {//身份下拉框改變時(shí)</p><p> int index = cbPosition
70、.getSelectedIndex();</p><p> if (index == 0) {</p><p> info = new Administration();</p><p> } else if (index == 1) {</p><p> info = new StoreManager();</p>&
71、lt;p> } else if (index == 2) {</p><p> info = new LabManager();</p><p> } else if (index == 3) {</p><p> info = new BuyManager();</p><p><b> } else {</
72、b></p><p> info = new OverLeader();</p><p><b> }</b></p><p> String[] cName = info.getIdByPosition(info);</p><p><b> //刷新用戶名列表</b></p&
73、gt;<p> cbName.removeAllItems();</p><p> for (int i = 0; i < cName.length; i++)</p><p> cbName.addItem(cName[i]);</p><p><b> } else {</b></p><p&
74、gt; System.exit(0);</p><p><b> }</b></p><p> pfPasswd.setText(null);</p><p><b> }</b></p><p><b> }</b></p><p><
75、b> //定義鍵盤(pán)處理器</b></p><p> class ListenKey extends KeyAdapter {</p><p> @SuppressWarnings("static-access")</p><p> public void keyPressed(KeyEvent e) {</p>
76、;<p> if (e.getKeyText(e.getKeyCode()).compareToIgnoreCase("ENTER") == 0) {</p><p> bConfirm.doClick();</p><p><b> }</b></p><p><b> }</b>
77、;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 2、主界面:</b></p><p> package com.niit.gu
78、i_event;</p><p> import javax.swing.*;</p><p> import com.niit.logical.*;</p><p> import java.awt.event.*;</p><p> public class Main extends JFrame {</p><
79、;p><b> /**</b></p><p><b> * </b></p><p><b> */</b></p><p> private static final long serialVersionUID = 1L;</p><p> private
80、JTabbedPane tp;</p><p> private JPanel p[];</p><p> private User info;</p><p> public Main() {</p><p> super("實(shí)驗(yàn)室設(shè)備管理系統(tǒng)");</p><p> tp = new
81、JTabbedPane();</p><p> p = new JPanel[8];</p><p><b> }</b></p><p> public Main(User info){</p><p><b> this();</b></p><p> this
82、.info=info;</p><p> p[0] = new UserManage();</p><p> p[1] = new EquipIn();</p><p> p[2] = new EquipOut();</p><p> p[3] = new Register(info);</p><p> p
83、[4] = new Apply(info);</p><p> p[5] = new Checks(info);</p><p> p[6]= new Search();</p><p> p[7]=new PasswdModyfy(info);</p><p><b> }</b></p><
84、;p> public void launch() {</p><p> tp.addTab("用戶管理", p[0]);</p><p> tp.addTab("設(shè)備入庫(kù)", p[1]);</p><p> tp.addTab("設(shè)備出庫(kù)", p[2]);</p><p&g
85、t; tp.addTab("設(shè)備登記", p[3]);</p><p> tp.addTab("設(shè)備申請(qǐng)", p[4]);</p><p> tp.addTab("審核申請(qǐng)", p[5]);</p><p> tp.addTab("統(tǒng)計(jì)查詢", p[6]);</p>
86、<p> tp.addTab("個(gè)人信息維護(hù)", p[7]);</p><p> if(info instanceof Administration){</p><p> tp.setEnabledAt(1, false);</p><p> tp.setEnabledAt(2, false);</p><
87、p> tp.setEnabledAt(3, false);</p><p> tp.setEnabledAt(4, false);</p><p> tp.setEnabledAt(5, false);</p><p> tp.setEnabledAt(6, false);</p><p> }else if(info ins
88、tanceof StoreManager){</p><p> tp.setEnabledAt(0, false);</p><p> tp.setEnabledAt(3, false);</p><p> tp.setEnabledAt(5, false);</p><p> tp.setSelectedIndex(1);</
89、p><p> }else if(info instanceof LabManager){</p><p> tp.setEnabledAt(0, false);</p><p> tp.setEnabledAt(1, false);</p><p> tp.setEnabledAt(2, false);</p><p&
90、gt; tp.setEnabledAt(5, false);</p><p> tp.setSelectedIndex(3);</p><p> }else if(info instanceof BuyManager){</p><p> tp.setEnabledAt(0, false);</p><p> tp.setEnabl
91、edAt(1, false);</p><p> tp.setEnabledAt(2, false);</p><p> tp.setEnabledAt(4, false);</p><p> tp.setEnabledAt(5, false);</p><p> tp.setSelectedIndex(3);</p>
92、<p> }else if(info instanceof OverLeader){</p><p> tp.setEnabledAt(0, false);</p><p> tp.setEnabledAt(1, false);</p><p> tp.setEnabledAt(2, false);</p><p> tp
93、.setEnabledAt(3, false);</p><p> tp.setEnabledAt(4, false);</p><p> tp.setSelectedIndex(5);</p><p><b> }</b></p><p> getContentPane().add(tp);</p>
94、<p> setSize(1280, 780);</p><p> setVisible(true);</p><p> addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p><p>
95、System.exit(0);</p><p><b> }</b></p><p><b> });</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
96、 3、設(shè)備申請(qǐng):</b></p><p> package com.niit.gui_event;</p><p> import javax.swing.*;</p><p> import com.niit.logical.*;</p><p> import java.awt.*;</p><p&
97、gt; import java.awt.event.*;</p><p> import com.niit.data.*;</p><p> import java.sql.*;</p><p> public class MaintainApply extends JPanel {</p><p><b> /**<
98、;/b></p><p><b> * </b></p><p><b> */</b></p><p> private static final long serialVersionUID = 1L;</p><p> private JLabel lpId;</p>
99、<p> private JTextField tf;</p><p> private JButton bApply, bAgain, bDelete;</p><p> private JPanel pUp, pDown;</p><p> private JTable t;</p><p> private JSc
100、rollPane jsp;</p><p> private User user;</p><p> private LabManager lm;</p><p> private MaintainApplyData maInfo;</p><p> public MaintainApply(User user) {</p>
101、;<p> super(new BorderLayout());</p><p> this.user = user;</p><p> lpId = new JLabel("固定資產(chǎn)編號(hào)");</p><p> tf = new JTextField();</p><p> tf.setColum
102、ns(15);</p><p> bApply = new JButton("申請(qǐng)");</p><p> bAgain = new JButton("重置");</p><p> bDelete = new JButton("取消申請(qǐng)");</p><p> pUp = n
103、ew JPanel();</p><p> pDown = new JPanel();</p><p> lm = new LabManager();</p><p> maInfo = new MaintainApplyData();</p><p> String[] head = new String[] { "序列號(hào)
104、", "固定資產(chǎn)編號(hào)", "申請(qǐng)人", "申請(qǐng)時(shí)間" };</p><p> Object[][] data = lm.getMaintainApplyAll();</p><p> t = new JTable(data, head);</p><p> t.setRowHeight(25
105、);</p><p> jsp = new JScrollPane(t);</p><p> pUp.add(lpId);</p><p> pUp.add(tf);</p><p> pUp.add(bApply);</p><p> pUp.add(bAgain);</p><p>
106、; pDown.add(bDelete);</p><p> add(pUp, BorderLayout.NORTH);</p><p> add(jsp, BorderLayout.CENTER);</p><p> add(pDown, BorderLayout.SOUTH);</p><p><b> // 添加監(jiān)聽(tīng)
107、器</b></p><p> bApply.addActionListener(new ListenButton());</p><p> bAgain.addActionListener(new ListenButton());</p><p> bDelete.addActionListener(new ListenButton());<
108、/p><p><b> }</b></p><p><b> // 處理器</b></p><p> class ListenButton implements ActionListener {</p><p> public void actionPerformed(ActionEvent e
109、) {</p><p> if (e.getSource() == bApply) {// 申請(qǐng)按鈕</p><p> maInfo.setpId(new Integer(tf.getText()));</p><p> maInfo.setuId(user.getuId());</p><p> maInfo.setDate(new
110、 Date(System.currentTimeMillis()));</p><p> lm.add(maInfo);</p><p> bAgain.doClick();</p><p> } else if (e.getSource() == bAgain) {// 重置按鈕</p><p> tf.setText(null);
111、</p><p> } else if (e.getSource() == bDelete) {// 刪除按鈕</p><p> int selectedIndex = -1;</p><p> for (int i = 0; i < t.getRowCount(); i++) {</p><p> if (t.isRowSel
112、ected(i) == true)</p><p> selectedIndex = i;</p><p><b> }</b></p><p> if (selectedIndex == -1) {</p><p> JOptionPane.showMessageDialog(null, "請(qǐng)先選擇某
113、一項(xiàng)!");</p><p><b> return;</b></p><p><b> } else {</b></p><p> int option = JOptionPane.showConfirmDialog(null, "是否確定刪除?",</p><p&
114、gt; "提示", JOptionPane.YES_NO_CANCEL_OPTION);</p><p> if (option == JOptionPane.YES_OPTION) {</p><p> maInfo.setId(new Integer(t.getValueAt(selectedIndex, 0)</p><p> .t
115、oString()));</p><p> lm.delete(maInfo);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> // 刷新數(shù)
116、據(jù)表</b></p><p> remove(jsp);</p><p> String[] head = new String[] { "序列號(hào)", "固定資產(chǎn)編號(hào)", "申請(qǐng)人", "申請(qǐng)時(shí)間" };</p><p> Object[][] data = lm.ge
117、tMaintainApplyAll();</p><p> t = new JTable(data, head);</p><p> t.setRowHeight(25);</p><p> t.validate();</p><p> jsp = new JScrollPane(t);</p><p> a
118、dd(jsp, BorderLayout.CENTER);</p><p> validate();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b&g
119、t; 4、設(shè)備入庫(kù):</b></p><p> package com.niit.gui_event;</p><p> import java.awt.BorderLayout;</p><p> import java.awt.Cursor;</p><p> import javax.swing.*;</p&
120、gt;<p> import java.awt.*;</p><p> import com.niit.logical.*;</p><p> import java.awt.event.*;</p><p> import java.sql.Date;</p><p> import com.niit.data.*;
121、</p><p> public class EquipIn extends JPanel {</p><p><b> /**</b></p><p><b> * </b></p><p><b> */</b></p><p> priv
122、ate static final long serialVersionUID = 1L;</p><p> private JLabel leId, lsId, liNum, lPara;</p><p> private JTextField tfiNum;</p><p> private JComboBox cbeId, cbsId;</p>
123、<p> private JButton bIn, bAgain, bDelete;</p><p> private JPanel pUp, pDown;</p><p> private JScrollPane jsp;</p><p> private JTable t;</p><p> private Sto
124、reManager sma;</p><p> private InData inInfo;</p><p> public EquipIn() {</p><p> super(new BorderLayout());// 設(shè)置布局管理器</p><p><b> // 控件初始化</b></p>
125、<p> leId = new JLabel("設(shè)備編號(hào)");</p><p> lsId = new JLabel("倉(cāng)庫(kù)編號(hào)");</p><p> liNum = new JLabel("入庫(kù)數(shù)量");</p><p> lPara = new JLabel("參數(shù)設(shè)置&
126、quot;);</p><p> lPara.setForeground(Color.RED);</p><p> tfiNum = new JTextField();</p><p> tfiNum.setColumns(10);</p><p> bIn = new JButton("入庫(kù)");</p&g
127、t;<p> bAgain = new JButton("重置");</p><p> bDelete = new JButton("刪除");</p><p> pUp = new JPanel();</p><p> pDown = new JPanel();</p><p>
128、 sma = new StoreManager();</p><p> inInfo = new InData();</p><p> String[] eId = sma.geteId();</p><p> String[] sId = sma.getsIdAll();</p><p> cbeId = new JComboBo
129、x(eId);</p><p> cbsId = new JComboBox(sId);</p><p> String[] head = new String[] { "設(shè)備編號(hào)", "倉(cāng)庫(kù)編號(hào)", "入庫(kù)時(shí)間", "入庫(kù)數(shù)量" };</p><p> Object[][] da
130、ta = sma.getInAll();</p><p> t = new JTable(data, head);</p><p> t.setRowHeight(25);</p><p> jsp = new JScrollPane(t);</p><p><b> // 添加控件</b></p>
131、<p> pUp.add(leId);</p><p> pUp.add(cbeId);</p><p> pUp.add(lsId);</p><p> pUp.add(cbsId);</p><p> pUp.add(liNum);</p><p> pUp.add(tfiNum);<
132、/p><p> pUp.add(bIn);</p><p> pUp.add(bAgain);</p><p> pUp.add(lPara);</p><p> pDown.add(bDelete);</p><p> add(pUp, BorderLayout.NORTH);</p><p
133、> add(jsp, BorderLayout.CENTER);</p><p> add(pDown, BorderLayout.SOUTH);</p><p><b> // 添加監(jiān)聽(tīng)器</b></p><p> bIn.addActionListener(new ListenButton());</p><
134、;p> bAgain.addActionListener(new ListenButton());</p><p> bDelete.addActionListener(new ListenButton());</p><p> lPara.addMouseListener(new ListenMouse());</p><p><b> }
135、</b></p><p> // 定義按鈕處理器</p><p> class ListenButton implements ActionListener {</p><p> public void actionPerformed(ActionEvent e) {</p><p> if (e.getSource()
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)課程設(shè)計(jì)
- javaee課程設(shè)計(jì)--實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告)
- 個(gè)人課程設(shè)計(jì)報(bào)告—實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- c++課程設(shè)計(jì)---實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--實(shí)驗(yàn)室設(shè)備管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)--實(shí)驗(yàn)室設(shè)備管理信息系統(tǒng)
- 課程設(shè)計(jì)---實(shí)驗(yàn)室設(shè)備管理數(shù)據(jù)庫(kù)分析與設(shè)計(jì)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng).rar
- 課程設(shè)計(jì)(實(shí)驗(yàn)設(shè)備管理系統(tǒng))
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)代碼.rar
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)代碼.rar
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)代碼.rar
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)代碼.rar
- php課程設(shè)計(jì)——實(shí)驗(yàn)室管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告--實(shí)驗(yàn)設(shè)備管理系統(tǒng)設(shè)計(jì)
- 面向?qū)ο笳n程設(shè)計(jì)--實(shí)驗(yàn)室設(shè)備信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論