軟件工程課程設(shè)計(jì)報(bào)告_第1頁(yè)
軟件工程課程設(shè)計(jì)報(bào)告_第2頁(yè)
軟件工程課程設(shè)計(jì)報(bào)告_第3頁(yè)
軟件工程課程設(shè)計(jì)報(bào)告_第4頁(yè)
軟件工程課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程與軟件開發(fā)工具課程設(shè)計(jì)報(bào)告項(xiàng)目名稱 飯卡管理系統(tǒng) 項(xiàng)目負(fù)責(zé)人 李杜松 項(xiàng)目開發(fā)單位 計(jì)算機(jī)0402-12 目 錄一 問題定義4二 可行性研究報(bào)告41引言42可行性研究的前提53 對(duì)現(xiàn)有系統(tǒng)的分析64 所建議的系統(tǒng)75可選擇的其他系統(tǒng)方案86投資及效益分析87 社會(huì)因素方面的可行性8三 需求分析91引言92.任務(wù)概述93.需求規(guī)定94運(yùn)行環(huán)境規(guī)定18四 結(jié)構(gòu)化分析、設(shè)計(jì)部分18一 總體設(shè)計(jì)說明書181引言182總體設(shè)計(jì)183 接口設(shè)計(jì)204 運(yùn)行設(shè)計(jì)215 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)216 系統(tǒng)出錯(cuò)處理設(shè)計(jì)227 數(shù)據(jù)流劃分22二、詳細(xì)設(shè)計(jì)231引言232 入口程序entry() 設(shè)計(jì)說明233

2、查詢模塊search() 設(shè)計(jì)說明244 消費(fèi)模塊pay() 設(shè)計(jì)說明245存款模塊deposit() 設(shè)計(jì)說明25五、面向?qū)ο蠓治觥⒃O(shè)計(jì)部分251引言252對(duì)象模型264功能模型283動(dòng)態(tài)模型29六、界面,代碼331.權(quán)限界面332提示界面343消費(fèi)界面344 學(xué)生查詢界面365掛失界面376管理員界面37七、軟件測(cè)試報(bào)告381引言382靜態(tài)測(cè)試383動(dòng)態(tài)測(cè)試38八、課程設(shè)計(jì)總結(jié)401.結(jié)構(gòu)化分析、設(shè)計(jì)與面向?qū)ο蠓治?、設(shè)計(jì)的不同402.對(duì)概念、原理和方法的體會(huì)413.參考文獻(xiàn)和資料42一 問題定義飯卡管理系統(tǒng) 是一套針對(duì)大學(xué)校園食堂飲食交費(fèi),一般消費(fèi)等方面的信息管理系統(tǒng),它包括了同學(xué)在校內(nèi)消

3、費(fèi)各方面內(nèi)容:刷卡消費(fèi)、查詢、存款,學(xué)生信息管理等。方便的對(duì)同學(xué)飯卡信息進(jìn)行各項(xiàng)操作,定時(shí)進(jìn)行數(shù)據(jù)的備份更新,保持?jǐn)?shù)據(jù)的一致性和準(zhǔn)確性,各方面的內(nèi)容應(yīng)該相互聯(lián)系,最終產(chǎn)生各種查詢統(tǒng)計(jì)報(bào)表,以供同學(xué)進(jìn)行檢查。飯卡管理系統(tǒng)的主要任務(wù)就是把人們從繁瑣的交費(fèi),找零工作中解放出來,用計(jì)算機(jī)實(shí)現(xiàn)對(duì)銷售合同資料進(jìn)行存款,消費(fèi),查詢、修改、刪除以及存儲(chǔ)等功能。同時(shí),用計(jì)算機(jī)能夠快速準(zhǔn)確地完成共檔案資料的統(tǒng)計(jì)和匯總工作,迅速地打印出各種報(bào)表資料以供使用。進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的首要任務(wù)是考慮信息要求,也就是數(shù)據(jù)庫(kù)要存入什么樣的數(shù)據(jù)。當(dāng)然,創(chuàng)建數(shù)據(jù)庫(kù)并非僅僅為了存儲(chǔ)數(shù)據(jù),更主要的目的是從中提取有用信息。所以除了要考慮數(shù)據(jù)

4、庫(kù)存儲(chǔ)什么數(shù)據(jù)外,還應(yīng)該考慮數(shù)據(jù)的存儲(chǔ)方式、目的、用途以及性能要求。1背景:用戶通過系統(tǒng)首頁(yè)面,創(chuàng)建飯卡,存入錢。消費(fèi)時(shí)根據(jù)飯卡id判斷該用戶是否是合法用戶,同時(shí)進(jìn)行消費(fèi)操作。管理員可以對(duì)系統(tǒng)進(jìn)行新建飯卡、注銷飯卡、修改飯卡信息等操作,而學(xué)生進(jìn)行消費(fèi)的操作。2項(xiàng)目目標(biāo):建立飯卡管理系統(tǒng),使管理員和擁護(hù)和客戶都能夠方便的進(jìn)行銷售合同的查詢。3項(xiàng)目范圍:硬件和軟件利用現(xiàn)有微機(jī)和數(shù)據(jù)庫(kù)等軟件進(jìn)行系統(tǒng)的開發(fā)和研制。4系統(tǒng)設(shè)計(jì)設(shè)想:該系統(tǒng)具有數(shù)據(jù)處理(飯卡信息的增加和刪除)、信息修改、多種方式查詢、備份、以及多種條件方式的打印。 5可行性研究:進(jìn)行1天的可行性研究。二 可行性研究報(bào)告 1引言 11編寫目

