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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

28、,定價方法:顯示當(dāng)前輸入,顯示卡余額,清屏,定價, 2 類間關(guān)系無直接關(guān)系3 細化對象模型,生成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用例圖表示從用戶角度對系統(tǒng)的要求。2經(jīng)濟用例圖表示從管理者(服務(wù)者)的角度的功能。3動態(tài)模型1腳本刷卡人員與學(xué)生,刷卡消費過程。n (學(xué)生本日第一次刷卡)n 學(xué)生輸入卡idn 卡被正確輸入則進行下一步,如果沒有正確輸入,則提示錯誤。n 系統(tǒng)檢測卡的合法性和是否被鎖。n 進入消費界面n 如果是定價,直接消費,并顯示余額,退出。n 如果不是等待輸入消費額n 刷卡服務(wù)員計算消費額n 確認消費

34、n 顯示卡余額n 如果在10秒內(nèi)不進行操作,自動清屏n 退出 2 狀態(tài)圖3 事件跟蹤圖(1)collaboration框圖框圖中,對象表示為矩形,角色用簡圖表示。collaboration框圖不參照時間顯示對象與角色的互交。并且其中直接通信的對象之間有一條直線,沒有畫線的對象之間不直接通信。因此collaboration框圖顯示的信息與下面的sequence框圖類似,但本框圖具有不同的作用。(2)sequence框圖他顯示使用案例的過程流程。框圖定不相識了設(shè)計的角色和對象。每個箭頭表示角色與對象或者對象與對象之間為完成所需的功能而傳遞的信息。六、界面,代碼1.權(quán)限界面1數(shù)據(jù)庫聯(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,歡迎進入刷卡界面!); 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,歡迎進入管理員界面!); admin.main(null); else joptionpane.showmessagedialog(null,密碼錯誤); elsejoptionpane.showmessagedialog(null,用戶名錯誤); catch(sqlexception ex) system.err.println(aq.executequery:+ex.getmessage(); /= 學(xué)生查詢界面= if(this.jradiobutton3.issel

39、ected() this.setvisible(false); joptionpane.showmessagedialog(null,歡迎進入學(xué)生查詢界面!); stuinfo.main(null); 2提示界面3消費界面1 搜索部分if(ids.gettext().equals() ) joptionpane.showmessagedialog(null,卡號不能為空!); 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)被鎖,如要解鎖,請與管理員聯(lián)系否則10日后 自動注銷!); 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,消費完畢,卡剩余+ result +。如果要繼續(xù)消費請在10秒內(nèi)操作,只后自動關(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,卡號錯誤!); catch(sqlexception ex) system.err.println(aq.executequery:+ex.getmessage(); 2 消費部分 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,消費失敗); else this.nows =now.gettext(); this.sums =sum.gettext();joptionpane.showmessagedialog(null,消費完畢,卡剩余+ result +。如果要繼續(xù)消費請在10秒內(nèi)操作,只后自動關(guān)閉帳戶); sum.settext(result); catch(sqlexception ex) system.e

溫馨提示

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

評論

0/150

提交評論