實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告).doc_第1頁(yè)
實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告).doc_第2頁(yè)
實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告).doc_第3頁(yè)
實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告).doc_第4頁(yè)
實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告).doc_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

西安文理學(xué)院 軟件學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 實(shí)驗(yàn)設(shè)備管理系統(tǒng) 設(shè)計(jì)題目: 實(shí)驗(yàn)設(shè)備管理系統(tǒng) 專業(yè)班級(jí): 軟件工程一班 學(xué)生姓名: 張興華 陳琛 任小艷 學(xué)生成績(jī): 指導(dǎo)教師(職稱):甘田(教授) 課題工作時(shí)間: 2013年12月20日至2014年1月8日 軟件學(xué)院課程設(shè)計(jì)任務(wù)書學(xué)生姓 名張興華 陳琛 任小艷學(xué) 號(hào)1410210010 9專業(yè)班級(jí)軟件工程一班設(shè)計(jì)題目 實(shí)驗(yàn)設(shè)備管理系統(tǒng)內(nèi)容概要:每學(xué)年要對(duì)實(shí)驗(yàn)室設(shè)備使用情況進(jìn)行統(tǒng)計(jì)、更新,其中:(1)對(duì)于已徹底損壞的作報(bào)廢處理,同時(shí)詳細(xì)記錄有關(guān)信息。(2)對(duì)于有嚴(yán)重問題(故障)的要即使修理,并記錄修理日期、設(shè)備名、修理廠家、修理費(fèi)、責(zé)任人等。(3)對(duì)于急需但又缺少的設(shè)備需以“申請(qǐng)表”的形式送交上級(jí)領(lǐng)導(dǎo)請(qǐng)求批準(zhǔn)購(gòu)買。新設(shè)備購(gòu)入后要立即進(jìn)行設(shè)備登記(包括類別、設(shè)備名、型號(hào)、規(guī)格、單價(jià)、數(shù)量、購(gòu)置日期、生產(chǎn)廠家、購(gòu)買人等),同時(shí)更新申請(qǐng)表的內(nèi)容。(4)隨時(shí)對(duì)現(xiàn)有設(shè)備及其修理、報(bào)廢情況進(jìn)行統(tǒng)計(jì)、查詢,要求能夠按類別和時(shí)間段(某日期之前)查詢。文獻(xiàn)資料:Java面向?qū)ο蟪绦蛟O(shè)計(jì),耿祥義、張躍平編著,清華大學(xué)出版社SQL Server 數(shù)據(jù)庫(kù)教程(2008版), 鄭阿奇,劉啟芬,顧韻華主編,人民郵電出版社設(shè)計(jì)要求:(1)所有工作由專門人員負(fù)責(zé)完成,其他人不得任意使用。(2)每件設(shè)備在作入庫(kù)登記時(shí)均由系統(tǒng)按類別自動(dòng)順序編號(hào),形成設(shè)備號(hào);設(shè)備報(bào)廢時(shí)要及時(shí)修改相應(yīng)的設(shè)備記錄,且有領(lǐng)導(dǎo)認(rèn)可。(3)本系統(tǒng)的數(shù)據(jù)存儲(chǔ)至少應(yīng)包含:設(shè)備記錄、修理記錄、報(bào)廢記錄、購(gòu)買申請(qǐng)。(4)本系統(tǒng)的輸入項(xiàng)至少包含:新設(shè)備信息、修理信息、申請(qǐng)購(gòu)買信息、報(bào)廢信息、具體查詢統(tǒng)計(jì)要求。(5)本系統(tǒng)的輸出項(xiàng)至少包含:設(shè)備購(gòu)買申請(qǐng)表、修理/報(bào)廢注銷/設(shè)備資金統(tǒng)計(jì)表。工作期限:設(shè)計(jì)工作自2013年12月20日至2014年01月08日止。指導(dǎo)教師: 甘田 院主任: 日 期:2014年01月06日課程設(shè)計(jì):實(shí)驗(yàn)室設(shè)備管理系統(tǒng)一、 項(xiàng)目管理:階段時(shí)間任務(wù)參與人員產(chǎn)生文檔項(xiàng)目管理2013.12.21 確定課題,組織組員,合理分工。分工明細(xì)及項(xiàng)目進(jìn)程表需求分析2013.12.22 確定軟件的功能和需求、性能需求和運(yùn)行環(huán)境約束,編制軟件需求規(guī)格說(shuō)明、軟件系統(tǒng)的確認(rèn)測(cè)試準(zhǔn)則需求規(guī)格說(shuō)明書確認(rèn)測(cè)試準(zhǔn)則概要設(shè)計(jì)2013.12.23 建立軟件系統(tǒng)的總體結(jié)構(gòu)和模塊間的關(guān)系,定義各功能模塊的接口,涉及全局?jǐn)?shù)據(jù)庫(kù),規(guī)定涉及約束,制定組裝測(cè)試計(jì)劃。概要設(shè)計(jì)說(shuō)明書組裝測(cè)試計(jì)劃數(shù)據(jù)庫(kù)設(shè)計(jì)2013.12.24 根據(jù)概要設(shè)計(jì)對(duì)本軟件所必須的數(shù)據(jù)庫(kù)進(jìn)行分析及設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書詳細(xì)設(shè)計(jì)2013.12.25 對(duì)概要設(shè)計(jì)產(chǎn)生的功能模塊逐步細(xì)化,形成若干個(gè)可編程的程序模塊模塊測(cè)試方案編碼2013.12.262014.01.01根據(jù)詳細(xì)設(shè)計(jì)文檔將詳細(xì)設(shè)計(jì)轉(zhuǎn)化為所要求的編程語(yǔ)言或數(shù)據(jù)庫(kù)語(yǔ)言的程序,并對(duì)這些程序進(jìn)行調(diào)試和程序單元測(cè)試,驗(yàn)證程序模塊與詳細(xì)設(shè)計(jì)文檔的一致性源程序清單測(cè)試單元測(cè)試2014.01.022014.01.03采用白盒測(cè)試技術(shù)進(jìn)行如下測(cè)試:1. 模塊接口測(cè)試;2. 模塊局部數(shù)據(jù)結(jié)構(gòu)測(cè)試;3. 模塊邊界條件測(cè)試;4. 模塊中所有獨(dú)立執(zhí)行通路測(cè)試;5. 模塊的各條錯(cuò)誤處理通路測(cè)試。單元測(cè)試報(bào)告綜合測(cè)試2014.01.04發(fā)現(xiàn)與接口有關(guān)的各種錯(cuò)誤綜合測(cè)試報(bào)告確認(rèn)測(cè)試2014.01.04 檢查軟件是否滿足軟件需求說(shuō)明書中的確認(rèn)標(biāo)準(zhǔn)確認(rèn)測(cè)試報(bào)告項(xiàng)目實(shí)施2014.01.042014.01.04完善程序流圖書寫軟件使用說(shuō)明書和用戶手冊(cè)項(xiàng)目開發(fā)總結(jié)報(bào)告最終用戶手冊(cè)二、 軟件需求分析1. 引言1.1 編寫目的此需求說(shuō)明書詳細(xì)陳述了“實(shí)驗(yàn)設(shè)備管理系統(tǒng)”的所提供各項(xiàng)功能。其中包括用戶的功能性需求以及非功能性需求,為用戶提供完整且較詳盡的系統(tǒng)功能運(yùn)作藍(lán)圖。同時(shí)為設(shè)計(jì)人員提供一個(gè)完整的、可靠的設(shè)計(jì)約束,以便高質(zhì)量地設(shè)計(jì)、編寫代碼,完成系項(xiàng)目預(yù)期目標(biāo)。還給開發(fā)人員提供了參考。此需求說(shuō)明書的預(yù)期讀者為項(xiàng)目經(jīng)理、設(shè)計(jì)人員、開發(fā)人員、用戶等。1.2 背景說(shuō)明:a.待開發(fā)的軟件系統(tǒng)的名稱:實(shí)驗(yàn)設(shè)備管理系統(tǒng);b.本項(xiàng)目的任務(wù)提出者:西安文理學(xué)院;c.本項(xiàng)目的開發(fā)者:張興華 陳琛 任小艷;d.本項(xiàng)目的用戶:西安文理學(xué)院相關(guān)管理人員;e.該軟件系統(tǒng)同其他系統(tǒng)或其他機(jī)構(gòu)的基本的相互來(lái)往關(guān)系:與西安文理學(xué)院財(cái)務(wù)管理軟件系統(tǒng)有相應(yīng)接口。1.3 定義LEM:實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(Laboratory Equipment Management);2. 任務(wù)概述2.1 目標(biāo)隨著高校規(guī)模的擴(kuò)大,實(shí)驗(yàn)室及倉(cāng)庫(kù)的增多,人工管理實(shí)驗(yàn)設(shè)備已變得過于低效,為了解決這一問題,高校實(shí)驗(yàn)室設(shè)備管理系統(tǒng)將實(shí)現(xiàn)設(shè)備管理的自動(dòng)化。實(shí)驗(yàn)室設(shè)備管理系統(tǒng)將貫穿于設(shè)備從購(gòu)進(jìn)到報(bào)廢的整個(gè)流程的管理過程,幫助管理員高效地管理整個(gè)高校的所有設(shè)備,并給上級(jí)領(lǐng)導(dǎo)提供一個(gè)審核監(jiān)督管理的平臺(tái)。2.2 用戶的特點(diǎn) 此軟件的使用用戶為: 西安文理學(xué)院相關(guān)管理人員。因此,我們通??梢哉J(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)。3. 需求規(guī)定3.1 功能性需求規(guī)定3.1.1 系統(tǒng)整體功能層次圖3.1.2 業(yè)務(wù)流程分析數(shù)據(jù)流圖:流程詳細(xì)說(shuō)明:(1) 倉(cāng)庫(kù)管理員統(tǒng)計(jì)倉(cāng)庫(kù)中設(shè)備的庫(kù)存量,找出庫(kù)存量不足的設(shè)備,填寫購(gòu)買申請(qǐng)表,領(lǐng)導(dǎo)對(duì)此申請(qǐng)表進(jìn)行審核,審核通過后,產(chǎn)生購(gòu)買報(bào)表交給購(gòu)買員。(2) 購(gòu)買員將購(gòu)買的設(shè)備及購(gòu)買信息交給購(gòu)買登記員,由他進(jìn)行購(gòu)買登記。購(gòu)買登記員查詢申請(qǐng)審核表,將設(shè)備分配到各倉(cāng)庫(kù)。(3) 倉(cāng)庫(kù)管理員對(duì)購(gòu)買的設(shè)備進(jìn)行入庫(kù)登記,出庫(kù)登記。(4) 實(shí)驗(yàn)室管理員負(fù)責(zé)對(duì)報(bào)廢的設(shè)備進(jìn)行報(bào)廢登記并處理,找出要維修的設(shè)備填寫維修申請(qǐng)表,領(lǐng)導(dǎo)對(duì)維修申請(qǐng)表進(jìn)行審核,通過后產(chǎn)生維修報(bào)表交給維修員,維修員將設(shè)備送交某一修理廠家進(jìn)行維修。(5) 設(shè)備維修完后,交還原實(shí)驗(yàn)室,由實(shí)驗(yàn)室管理員進(jìn)行維修登記。3.1.2 系統(tǒng)用戶列表高校LEM面向五類用戶:系統(tǒng)管理員,購(gòu)買登記員,倉(cāng)庫(kù)管理員,實(shí)驗(yàn)室管理員,上級(jí)領(lǐng)導(dǎo),這幾類用戶通過高校LEM系統(tǒng)進(jìn)行設(shè)備管理上的交流,而該系統(tǒng)為用戶提供不同的功能?!?】系統(tǒng)管理員1注冊(cè)本系統(tǒng)用戶;2注銷本系統(tǒng)用戶;3數(shù)據(jù)庫(kù)的維護(hù);4本人信息維護(hù);【2】購(gòu)買登記員1 將購(gòu)買員提交的購(gòu)買信息進(jìn)行登記,記錄有關(guān)設(shè)備基本信息,設(shè)備的購(gòu)買信息如價(jià)格,數(shù)量等;2查詢領(lǐng)導(dǎo)的購(gòu)買申請(qǐng)審核信息;3根據(jù)審核信息將購(gòu)買的設(shè)備分配到相應(yīng)的倉(cāng)庫(kù),將有關(guān)詳單提交倉(cāng)庫(kù)管理員,4本人信息維護(hù)?!?】倉(cāng)庫(kù)管理員1 根據(jù)購(gòu)買登記員提交的詳單進(jìn)行入庫(kù)登記;2 根據(jù)實(shí)驗(yàn)室管理員提交的詳單進(jìn)行出庫(kù)登記;3 查詢統(tǒng)計(jì)本倉(cāng)庫(kù)中的所有設(shè)備的庫(kù)存量,統(tǒng)計(jì)出庫(kù)存量不足的設(shè)備;4 根據(jù)統(tǒng)計(jì)信息進(jìn)行購(gòu)買申請(qǐng)。5 本人信息維護(hù);【4】實(shí)驗(yàn)室管理員1 管理本實(shí)驗(yàn)室中各設(shè)備,找出需要維修的設(shè)備,進(jìn)行維修申請(qǐng);2 對(duì)于不能維修的設(shè)備,要進(jìn)行報(bào)廢記錄;3 查詢統(tǒng)計(jì)本實(shí)驗(yàn)室設(shè)備擁有量,統(tǒng)計(jì)出數(shù)量不足的設(shè)備,產(chǎn)生詳單提交倉(cāng)庫(kù)管理員;4 對(duì)于已維修完成的設(shè)備,根據(jù)維修員提交維修單進(jìn)行維修記錄;5 本人信息維護(hù)。【5】上級(jí)領(lǐng)導(dǎo)1 查看購(gòu)買申請(qǐng)表,對(duì)申請(qǐng)進(jìn)行審核,審核后產(chǎn)生購(gòu)買訂單交于購(gòu)買員;2 查看維修申請(qǐng)表,對(duì)申請(qǐng)進(jìn)行審核,審核后產(chǎn)生維修訂單交于維修員;3 個(gè)人信息維護(hù)。3.2 軟件系統(tǒng)數(shù)據(jù)字典3.21數(shù)據(jù)流條目 登陸信息輸入:設(shè)備管理員輸出:身份驗(yàn)證1描述:登陸信息=用戶名+密碼+登陸權(quán)限 查詢信息輸入:合法人員對(duì)設(shè)備的查詢操作輸出:設(shè)備信息表描述:查詢信息=設(shè)備名/型號(hào)/類別/購(gòu)置日期 維修信息輸入:所需維修設(shè)備的信息輸出:確定維修設(shè)備的記錄描述:維修信息=設(shè)備名+修理日期+修理廠家+修理費(fèi)+負(fù)責(zé)人 新設(shè)備輸入:購(gòu)買設(shè)備的信息輸出:確定購(gòu)買的新設(shè)備的記錄描述:新設(shè)備=類別+設(shè)備名+型號(hào)+規(guī)格+單價(jià)+數(shù)量等 報(bào)廢設(shè)備輸入:所需報(bào)廢的設(shè)備的信息輸出:報(bào)廢的設(shè)備記錄描述:報(bào)廢設(shè)備=類別+設(shè)備名+型號(hào)等 審核信息輸入:審核3輸出:上級(jí)領(lǐng)導(dǎo)描述:審核信息=報(bào)廢設(shè)備信息/新設(shè)備購(gòu)買記錄3.22加工條目身份驗(yàn)證1,統(tǒng)計(jì)查詢2.1,維修2.2,購(gòu)買2.3,報(bào)廢2.4,生產(chǎn)報(bào)表3.1,審核3.23.23文件條目 登陸表輸入:身份驗(yàn)證1輸出:身份驗(yàn)證1數(shù)據(jù)結(jié)構(gòu):用戶名+密碼+登陸權(quán)限 設(shè)備基本信息表輸入:統(tǒng)計(jì)查詢2.1數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號(hào)+規(guī)格等 維修記錄表輸入:統(tǒng)計(jì)查詢2.1,維修2.2輸出:統(tǒng)計(jì)查詢2.1數(shù)據(jù)結(jié)構(gòu):設(shè)備名+修理日期+修理廠家+修理費(fèi)+責(zé)任人等 新設(shè)備表輸入:統(tǒng)計(jì)查詢2.1,購(gòu)買2.2輸出:統(tǒng)計(jì)查詢2.1數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號(hào)+規(guī)格+單價(jià)+數(shù)量+生產(chǎn)廠家+購(gòu)買人等 報(bào)廢記錄表輸入:報(bào)廢2.4,統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1輸出:統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1數(shù)據(jù)結(jié)構(gòu):類別+設(shè)備名+型號(hào)等 申請(qǐng)表輸入:統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1輸出:統(tǒng)計(jì)查詢2.1,生產(chǎn)報(bào)表3.1,購(gòu)買2.3數(shù)據(jù)結(jié)構(gòu):設(shè)備名+型號(hào)+規(guī)格+數(shù)量+負(fù)責(zé)人3.3 非功能新需求規(guī)定3.3.1 精度軟件的輸入精度:a.輸入的數(shù)字信息,精度保留到小數(shù)點(diǎn)后兩位。b.輸入的公司或單位名稱,必須是全稱,不可以是簡(jiǎn)稱或者是簡(jiǎn)寫。e.輸入的可選信息時(shí),以下拉框內(nèi)容為備選選擇,不可以自行輸入。3.3.2 時(shí)間特性需求 對(duì)于該軟件的時(shí)間特性要求為:a.響應(yīng)時(shí)間:小于7秒鐘;b.更新處理時(shí)間:小于6秒鐘;3.3.3 靈活性該軟件的靈活性的要求(即當(dāng)需求發(fā)生某些變化時(shí),該軟件對(duì)這些變化的適應(yīng)能力):a.運(yùn)行環(huán)境的變化:可以實(shí)現(xiàn)跨平臺(tái)操作;b.同其他軟件的接口的變化:設(shè)計(jì)多元化接口,以實(shí)現(xiàn)與其他軟件接口之間的通信;c.精度和有效時(shí)限的變化:統(tǒng)一修改數(shù)據(jù)精度、以及有效時(shí)限的數(shù)據(jù)庫(kù)內(nèi)容;3.3.4 可靠性本系統(tǒng)的可靠性是指:系統(tǒng)在規(guī)定的條件下、在規(guī)定的時(shí)間內(nèi)完成規(guī)定的功能的能力。影響可靠性的操作流程有:1. 新增用戶時(shí)可能出現(xiàn)信息無(wú)法提交的情況。2. 設(shè)備購(gòu)買登記階段,可能出現(xiàn)設(shè)備信息無(wú)法寫入,購(gòu)買信息登記錯(cuò)誤。由于本系統(tǒng)是LEM系統(tǒng),故對(duì)于可靠性的要求較高。具體要求:1. 全部錄入信息以各紙質(zhì)詳單,如購(gòu)買詳單,維修詳單等為準(zhǔn);2. 數(shù)據(jù)的正確性需經(jīng)過多方核查。3. 自動(dòng)對(duì)于各種信息數(shù)據(jù)進(jìn)行備份。4. 報(bào)表生成與紙質(zhì)、電子報(bào)表相一致。3.4 輸入輸出要求輸入:a. 輸入數(shù)據(jù)數(shù)字信息符合輸入精度要求b. 輸入可選信息完全使用下拉框完成輸出:a. 輸出數(shù)據(jù)符合輸出精度要求b. 輸出數(shù)據(jù)格式字體大小統(tǒng)一3.4故障處理要求當(dāng)服務(wù)器死機(jī)時(shí),要求服務(wù)器必須在2小時(shí)內(nèi)恢復(fù),數(shù)據(jù)必須在3小時(shí)內(nèi)恢復(fù)。4. 運(yùn)行環(huán)境規(guī)定4.1 設(shè)備運(yùn)行該軟件所需要的硬設(shè)備,包括:【1】 處理器型號(hào):Intel Core2;【2】 內(nèi)存容量:1.00G;【3】 硬盤:120G4.2 支持軟件【1】 操作系統(tǒng):windows2000操作系統(tǒng)以及以上版本;【2】 數(shù)據(jù)庫(kù):Sql Server 2008 R2版數(shù)據(jù)庫(kù)【3】 MyEclipse開發(fā)工具5文化和政策需求不得引起用戶文化上的沖突,不能出現(xiàn)敏感和不應(yīng)出現(xiàn)的字眼和圖片。符合國(guó)家基本法律法規(guī)以及最新的國(guó)家營(yíng)銷以及市場(chǎng)戰(zhàn)略上的相關(guān)政策,不得與我國(guó)社會(huì)主義政策相違背。三:軟件設(shè)計(jì)1實(shí)驗(yàn)室設(shè)備管理系統(tǒng)模塊結(jié)構(gòu)圖2界面設(shè)計(jì)(1) 登錄界面(2)任意注冊(cè)管理人員登錄后界面3實(shí)驗(yàn)室設(shè)備管理系統(tǒng)數(shù)據(jù)設(shè)計(jì)4管理系統(tǒng)其中的3個(gè)模塊的詳細(xì)設(shè)計(jì) 上級(jí)領(lǐng)導(dǎo)操作模塊設(shè)備管理員操作模塊 統(tǒng)功能操作模塊5數(shù)據(jù)庫(kù)設(shè)計(jì)1. 模型圖2. E-R圖3. 物理實(shí)現(xiàn)(1) 實(shí)體表【1】 用戶表(UserInfo)字段類型備注uIdVarchar(15)用戶名,主鍵uNameVarchar(15)姓名uPasswdVarchar(15)密碼uPositionVarchar(15)身份,主鍵【2】 倉(cāng)庫(kù)管理員表(StoreManagerInfo)字段類型備注uIdVarchar(15)用戶名,主鍵sIdVarchar(15)倉(cāng)庫(kù)編號(hào),外鍵約束于倉(cāng)庫(kù)表【3】實(shí)驗(yàn)室管理員表(StoreManagerInfo)字段類型備注uIdVarchar(15)用戶名,主鍵lIdVarchar(15)倉(cāng)庫(kù)編號(hào),外鍵約束于實(shí)驗(yàn)室表【4】倉(cāng)庫(kù)表(StoreInfo)字段類型備注sIdVarchar(15)倉(cāng)庫(kù)編號(hào),主鍵sNameVarchar(15)倉(cāng)庫(kù)名稱sPlaceVarchar(15)所在校區(qū)【5】實(shí)驗(yàn)室表(LabInfo)字段類型備注lIdVarchar(15)實(shí)驗(yàn)室編號(hào),主鍵lNameVarchar(15)實(shí)驗(yàn)室名稱lPlaceVarchar(15)所在校區(qū)【5】設(shè)備表(EquipInfo)字段類型備注eIdVarchar(15)設(shè)備編號(hào),主鍵eNameVarchar(15)設(shè)備名稱eStandardVarchar(15)規(guī)格型號(hào)eProCompanyVarchar(15)生產(chǎn)廠商eTypeVarchar(15)設(shè)備類型【6】固定資產(chǎn)表(PropertyInfo)字段類型備注pIdVarchar(15)固定資產(chǎn)編號(hào),主鍵eIdVarchar(15)所屬設(shè)備編號(hào),外鍵約束于設(shè)備表lIdVarchar(15)所在實(shí)驗(yàn)室編號(hào),外鍵約束于實(shí)驗(yàn)室表(2) 關(guān)系表【1】 入庫(kù)登記表(InInfo)字段類型備注eIdVarchar(15)設(shè)備編號(hào),主鍵,外鍵約束于設(shè)備表sIdVarchar(15)倉(cāng)庫(kù)編號(hào),主鍵,外鍵約束于倉(cāng)庫(kù)表iDateDateTime入庫(kù)時(shí)間,主鍵iNumint入庫(kù)數(shù)量【2】出庫(kù)登記表(OutInfo)字段類型備注eIdVarchar(15)設(shè)備編號(hào),主鍵,外鍵約束于設(shè)備表sIdVarchar(15)倉(cāng)庫(kù)編號(hào),主鍵,外鍵約束于倉(cāng)庫(kù)表lIdVarchar(15)實(shí)驗(yàn)室編號(hào),主鍵,外鍵約束于實(shí)驗(yàn)室表iDateDateTime出庫(kù)時(shí)間,主鍵iNumint出庫(kù)數(shù)量(3) 記錄表【1】購(gòu)買申請(qǐng)表(BuyApplyInfo)字段類型備注baIdVarchar(15)序列號(hào),主鍵eIdVarchar(15)設(shè)備編號(hào),外鍵約束于設(shè)備表smNameVarchar(15)申請(qǐng)人,外鍵約束于倉(cāng)庫(kù)管理員表baDateDateTime申請(qǐng)時(shí)間baNumInt申請(qǐng)數(shù)量【2】維修申請(qǐng)表(MaintainInfo)字段類型備注maIdVarchar(15)序列號(hào),主鍵pIdVarchar(15)固定資產(chǎn)編號(hào),外鍵約束于固定資產(chǎn)表lmNameVarchar(15)申請(qǐng)人,外鍵約束于實(shí)驗(yàn)室管理員表maDateDateTime申請(qǐng)時(shí)間【3】購(gòu)買登記表(BuyInfo)字段類型備注bIdVarchar(15)序列號(hào),主鍵eIdVarchar(15)設(shè)備編號(hào),外鍵約束于設(shè)備表bPriceMoney購(gòu)買單價(jià)bDateDateTime購(gòu)買時(shí)間bNumInt購(gòu)買數(shù)量【4】維修記錄表(MaintainInfo)字段類型備注mIdVarchar(15)序列號(hào),主鍵pIdVarchar(15)固定資產(chǎn)編號(hào),外鍵約束于固定資產(chǎn)表mDateDateTime維修時(shí)間【5】報(bào)廢記錄表(DiscardInfo)字段類型備注dIdVarchar(15)序列號(hào),主鍵pIdVarchar(15)固定資產(chǎn)編號(hào),外鍵約束于固定資產(chǎn)表dDateDateTime報(bào)廢時(shí)間【6】 購(gòu)買審核表(BuyCheckInfo)字段類型備注bcIdVarchar(15)序列號(hào),主鍵baIdVarchar(15)申請(qǐng)序列號(hào),外鍵約束于購(gòu)買申請(qǐng)表olNameVarchar(15)審核人,外鍵約束于上級(jí)領(lǐng)導(dǎo)表bcDateDateTime審核時(shí)間【7】維修審核表(MaintainCheckInfo)字段類型備注mcIdVarchar(15)序列號(hào),主鍵maIdVarchar(15)申請(qǐng)序列號(hào),外鍵約束于維修申請(qǐng)表olNameVarchar(15)審核人,外鍵約束于上級(jí)領(lǐng)導(dǎo)表mcDateDateTime審核時(shí)間四、編碼與單元測(cè)試1、用戶登錄界面:package com.niit.gui_event;import com.niit.logical.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Login extends JFrame /* * */private static final long serialVersionUID = 1L;/ 控件聲明private JLabel lPosition, lName, lPasswd, lTitle;private JComboBox cbPosition, cbName;private JPasswordField pfPasswd;private JButton bConfirm, bCancel;private Container con;private JPanel 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 = new JButton(取消);String aPosition = new String 系統(tǒng)管理員, 倉(cāng)庫(kù)管理員, 實(shí)驗(yàn)室管理員,購(gòu)買登記員, 上級(jí)領(lǐng)導(dǎo) ;cbPosition = new JComboBox(aPosition);int index = cbPosition.getSelectedIndex();if (index = 0) info = new Administration(); else if (index = 1) info = new StoreManager(); else if (index = 2) info = new LabManager(); else if (index = 3) info = new BuyManager(); else info = 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);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è)置pfPasswd.setEchoChar(*);pfPasswd.setColumns(10);setBounds(400, 100, 400, 400);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 添加監(jiān)聽器cbPosition.addActionListener(new ListenAction();bConfirm.addActionListener(new ListenAction();bCancel.addActionListener(new ListenAction();pfPasswd.addKeyListener(new ListenKey();/ 定義按鈕,下拉框處理器class ListenAction implements ActionListener public void actionPerformed(ActionEvent e) if (e.getSource() = bConfirm) /點(diǎn)擊確定按鈕info.setuId(cbName.getSelectedItem().toString();info.setuPasswd(new String(pfPasswd.getPassword();info.setuPosition(cbPosition.getSelectedItem().toString();if (info.login(info) new Main(info).launch();setVisible(false);pfPasswd.setText(null); else JOptionPane.showMessageDialog(new Login(), 用戶名,密碼或身份錯(cuò)誤);pfPasswd.setText(null); else if (e.getSource() = cbPosition) /身份下拉框改變時(shí)int index = cbPosition.getSelectedIndex();if (index = 0) info = new Administration(); else if (index = 1) info = new StoreManager(); else if (index = 2) info = new LabManager(); else if (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 System.exit(0);pfPasswd.setText(null);/定義鍵盤處理器class ListenKey extends KeyAdapter SuppressWarnings(static-access)public void keyPressed(KeyEvent e) if (e.getKeyText(e.getKeyCode().compareToIgnoreCase(ENTER) = 0) bConfirm.doClick();2、主界面:package com.niit.gui_event;import javax.swing.*;import com.niit.logical.*;import java.awt.event.*;public class Main extends JFrame /* * */private static final long serialVersionUID = 1L;private JTabbedPane tp;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 EquipOut();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è)備入庫(kù), p1);tp.addTab(設(shè)備出庫(kù), p2);tp.addTab(設(shè)備登記, p3);tp.addTab(設(shè)備申請(qǐng), p4);tp.addTab(審核申請(qǐng), p5);tp.addTab(統(tǒng)計(jì)查詢, p6);tp.addTab(個(gè)人信息維護(hù), 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);tp.setEnabledAt(6, false);else if(info instanceof StoreManager)tp.setEnabledAt(0, false);tp.setEnabledAt(3, false);tp.setEnabledAt(5, false);tp.setSelectedIndex(1);else if(info instanceof LabManager)tp.setEnabledAt(0, false);tp.setEnabledAt(1, false);tp.setEnabledAt(2, false);tp.setEnabledAt(5, false);tp.setSelectedIndex(3);else if(info instanceof BuyManager)tp.setEnabledAt(0, false);tp.setEnabledAt(1, false);tp.setEnabledAt(2, false);tp.setEnabledAt(4, false);tp.setEnabledAt(5, false);tp.setSelectedIndex(3);else if(info instanceof 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(tp);setSize(1280, 780);setVisible(true);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););3、設(shè)備申請(qǐng):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.*;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 JScrollPane jsp;private User user;private LabManager lm;private MaintainApplyData maInfo;public MaintainApply(User user) super(new BorderLayout();this.user = user;lpId = new JLabel(固定資產(chǎn)編號(hào));tf = new JTextField();tf.setColumns(15);bApply = new JButton(申請(qǐng));bAgain = new JButton(重置);bDelete = new JButton(取消申請(qǐng));pUp = new JPanel();pDown = new JPanel();lm = new LabManager();maInfo = new MaintainApplyData();String head = new String 序列號(hào), 固定資產(chǎn)編號(hào), 申請(qǐng)人, 申請(qǐng)時(shí)間 ;Object data = lm.getMaintainApplyAll();t = new JTable(data, head);t.setRowHeight(25);jsp = new JScrollPane(t);pUp.add(lpId);pUp.add(tf);pUp.add(bApply);pUp.add(bAgain);pDown.add(bDelete);add(pUp, BorderLayout.NORTH);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(ActionEvent e) if (e.getSource() = bApply) / 申請(qǐng)按鈕maInfo.setpId(new Integer(tf.getText();maInfo.setuId(user.getuId();maInfo.setDate(new Date(System.currentTimeMillis();lm.add(maInfo);bAgain.doClick(); else if (e.getSource() = bAgain) / 重置按鈕tf.setText(null); else if (e.getSource() = bDelete) / 刪除按鈕int selectedIndex = -1;for (int i = 0; i t.getRowCount(); i+) if (t.isRowSelected(i) = true)selectedIndex = i;if (selectedIndex = -1) JOptionPane.showMessageDialog(null, 請(qǐng)先選擇某一項(xiàng)!);return; else int option = JOptionPane.showConfirmDialog(null, 是否確定刪除?,提示, JOptionPane.YES_NO_CANCEL_OPTION);if (option = JOptionPane.YES_OPTION) maInfo.setId(new Integer(t.getValueAt(selectedIndex, 0).toString();lm.delete(maInfo);/ 刷新數(shù)據(jù)表remove(jsp);String head = new String 序列號(hào), 固定資產(chǎn)編號(hào), 申請(qǐng)人, 申請(qǐng)時(shí)間 ;Object data = lm.getMaintainApplyAll();t = new JTable(data, head);t.setRowHeight(25);t.validate();jsp = new JScrollPane(t);add(jsp, BorderLayout.CENTER);validate();4、設(shè)備入庫(kù):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 static 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 JScrollPane jsp;private JTable t;private StoreManager sma;private InData inInfo;public EquipIn() super(new BorderLayout();/ 設(shè)置布局管理器/ 控件初始化leId = new JLabel(設(shè)備編號(hào));lsId = new JLabel(倉(cāng)庫(kù)編號(hào));liNum = new JLabel(入庫(kù)數(shù)量);lPara = new JLabel(參數(shù)設(shè)置);lPara.setForeground(Color.RED);tfiNum = new JTextField();tfiNum.setColumns(10);bIn = new JButton(入庫(kù));bAgain = new JButton(重置);bDelete = new JButton(刪除)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論