5、的 進(jìn)一步分析和澄清問題定義,推導(dǎo)出系統(tǒng)的邏輯模型,對(duì)以后的行動(dòng)方針提出建議。如果問題沒有可行的解,那么花費(fèi)在這項(xiàng)工程上的任何時(shí)間、資源、人力、經(jīng)費(fèi)、都是無謂的浪費(fèi)。為了避免這些,我們要用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。對(duì)此項(xiàng)的報(bào)告即為可行性研究報(bào)告。12背景 a所建議開發(fā)的軟件系統(tǒng)的名稱:飯卡管理系統(tǒng); b本項(xiàng)目的任務(wù)提出者:軟件工程課程設(shè)計(jì)開發(fā)者:李杜松用戶:刷卡消費(fèi)人員13 定義:本文件中用到的專門術(shù)語(yǔ)的定義及外文首字母詞組的原詞組:(1) 系統(tǒng)流程圖:用圖形符號(hào)以黑盒子形式描繪系統(tǒng)的每個(gè)部件(程序,文檔,數(shù)據(jù)庫(kù),人工過程)。表達(dá)數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況。(2)

6、數(shù)據(jù)流圖(dfd):沒有任何具體的物理部件,描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過程中經(jīng)受的變換。(3) 數(shù)據(jù)字典(dd):是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。其內(nèi)容為數(shù)據(jù)流、數(shù)據(jù)元素、數(shù)據(jù)存儲(chǔ)、處理。2可行性研究的前提 21要求a功能:1實(shí)現(xiàn)消費(fèi)使用卡片扣錢(取代現(xiàn)金);2在固定保險(xiǎn)的地方存錢;3有消費(fèi)記錄功能;4有掛失功能。b性能;1刷卡消費(fèi)時(shí),要求快速,準(zhǔn)確,可撤銷;2在查詢消費(fèi)記錄時(shí),達(dá)到一般的查詢速度。c. 輸出:在刷卡器上,每次消費(fèi)時(shí):1存額2此次消費(fèi)額3剩余額刷卡器上,額外的信息如:1出錯(cuò)信息2鎖卡信息3剩余不多提示信息報(bào)單:1每學(xué)年或者每月,可選擇性的(需學(xué)生主動(dòng)要求)輸出

7、消費(fèi)記錄報(bào)單。詳細(xì)程度可由使用者,自行定義。2存款時(shí),可選擇性的(需學(xué)生主動(dòng)要求)輸出存款記錄報(bào)單。3注銷卡時(shí),返還剩余額(錢)。d輸入:刷卡器上,每次消費(fèi)時(shí):1卡id(可由讀卡器自動(dòng)讀入)2消費(fèi)額3操作符(確認(rèn),撤消,后退,計(jì)算(加減乘除),存款(有權(quán)限限制),其他功能)數(shù)據(jù)庫(kù)管理電腦上:1輸入學(xué)生信息2學(xué)生存款額(由讀卡器端輸入器完成)3查詢,修改,刪除功能輸入 e在安全與保密方面的要求:1使用者之間的id號(hào)不能重復(fù);2 id號(hào)不被他人輕易知道;3即便知道也能有快速相應(yīng)的機(jī)制,予以彌補(bǔ);4有使用追蹤功能,可以讓用戶了解,自己使用的情況。f完成期限:2007年7月18日之前完成.22目標(biāo) 主

8、要開發(fā)目標(biāo): a處理速度的提高;b安全系統(tǒng)的改進(jìn);c用戶使用上的便捷。23條件、假定和限制 a所建議系統(tǒng)的運(yùn)行壽命的最小值:1年; b進(jìn)行系統(tǒng)方案選擇比較的時(shí)間:1天; c經(jīng)費(fèi)、投資方面的來源和限制:無; d法律和政策方面的限制:無; e硬件、軟件、運(yùn)行環(huán)境和開發(fā)環(huán)境方面的條件和限制:無; f可利用的信息和資源:圖書館;24進(jìn)行可行性研究的方法 從以下幾個(gè)方面研究解法的可行性:(1)經(jīng)濟(jì)可行性分析:從開發(fā)軟件系統(tǒng)所需的總時(shí)間,總費(fèi)用,及其中可行性研究所需的費(fèi)用,以及系統(tǒng)軟件開發(fā)完成后,所能預(yù)計(jì)的市場(chǎng)占有率等方面進(jìn)行考慮,看該軟件系統(tǒng)是否能達(dá)到一定的經(jīng)濟(jì)效益。(2)技術(shù)可行性分析:由于新的系統(tǒng)需

