實驗室設(shè)備管理系統(tǒng)(課程設(shè)計報告).doc_第1頁
實驗室設(shè)備管理系統(tǒng)(課程設(shè)計報告).doc_第2頁
實驗室設(shè)備管理系統(tǒng)(課程設(shè)計報告).doc_第3頁
實驗室設(shè)備管理系統(tǒng)(課程設(shè)計報告).doc_第4頁
實驗室設(shè)備管理系統(tǒng)(課程設(shè)計報告).doc_第5頁
免費預(yù)覽已結(jié)束,剩余55頁可下載查看

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論