9、要對(duì)變化的數(shù)據(jù)進(jìn)行動(dòng)態(tài)的存貯,即數(shù)據(jù)庫(kù)中數(shù)據(jù)要隨著管理員對(duì)系統(tǒng)的操作來隨時(shí)更新,并且具有定時(shí)數(shù)據(jù)備份功能。因此要從技術(shù)角度方面研究者性功能是否可以是實(shí)現(xiàn)。(3)操作可行性分析:要分析設(shè)計(jì)出的系統(tǒng)在用戶的操作上是否簡(jiǎn)便,這一點(diǎn)很重要,因?yàn)樗鼤?huì)影響到用戶對(duì)該系統(tǒng)的反應(yīng)。3 對(duì)現(xiàn)有系統(tǒng)的分析分析現(xiàn)有系統(tǒng)的目的是為了進(jìn)一步闡明建議中的開發(fā)新系統(tǒng)或修改現(xiàn)有系統(tǒng)的必要性。(因?yàn)楸旧黹_發(fā)的系統(tǒng)就是想盡量接近于現(xiàn)有系統(tǒng)。所以對(duì)于這次試驗(yàn),這一步?jīng)]有什么實(shí)際意義) 31處理流程和數(shù)據(jù)流程 現(xiàn)有系統(tǒng)的基本的處理流程和數(shù)據(jù)流程。此部分請(qǐng)瀏覽4. 2中的數(shù)據(jù)流程圖32工作負(fù)荷 人工操作頻繁加減存款。工作繁瑣,枯燥,容

10、易出錯(cuò),完成工作所需要的時(shí)間較長(zhǎng),工作效率比較低。33費(fèi)用開支 由于運(yùn)行現(xiàn)有系統(tǒng)所引起的費(fèi)用開支,如人力、設(shè)備、空間、支持性服務(wù)、材料等項(xiàng)開支以及開支總額。(由于缺房相關(guān)調(diào)查,此處從略)34人員 由于現(xiàn)有系統(tǒng)的技術(shù)性含量比較低,操作不便,工作量大,因此需要較多的人才能完成工作。而新系統(tǒng)將具有較高的技術(shù)操作性,但它確使工作變得較為簡(jiǎn)便,因此只需要少量的高素質(zhì)人才就可完成。35設(shè)備 1,讀卡器(帶輸入器)2,中央電腦(數(shù)據(jù)庫(kù))36局限性人工處理的主要局限性表現(xiàn)在系統(tǒng)依賴于大量的人力和物質(zhì)投入,工作效率較低和成本較高。4 所建議的系統(tǒng) 用來說明所建議系統(tǒng)的目標(biāo)和要求將如何被滿足。41對(duì)所建議系統(tǒng)的說

11、明 使用飯卡可以快速便捷的進(jìn)行消費(fèi)。中央電腦-數(shù)據(jù)庫(kù)對(duì)飯卡的操作相應(yīng)至關(guān)重要。在高峰時(shí)刻,也能保證,存款,消費(fèi)無錯(cuò)誤,并且可記錄,撤銷操作。42處理流程和數(shù)據(jù)流程系統(tǒng)的處理流程數(shù)據(jù)流程43改進(jìn)之處 相對(duì)于原有系統(tǒng),新系統(tǒng)較大的方便了管理員的工作。比原先系統(tǒng)效率更高,功能更全。44影響 1對(duì)設(shè)備的影響 設(shè)備不變 2對(duì)軟件的影響 新系統(tǒng)使用具有較高技術(shù)的軟件(例如數(shù)據(jù)庫(kù)軟件等)2對(duì)對(duì)象的影響:新系統(tǒng)要求對(duì)客戶、合同、操作人員有較為詳細(xì)地記錄,在其它方面沒有什么帶大的變化。3對(duì)系統(tǒng)運(yùn)行過程的影響:系統(tǒng)的運(yùn)行更加高速、有效。4對(duì)開發(fā)的影響:新系統(tǒng)的開發(fā)環(huán)境要求不高,只需要現(xiàn)有設(shè)備就可以完成,且不會(huì)在開

12、發(fā)過程中影響到現(xiàn)有系統(tǒng)的使用。5對(duì)地點(diǎn)和設(shè)施的影響:開發(fā)新系統(tǒng)不用考慮地點(diǎn)等方面的問題。6技術(shù)條件方面的可能性開發(fā)新系統(tǒng)的技術(shù)雖較現(xiàn)有系統(tǒng)比較先進(jìn),但總的來看,這些技術(shù)均已比較成熟,因此新系統(tǒng)的俄開發(fā)在技術(shù)方面應(yīng)該不會(huì)有帶大的困難。45局限性 因?yàn)闀r(shí)間有限,軟件局限性很大。46技術(shù)條件方面的可行性 a在當(dāng)前的限制條件下,該系統(tǒng)的功能目標(biāo)能夠達(dá)到; b利用現(xiàn)有的技術(shù),該系統(tǒng)的功能能實(shí)現(xiàn); c對(duì)開發(fā)人員的數(shù)量和質(zhì)量的要求能滿足; d在規(guī)定的期限內(nèi),本系統(tǒng)的開發(fā)能夠完成。5可選擇的其他系統(tǒng)方案 沒有供選擇的系統(tǒng)方案可考慮。6投資及效益分析 新系統(tǒng)開發(fā)完成后,只需要23面管理員,大大減少的人員方面的開

13、支,同時(shí)由于數(shù)據(jù)冗余度也大大降低,在物質(zhì)方面也降低了開銷,因此會(huì)有較好的市場(chǎng)效益。7 社會(huì)因素方面的可行性 71法律方面的可行性 軟件完全合法72使用方面的可行性 完全可行a8 結(jié)論通過技術(shù)、經(jīng)濟(jì)、具體操作等方面的研究可知,新系統(tǒng)可開發(fā)風(fēng)險(xiǎn)較低,可以開始進(jìn)行具體的開發(fā)工作。三 需求分析1引言 1.1編寫目的需求分析是軟件系統(tǒng)生存期中定義階段的最后一個(gè)步驟。這個(gè)階段的任務(wù)不是具體解決問題,而是準(zhǔn)確確定為解決問題系統(tǒng)必須具備哪些功能。這個(gè)階段的一個(gè)重要任務(wù)是用正式的文檔準(zhǔn)確地記錄目標(biāo)系統(tǒng)的需求。該文檔將最終交給軟件具體的開發(fā)人員進(jìn)行具體的開發(fā)。1.2 背景開發(fā)的軟件系統(tǒng)的名稱: 飯卡管理系統(tǒng)本項(xiàng)目

14、的任務(wù)提出者:軟件工程課程設(shè)計(jì)開發(fā)者:李杜松實(shí)現(xiàn)該軟件的計(jì)算站:圖書館計(jì)算機(jī)中心1.3 定義本文件中用到的專門術(shù)語(yǔ)的定義和外文首字母詞組的原詞組。實(shí)體聯(lián)系圖(e-r圖):包含實(shí)體(即數(shù)據(jù)對(duì)象)、關(guān)系和屬性。作為用戶與分析員之間有效交流的工具。狀態(tài)轉(zhuǎn)換圖:通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)的狀態(tài)轉(zhuǎn)換的事件來表示系統(tǒng)的行為。提供行為建模機(jī)制。層次方框圖:用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。輸入-處理-輸出圖(ipo圖):方便描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。1.4 參考資料同可行性研究報(bào)告處2.任務(wù)概述2.1目標(biāo)主要開發(fā)目標(biāo)是能夠?qū)︼埧ㄐ畔⑦M(jìn)行查詢和更新管理,且具有反映敏捷

15、準(zhǔn)確。2.2用戶的特點(diǎn)由于系統(tǒng)的界面清晰、美觀,操作簡(jiǎn)單、方便,所以操作人員只需要具備一定的電腦操作技能即可。管理員(維護(hù)人員)不需要任何數(shù)據(jù)庫(kù)專業(yè)技能知識(shí)。本系統(tǒng)可以極大的提高工作效率,預(yù)期使用頻度較高。2.3假定和約束系統(tǒng)的規(guī)模較小,適于windows和操作系統(tǒng),sql數(shù)據(jù)庫(kù)系統(tǒng)。3.需求規(guī)定3.1對(duì)功能的規(guī)定(1)更準(zhǔn)確的系統(tǒng)流程圖(2)更準(zhǔn)確的數(shù)據(jù)流程圖-0層-1層-2層-3層- (3)ipo圖(4)狀態(tài)變化圖(5)層圖(6)動(dòng)態(tài)數(shù)據(jù)動(dòng)態(tài)數(shù)據(jù)包括程序運(yùn)行時(shí)輸入和輸出的數(shù)據(jù),具體是數(shù)據(jù)庫(kù)的各個(gè)表的各個(gè)不同元組與屬性值,就查閱信息。數(shù)據(jù)庫(kù)描述本系統(tǒng)的實(shí)體有:學(xué)生信息、卡信息它們之間的關(guān)系是

16、一對(duì)一的。卡信息和卡歷史是一對(duì)多的。e-r圖如下:(4)更準(zhǔn)確的數(shù)據(jù)字典數(shù)據(jù)字典1學(xué)生信息:學(xué)生學(xué)號(hào) = 數(shù)字|字母卡id = 數(shù)字|字母學(xué)生姓名 = 漢字性別 = 男|女|null電話號(hào)碼 = 數(shù)字地址 = 漢字|數(shù)字|字母2 卡信息卡id = 數(shù)字|字母余額= 數(shù)字鎖=true|false3 卡歷史卡id = 數(shù)字|字母時(shí)間=時(shí)間格式款額=數(shù)字操作=存款|消費(fèi)|其他數(shù)據(jù)元素的數(shù)據(jù)字典卡片: 學(xué)生信息名字:學(xué)生信息 別名:描述:記錄學(xué)生相關(guān)信息定義:學(xué)生信息=學(xué)生學(xué)號(hào)+卡id+學(xué)生姓名+性別+電話號(hào)碼+地址位置:數(shù)據(jù)庫(kù)卡信息名字:卡信息 別名:描述:記錄卡的信息定義:卡信息 =卡id+余額+

17、鎖位置:數(shù)據(jù)庫(kù)卡歷史信息名字:卡歷史信息 別名:描述:記錄卡歷史的信息定義:客戶信息=卡id+時(shí)間+款額+操作位置:數(shù)據(jù)庫(kù)學(xué)生信息庫(kù)(student_info)列名數(shù)據(jù)類型學(xué)生學(xué)號(hào)stu_numint卡ididint學(xué)生姓名namechar(20)性別maleboolean電話號(hào)碼telchar(20)地址addresschar(50)卡信息(card_info)列名數(shù)據(jù)類型卡ididint余額sumfloat鎖lockboolean卡歷史(card_his)列名數(shù)據(jù)類型卡ididint時(shí)間daytimedaytype款額sumfloat操作opchar(20)3.2對(duì)性能的規(guī)定3.2.1精度

18、輸入數(shù)據(jù):查詢最大查詢范圍1年內(nèi);卡id合法性;客戶信息合法性;輸出數(shù)據(jù):余額以 213.12的形式最多小數(shù)點(diǎn)后兩位,即到分為止顯示。(小于的部分不可能出現(xiàn))3.2.2時(shí)間特性要求刷卡響應(yīng)時(shí)間不超過1秒;查詢響應(yīng)時(shí)間不超過5秒;3.3故障處理要求 刷卡響應(yīng)時(shí)間超過1秒后,自動(dòng)提出警告。要求重新刷卡。查詢超過5秒,要顯示查詢時(shí)間長(zhǎng)的提示信息。以免誤認(rèn)為死機(jī)。當(dāng)計(jì)算機(jī)突然死機(jī)、重啟、斷電時(shí)自動(dòng)存儲(chǔ)備份數(shù)據(jù)。即便沒有存上。也有備份數(shù)據(jù)庫(kù),供恢復(fù)。3.4其他專門要求普通學(xué)生只能刷卡消費(fèi),系統(tǒng)管理員還可以進(jìn)入管理員界面;刷卡服務(wù)員可以操作刷卡器。界面清晰、美觀,操作簡(jiǎn)單、方便。所有數(shù)據(jù)存儲(chǔ)在學(xué)校服務(wù)器端

19、,數(shù)據(jù)存儲(chǔ)安全可靠。4運(yùn)行環(huán)境規(guī)定4.1設(shè)備a. 中央電腦,要求容量大,cpu能夠滿足查詢的。b. 刷卡器,要求讀取id敏捷,準(zhǔn)確。c. 要求刷卡器與中央電腦連接。通信量要滿足查詢精度和速度。d. 刷卡器上的功能建,要求顯示明確,意思表達(dá)精確。四 結(jié)構(gòu)化分析、設(shè)計(jì)部分一 總體設(shè)計(jì)說明書1引言1.1編寫的目的總體設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)程序的體系結(jié)構(gòu),也就是確定程序有哪些模塊組成以及模塊計(jì)的關(guān)系??傮w設(shè)計(jì)過程首先尋找實(shí)現(xiàn)目標(biāo)系統(tǒng)的各種不同的方案,需求分析階段得到的數(shù)據(jù)流圖是設(shè)想各種可能方案的基礎(chǔ)。然后分析員從這些供選擇的方案中選取若干個(gè)合理的方案,為每個(gè)合理的方案都準(zhǔn)備一份系統(tǒng)流程圖,列出組成系統(tǒng)的

20、所有物理元素,進(jìn)行成本/效益分析,并且制定實(shí)現(xiàn)這個(gè)方案的進(jìn)度計(jì)劃。分析員應(yīng)該綜合分析比較這些合理的方案,從中選出一個(gè)最佳方案向用戶和使用部門負(fù)責(zé)人推薦。如果用戶和使用部門的負(fù)責(zé)人接受了推薦的方案,分析員應(yīng)該進(jìn)一步為這個(gè)最佳方案設(shè)計(jì)軟結(jié)構(gòu),通常,進(jìn)行必要的數(shù)據(jù)庫(kù)設(shè)計(jì),確定測(cè)試要求并且是定測(cè)試計(jì)劃。1.2定義總體設(shè)計(jì)又叫概要設(shè)計(jì),主要是確定系統(tǒng)的具體實(shí)施方案和確定軟件結(jié)構(gòu)。2總體設(shè)計(jì)ipo圖并不能得到很好的體現(xiàn)出h圖(層次圖),所以在下面增添了一個(gè)hipo圖以及后邊的層次圖,以方便突出不同的重點(diǎn)。hipo圖(層次圖加輸入/處理/輸出圖),為了能使hipo圖具有可追蹤性。ipo圖:在h圖(層次圖)離

21、除了最頂層的方框之外,每個(gè)方框都加了編號(hào)如下:3 接口設(shè)計(jì)3.1用戶接口(1) 用戶類別:1有提供學(xué)生查閱的學(xué)生界面。2 提供管理員操作的管理員界面。3 提供刷卡的刷卡服務(wù)員界面。(2) 管理員界面菜單1 狀態(tài)1.1登陸;1.2注銷;2 新建-新建學(xué)生信息界面;3 查詢更新3.1 學(xué)生消費(fèi)歷史3.2 學(xué)生信息4 掛失4.1 加鎖4.2 解鎖5 注銷卡(3)學(xué)生查詢菜單1 狀態(tài)1.1登陸;1.2注銷;2 查詢歷史3 查詢學(xué)生信息 (4)刷卡界面1 狀態(tài)1.1登陸;1.2注銷;2 消費(fèi)方式2.1 正常2.2 定價(jià)3 顯示上次輸出3.2外部接口說明本系統(tǒng)同外界的所有接口的安排包括軟件與硬件之間的接口

22、、本系統(tǒng)與各支持軟件之間的接口關(guān)系。3.3內(nèi)部接口 查詢和更新都要調(diào)用數(shù)據(jù)庫(kù)的操作。4 運(yùn)行設(shè)計(jì)4.1運(yùn)行模塊組合具體軟件的運(yùn)行模塊組合為程序多窗口的運(yùn)行環(huán)境,各個(gè)模塊在軟件運(yùn)行過程中能較好的交換信息,處理數(shù)據(jù)。4.2運(yùn)行控制軟件運(yùn)行時(shí)有比較友好的用戶界面,基本能夠?qū)崿F(xiàn)用戶的數(shù)據(jù)處理要求。4.3運(yùn)行時(shí)間 系統(tǒng)的運(yùn)行時(shí)間基本可以達(dá)到用戶所提出的要求。5 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)5.1物理結(jié)構(gòu)設(shè)計(jì)系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫(kù)來設(shè)計(jì)與生成,此處略。5.2數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)語(yǔ)言sql生成。6 系統(tǒng)出錯(cuò)處理設(shè)計(jì)6.1出錯(cuò)信息1 在學(xué)生刷卡后,卡id被鎖,將會(huì)出現(xiàn)錯(cuò)誤信息:“kard

23、locked”2 學(xué)生卡信息丟失,查詢時(shí)或者消費(fèi)-存款時(shí),不認(rèn)卡情況3 存款額大于999.99元,刷卡器只顯示小于等于999,99元部分4 消費(fèi)時(shí)消費(fèi)額大于存款額。系統(tǒng)將會(huì)提示錯(cuò)誤,不作其他任何操作。6.2措施(號(hào)碼對(duì)應(yīng))1 只能解卡鎖2 有備份數(shù)據(jù)庫(kù),隨時(shí)可以恢復(fù)3 只能更換刷卡器4 計(jì)時(shí)充錢7 數(shù)據(jù)流劃分7.1 變換型輸入流:有合法性判斷得出的合法數(shù)據(jù)變換中心:查詢輸出流:查詢結(jié)果數(shù)據(jù)按照 輸入變換輸出 的時(shí)間順序流動(dòng)。左圖dfd可以看出典型的變換型數(shù)據(jù)流。7.2 事務(wù)型事務(wù)中心:存款-消費(fèi)數(shù)據(jù)流以“事務(wù)中心”為核心。當(dāng)時(shí)數(shù)據(jù)沿通路到達(dá)事務(wù)存儲(chǔ)消費(fèi)時(shí),根據(jù)輸入數(shù)據(jù)的類型在存款、消費(fèi)中選擇一

24、個(gè)執(zhí)行。具體上是根據(jù)按鍵,分消費(fèi)和存錢按鍵。二、詳細(xì)設(shè)計(jì)1引言 1.1編寫目的詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,解決具體應(yīng)怎樣實(shí)現(xiàn)這個(gè)系統(tǒng)。也稱為模塊設(shè)計(jì),詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊所需的功能需要的算法和數(shù)據(jù)結(jié)構(gòu)。1.2 定義在軟件具體設(shè)計(jì)階段的專用術(shù)語(yǔ)有:程序流程圖、盒圖(ns圖)、判定表、判定樹、pad圖2 入口程序entry() 設(shè)計(jì)說明2.1程序描述提供管理員和學(xué)生用戶,刷卡服務(wù)三種環(huán)境,限制用戶對(duì)系統(tǒng)的使用權(quán)限。特點(diǎn):非常駐內(nèi)存;單獨(dú)的一個(gè)程序;順序處理。2.2輸入項(xiàng)權(quán)限:三個(gè)單選項(xiàng)。level。管理員用戶名:字符串類型,user,長(zhǎng)度不超過20,可以是數(shù)字(不能開頭)和字母

25、、漢字;管理員密碼 :字符串類型,pass, 長(zhǎng)度不超過20, 可以是數(shù)字和字母,區(qū)分大小寫2.3輸出項(xiàng) 歡迎或者提示錯(cuò)誤信息。2.4流程邏輯 1程序流程圖2盒圖3 查詢模塊search() 設(shè)計(jì)說明3.1程序描述完成對(duì)系統(tǒng)(數(shù)據(jù)庫(kù))的查找。3.2輸入項(xiàng) 學(xué)生卡信息,時(shí)間信息,消費(fèi)信息等。3.3輸出項(xiàng) 查找結(jié)果。3.4流程邏輯pad圖4 消費(fèi)模塊pay() 設(shè)計(jì)說明4.1程序描述完成消費(fèi)部分。對(duì)輸入和消費(fèi)額,進(jìn)行合法性驗(yàn)證。4.2輸入項(xiàng) 卡id,定價(jià)與否,消費(fèi)額。4.3輸出項(xiàng)卡余額,錯(cuò)誤提示。4.4流程邏輯 判斷樹5存款模塊deposit() 設(shè)計(jì)說明5.1程序描述完成存款部分。對(duì)輸入和存款額

26、,進(jìn)行合法性驗(yàn)證。5.2輸入項(xiàng) 卡id,存款額。5.3輸出項(xiàng)卡余額,錯(cuò)誤提示。5.4流程邏輯 判斷表學(xué)生代號(hào)12345678讀卡成功nynnyyny卡沒有鎖nnynynyy存款成功nnnynyyy顯示余額顯示不可能不可能顯示不可能不可能顯示題是錯(cuò)誤提示不可能不可能不可能不可能顯示存款成功信息不顯示不顯示不可能不可能不顯示不可能不可能顯示顯示存款失敗信息不顯示顯示不可能不可能顯示不可能不可能不顯示五、面向?qū)ο蠓治?、設(shè)計(jì)部分1引言 面向?qū)ο蠓治鍪滓墓ぷ鳎墙栴}域的對(duì)象模型,這個(gè)模型描述了現(xiàn)實(shí)世界中的“類于對(duì)象”以及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。其中對(duì)象是對(duì)問題域中有意義的事務(wù)

27、的抽象,他們既可能是物理實(shí)體, 也可能是抽象概念。要確定類和對(duì)象,我們先要找出候選的類于對(duì)象,然后在從中篩選出正確的類于對(duì)象。2對(duì)象模型1有四個(gè)類:(1) 類名:學(xué)生帳戶屬性:學(xué)號(hào),卡id,余額,鎖 方法:創(chuàng)建(學(xué)生,卡,歷史),更新屬性,更新數(shù)據(jù)庫(kù),注銷(學(xué)生,卡,歷史),返回(學(xué)號(hào),卡id,余額,鎖),消費(fèi),存款,設(shè)定(號(hào),卡id,余額,鎖),撤銷歷史,顯示歷史(2) 類名:讀卡器屬性:卡id方法:讀取id,確認(rèn)卡,警告,設(shè)定id(3) 類名:輸入器屬性:值,臨時(shí)值1,臨時(shí)值2方法:讀入,加法,減法,乘法,等于,定價(jià),常用,最后一次輸入,取消卡,消費(fèi)(4) 類名:屏幕屬性:值1,值2,值3

28、,定價(jià)方法:顯示當(dāng)前輸入,顯示卡余額,清屏,定價(jià), 2 類間關(guān)系無直接關(guān)系3 細(xì)化對(duì)象模型,生成java代碼框架/=(1)學(xué)生帳戶=public class studentinfo private integer stu_num; private integer card_id; private double sum; private boolean lock; public studentinfo() public void createstuinfo(integer stu_num, integer card_id, string name, boolean male, integer t

29、el, string address) public void createcardinfo(integer id) public void createcardhis(integer id) public void updateattr() public void updatedb() public void deposit(double value) public void delcardhis() public void delcardinfo() public void delstuinfo() public void spend(double value) public void u

30、ndohis() public void printhis() public integer getstu_num() return null; public integer getcard_id() return null; public double getsum() return null; public boolean getlock() return null; /=(2)讀卡器=public class cardreader private integer card_id; public cardreader() public integer readid() return nul

31、l; public boolean judgeid() return null; public void alarm() public integer getcard_id() return null; public void setcard_id(integer id) /=(3)輸入器=public class inputer private double value = 0; private double temp = 0; public inputer() public double read() return null; public double plus() return nul

32、l; public double minus() return null; public double multiply() return null; public void equal() public void fixprice() public void commonuse() public void lastval() public void denycard() public void spend() /=(4)屏幕=public class screen private integer value1; private boolean fixlight; public screen(

33、) public void printnow() public void printsum() public void cls() public void setfix(boolean state) 4功能模型1用例圖表示從用戶角度對(duì)系統(tǒng)的要求。2經(jīng)濟(jì)用例圖表示從管理者(服務(wù)者)的角度的功能。3動(dòng)態(tài)模型1腳本刷卡人員與學(xué)生,刷卡消費(fèi)過程。n (學(xué)生本日第一次刷卡)n 學(xué)生輸入卡idn 卡被正確輸入則進(jìn)行下一步,如果沒有正確輸入,則提示錯(cuò)誤。n 系統(tǒng)檢測(cè)卡的合法性和是否被鎖。n 進(jìn)入消費(fèi)界面n 如果是定價(jià),直接消費(fèi),并顯示余額,退出。n 如果不是等待輸入消費(fèi)額n 刷卡服務(wù)員計(jì)算消費(fèi)額n 確認(rèn)消費(fèi)

34、n 顯示卡余額n 如果在10秒內(nèi)不進(jìn)行操作,自動(dòng)清屏n 退出 2 狀態(tài)圖3 事件跟蹤圖(1)collaboration框圖框圖中,對(duì)象表示為矩形,角色用簡(jiǎn)圖表示。collaboration框圖不參照時(shí)間顯示對(duì)象與角色的互交。并且其中直接通信的對(duì)象之間有一條直線,沒有畫線的對(duì)象之間不直接通信。因此collaboration框圖顯示的信息與下面的sequence框圖類似,但本框圖具有不同的作用。(2)sequence框圖他顯示使用案例的過程流程??驁D定不相識(shí)了設(shè)計(jì)的角色和對(duì)象。每個(gè)箭頭表示角色與對(duì)象或者對(duì)象與對(duì)象之間為完成所需的功能而傳遞的信息。六、界面,代碼1.權(quán)限界面1數(shù)據(jù)庫(kù)聯(lián)接公共部分pub

35、lic static connection conn = null; public static statement state = null; public static void odbc() string dbdriver = sun.jdbc.odbc.jdbcodbcdriver; string connectionstr = jdbc:odbc:myodbc; try class.forname(dbdriver); catch(java.lang.classnotfoundexception e)system.err.println(dbconnecton:+e.getmessa

36、ge(); try conn = drivermanager.getconnection(connectionstr,); state = conn.createstatement(); catch(sqlexception ex) system.err.println(aq.executequery:+ex.getmessage(); 2 刷卡選擇部分/= 刷卡界面= if(this.jradiobutton2.isselected() this.setvisible(false); joptionpane.showmessagedialog(null,歡迎進(jìn)入刷卡界面!); spend.m

37、ain(null); /= 管理員界面= if(this.jradiobutton1.isselected() string nstr,pstr,sql; nstr = this.jtextfield1.gettext(); pstr = this.jtextfield2.gettext(); sql = select * from admin where name like +nstr+; resultset rs =null; try rs = main.state.executequery(sql); if(rs.next() if(pareto(rs.getstring(pass)=0

38、) this.setvisible(false); joptionpane.showmessagedialog(null,歡迎進(jìn)入管理員界面!); admin.main(null); else joptionpane.showmessagedialog(null,密碼錯(cuò)誤); elsejoptionpane.showmessagedialog(null,用戶名錯(cuò)誤); catch(sqlexception ex) system.err.println(aq.executequery:+ex.getmessage(); /= 學(xué)生查詢界面= if(this.jradiobutton3.issel

39、ected() this.setvisible(false); joptionpane.showmessagedialog(null,歡迎進(jìn)入學(xué)生查詢界面!); stuinfo.main(null); 2提示界面3消費(fèi)界面1 搜索部分if(ids.gettext().equals() ) joptionpane.showmessagedialog(null,卡號(hào)不能為空!); ids.setfocusable(true); else try string sql = select * from card_info where id = +ids.gettext(); resultset rs

40、= main.state.executequery(sql); if(rs.next() if(rs.getboolean(3) joptionpane.showmessagedialog(null,卡已經(jīng)被鎖,如要解鎖,請(qǐng)與管理員聯(lián)系否則10日后 自動(dòng)注銷!); else if(djcheck.isselected() sum.settext(rs.getstring(2);this.result=string.valueof(integer.parseint(sum.gettext()-integer.parseint(dingjia.gettext();joptionpane.showm

41、essagedialog(null,消費(fèi)完畢,卡剩余+ result +。如果要繼續(xù)消費(fèi)請(qǐng)?jiān)?0秒內(nèi)操作,只后自動(dòng)關(guān)閉帳戶); sum.settext(result); else ids.seteditable(false); this.jbutton26.setenabled(false); this.jpanel1.setvisible(true); sum.settext(rs.getstring(2); jbutton12.setenabled(true); jbutton13.setenabled(true); jbutton14.setenabled(true); jbutton1

42、5.setenabled(true); else joptionpane.showmessagedialog(null,卡號(hào)錯(cuò)誤!); catch(sqlexception ex) system.err.println(aq.executequery:+ex.getmessage(); 2 消費(fèi)部分 try this.result=string.valueof(integer.parseint(sum.gettext() - integer.parseint(now.gettext(); string sql = update card_info set sum = +result+ where id = +ids.gettext(); if(main.state.executeupdate(sql)=0) joptionpane.showmessagedialog(null,消費(fèi)失敗); else this.nows =now.gettext(); this.sums =sum.gettext();joptionpane.showmessagedialog(null,消費(fèi)完畢,卡剩余+ result +。如果要繼續(xù)消費(fèi)請(qǐng)?jiān)?0秒內(nèi)操作,只后自動(dòng)關(guān)閉帳戶); sum.settext(result); catch(sqlexception ex) system.e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論