版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書</b></p><p> 2011年6月30日</p><p> 課程名稱:軟件工程導(dǎo)論</p><p> 課程代碼:</p><p> 題 目:校園卡管理系統(tǒng)</p><p> 年級/專業(yè)/班:</p><p> 學(xué)生姓
2、名:</p><p> 學(xué) 號:</p><p> 指導(dǎo)老師:</p><p> 開題時間:2011年6月6日</p><p> 完成時間:2011年6月30日</p><p> 課程設(shè)計任務(wù)書及成績評定</p><p> 1、設(shè)計的目的與要求 </p><p>
3、 1)加強(qiáng)學(xué)生的實(shí)踐能力;</p><p> 2)理解小型系統(tǒng)開發(fā)的基本步驟;</p><p> 3)本系統(tǒng)的功能包括:學(xué)生信息管理模塊、刷卡消費(fèi)、查詢、存款模塊(包括基本的添加、修改、刪除功能)。</p><p> 2、設(shè)計進(jìn)度及完成情況</p><p><b> 3、成績評定</b></p>
4、<p> 設(shè)計成績: (教師填寫)</p><p> 指導(dǎo)老師: (簽 字)</p><p> 2011 年 月 日</p><p><b> 目錄</b></p><p> 第一章 項(xiàng)目開發(fā)計劃書5</p>
5、<p><b> 1.1引言5</b></p><p> 1.1.1編寫目的5</p><p><b> 1.1.2背景5</b></p><p><b> 1.2項(xiàng)目概述5</b></p><p> 1.2.1工作內(nèi)容5</p>
6、<p> 1.2.2主要參加人員5</p><p><b> 1.2.3產(chǎn)品6</b></p><p><b> 1.2.4服務(wù)6</b></p><p> 1.2.5驗(yàn)收標(biāo)準(zhǔn)6</p><p> 1.2.6本計劃的批準(zhǔn)者和批準(zhǔn)日期6</p><p&
7、gt;<b> 1.3實(shí)施計劃6</b></p><p> 1.3.1工作任務(wù)的分配與人員分工6</p><p><b> 1.3.2進(jìn)度7</b></p><p><b> 1.4支持條件7</b></p><p> 第二章 可行性分析8</p>
8、;<p> 2.1可行性研究的前提8</p><p> 2.2 對現(xiàn)有系統(tǒng)的分析8</p><p> 2.3 所建議的系統(tǒng)8</p><p> 2.3.1對所建議系統(tǒng)的說明8</p><p> 2.3.2處理流程和數(shù)據(jù)流程8</p><p> 2.4經(jīng)濟(jì)上可行性9</p>
9、;<p> 2.5技術(shù)可行性9</p><p> 2.6開發(fā)工具的選擇9</p><p> 2.7 新系統(tǒng)的影響10</p><p> 2.8投資及效益分析10</p><p><b> 2.9 結(jié)論10</b></p><p> 第三章 需求分析11<
10、/p><p> 3.1市場需求分析11</p><p> 3.2系統(tǒng)功能性需求分析11</p><p> 3.2.1對功能的規(guī)定11</p><p> 3.2.2對性能的規(guī)定13</p><p> 3.3系統(tǒng)非功能性需求14</p><p> 3.3.1故障處理要求14<
11、;/p><p> 3.3.2其他專門要求14</p><p> 3.3 數(shù)據(jù)字典14</p><p> 3.4運(yùn)行環(huán)境規(guī)定15</p><p> 3.5實(shí)體-聯(lián)系圖16</p><p> 第四章 系統(tǒng)設(shè)計17</p><p> 4.1 總體設(shè)計17</p>&l
12、t;p> 4.1.1需求概述17</p><p> 4.1.2校園卡管理信息系統(tǒng)概要設(shè)計17</p><p> 4.2詳細(xì)設(shè)計19</p><p> 4.2.1編寫定義19</p><p> 4.2.2功能模塊的設(shè)計與實(shí)現(xiàn)19</p><p> 4.2.3運(yùn)行設(shè)計20</p>
13、<p> 4.2.4系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計20</p><p> 4.2.5系統(tǒng)出錯處理設(shè)計21</p><p> 4.2.6數(shù)據(jù)流劃分21</p><p> 4.3 功能模塊設(shè)計22</p><p> 4.3.1 入口程序entry() 設(shè)計說明22</p><p> 4.3.2 查詢模塊
14、search() 設(shè)計說明25</p><p> 4.3.3 存儲、消費(fèi)模塊pay() 設(shè)計說明26</p><p> 4.3.4 掛失模塊deposit() 設(shè)計說明31</p><p> 第五章 系統(tǒng)測試33</p><p> 5.1 測試的作用和意義33</p><p> 5.2 測試方法3
15、3</p><p> 5.3 測試內(nèi)容33</p><p> 5.4 測試結(jié)果34</p><p> 5.4.1 注冊和登錄模塊測試34</p><p> 5.4.3 卡密碼修改模塊測試36</p><p> 5.4.4 賬戶充值、消費(fèi)模塊測試36</p><p><b
16、> 5.5 結(jié)論37</b></p><p><b> 第六章 總結(jié)38</b></p><p> 參考文獻(xiàn)和資料39</p><p> 第一章 項(xiàng)目開發(fā)計劃書</p><p><b> 1.1引言 </b></p><p><b>
17、; 1.1.1編寫目的</b></p><p> 此項(xiàng)目開發(fā)計劃書的編寫主要是為了給開發(fā)《校園卡管理系統(tǒng)》做主要的規(guī)劃和整合,在開發(fā)過程中起到引導(dǎo)作用,以及給使用者提供簡要的說明。</p><p><b> 1.1.2背景</b></p><p> 校園卡管理系統(tǒng)是一套針對大學(xué)校園食堂飲食交費(fèi),一般消費(fèi)等方面的信息管理系統(tǒng),
18、它包括了同學(xué)在校內(nèi)消費(fèi)各方面內(nèi)容:刷卡消費(fèi)、查詢、存款,學(xué)生信息管理等。方便的對同學(xué)飯卡信息進(jìn)行各項(xiàng)操作,定時進(jìn)行數(shù)據(jù)的備份更新,保持?jǐn)?shù)據(jù)的一致性和準(zhǔn)確性,各方面的內(nèi)容應(yīng)該相互聯(lián)系,最終產(chǎn)生各種查詢統(tǒng)計報表,以供同學(xué)進(jìn)行檢查。</p><p> 用戶通過系統(tǒng)首頁面,創(chuàng)建飯卡,存入錢。消費(fèi)時根據(jù)飯卡ID判斷該用戶是否是合法用戶,同時進(jìn)行消費(fèi)操作。管理員可以對系統(tǒng)進(jìn)行新建飯卡、注銷飯卡、修改飯卡信息等操作,而學(xué)生進(jìn)
19、行消費(fèi)的操作。</p><p><b> 1.2項(xiàng)目概述</b></p><p><b> 1.2.1工作內(nèi)容</b></p><p> 校園卡卡管理系統(tǒng)的主要任務(wù)就是把人們從繁瑣的交費(fèi),找零工作中解放出來,用計算機(jī)實(shí)現(xiàn)對銷售合同資料進(jìn)行存款,消費(fèi),查詢、修改、刪除以及存儲等功能。同時,用計算機(jī)能夠快速準(zhǔn)確地完成共檔
20、案資料的統(tǒng)計和匯總工作,迅速地打印出各種報表資料以供使用。</p><p> 1.2.2主要參加人員 </p><p><b> 組長:蔣瑞</b></p><p><b> 設(shè)計:劉嘉柏、蔣瑞</b></p><p><b> 開發(fā):楊金、鄒振兵</b></p&
21、gt;<p><b> 1.2.3產(chǎn)品</b></p><p><b> 系統(tǒng)開發(fā)計劃書</b></p><p><b> 系統(tǒng)需求說明書</b></p><p><b> 系統(tǒng)設(shè)計說明書</b></p><p><b>
22、 測試計劃</b></p><p> 一個能正確運(yùn)行的可執(zhí)行程序,源程序清單(有注釋)</p><p><b> 1.2.4服務(wù)</b></p><p> 安裝、維護(hù)和運(yùn)行支持從使用該系統(tǒng)開始,維護(hù)期限為一年。 </p><p> 1.2.5驗(yàn)收標(biāo)準(zhǔn) </p><p> 各個
23、功能均能正常使用,滿足用戶的需求。</p><p> 1.2.6本計劃的批準(zhǔn)者和批準(zhǔn)日期 </p><p><b> 批準(zhǔn)者:顏富強(qiáng)</b></p><p> 批準(zhǔn)日期:2011年6月6日</p><p><b> 1.3實(shí)施計劃 </b></p><p> 1.3
24、.1工作任務(wù)的分配與人員分工 </p><p> 組長: 蔣瑞 任務(wù): (1)系統(tǒng)總的開發(fā)計劃書</p><p> ?。?)每周至少組織小組討論一次,列出本周開發(fā)計劃</p><p> (3)項(xiàng)目開發(fā)進(jìn)度的管理</p><p> ?。?)團(tuán)隊(duì)的組織和協(xié)調(diào)</p>
25、<p> 設(shè)計: 劉嘉柏、蔣瑞 任務(wù): (1)參與小組討論</p><p> (2)進(jìn)行系統(tǒng)的需求分析和系統(tǒng)設(shè)計</p><p> ?。?)完成系統(tǒng)需求說明書和系統(tǒng)設(shè)計說明書</p><p> ?。?)編寫測試計劃,參與系統(tǒng)測試</p><p> ?。?)協(xié)助文檔人員完成用戶相關(guān)文檔</p>
26、<p> 開發(fā):鄒振兵、楊金 任務(wù): (1)參與小組討論</p><p> ?。?)根據(jù)設(shè)計完成編碼,并注釋</p><p><b> ?。?)進(jìn)行單元測試</b></p><p><b> 1.3.2進(jìn)度 </b></p><p> 系統(tǒng)規(guī)劃階段:
27、 項(xiàng)目標(biāo)志性事件 開始到完成</p><p> 開發(fā)階段: 項(xiàng)目開發(fā)計劃書的完成 6.6-6.7</p><p> 需求分析階段: 系統(tǒng)需求說明書完成 6.8-6.10</p><p> 設(shè)計階段: 系統(tǒng)設(shè)計說明書 6.11-6.15</p&g
28、t;<p> 編碼實(shí)現(xiàn): 項(xiàng)目的形成 6.16-6.23</p><p> 測試階段: 測試計劃 6.24-6.27</p><p> 移交階段: 項(xiàng)目的遞交 6.28-6.30</p><p>&l
29、t;b> 1.4支持條件</b></p><p> 操作系統(tǒng)需要 windows 2000以上;</p><p> 操作系統(tǒng)環(huán)境:java虛擬機(jī),.netFrameWork3.0;</p><p> 數(shù)據(jù)庫需要SQL Server 2000;</p><p><b> 第二章 可行性分析</b>
30、;</p><p> 2.1可行性研究的前提</p><p> 要求:滿足客戶使用校園卡的各項(xiàng)功能及要求,并對客戶資料具有保密性</p><p> 目標(biāo):提高處理速度,改進(jìn)安全系統(tǒng),方便用戶使用。</p><p> 條件、假定和限制:所建議系統(tǒng)的運(yùn)行壽命最少1年;進(jìn)行系統(tǒng)方案選擇比較的時間為1天。 </p><p&
31、gt; 2.2 對現(xiàn)有系統(tǒng)的分析</p><p> 人工操作頻繁加減存款。工作繁瑣,枯燥,容易出錯,完成工作所需要的時間較長,工作效率比較低?,F(xiàn)有系統(tǒng)技術(shù)性含量比較低,操作不便,工作量大,需要較多的人才能完成工作。系統(tǒng)依賴于大量的人力和物質(zhì)投入,工作效率較低和成本較高。</p><p> 2.3 所建議的系統(tǒng)</p><p> 2.3.1對所建議系統(tǒng)的說明&
32、lt;/p><p> 使用飯卡可以快速便捷的進(jìn)行消費(fèi)。中央電腦--數(shù)據(jù)庫對飯卡的操作相應(yīng)至關(guān)重要。在高峰時刻,也能保證,存款,消費(fèi)無錯誤,并且可記錄,撤銷操作。</p><p> 2.3.2處理流程和數(shù)據(jù)流程</p><p><b> 系統(tǒng)的處理流程</b></p><p> 圖1 系統(tǒng)的處理流程圖</p>
33、;<p><b> 2.4經(jīng)濟(jì)上可行性</b></p><p> 開發(fā)成本:200元人民幣。</p><p> 效益:暫時無法具體衡量。</p><p> 效益/投資比:暫時無法估算。</p><p> 投資回收期:大約2個月。</p><p><b> 2.5
34、技術(shù)可行性</b></p><p> a.在當(dāng)前的限制條件下,該系統(tǒng)的功能目標(biāo)能夠達(dá)到;</p><p> b.利用現(xiàn)有的技術(shù),該系統(tǒng)的功能能實(shí)現(xiàn);</p><p> c.對開發(fā)人員的數(shù)量和質(zhì)量的要求能滿足;</p><p> d.在規(guī)定的期限內(nèi),本系統(tǒng)的開發(fā)能夠完成。</p><p> 2.6開
35、發(fā)工具的選擇</p><p><b> Java概述</b></p><p> Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對對象技術(shù)的全面支持和Java平臺內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本
36、方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。</p><p> 2.7 新系統(tǒng)的影響</p><p><b> 1對設(shè)備的影響 </b></p><p><b> 設(shè)備不變</b></p><p>&l
37、t;b> 2對軟件的影響 </b></p><p> 新系統(tǒng)使用具有較高技術(shù)的軟件</p><p><b> 3對對象的影響:</b></p><p> 新系統(tǒng)要求對客戶、合同、操作人員有較為詳細(xì)地記錄。</p><p> 4對系統(tǒng)運(yùn)行過程的影響:</p><p>
38、系統(tǒng)的運(yùn)行更加高速、有效。</p><p><b> 5對開發(fā)的影響:</b></p><p> 新系統(tǒng)的開發(fā)環(huán)境要求不高,只需要現(xiàn)有設(shè)備就可以完成,且不會在開發(fā)過程中影響到現(xiàn)有系統(tǒng)的使用。</p><p> 6對地點(diǎn)和設(shè)施的影響:</p><p> 開發(fā)新系統(tǒng)不用考慮地點(diǎn)等方面的問題。</p>&
39、lt;p> 7技術(shù)條件方面的可能性</p><p> 開發(fā)新系統(tǒng)的技術(shù)雖較現(xiàn)有系統(tǒng)比較先進(jìn),但總的來看,這些技術(shù)均已比較成熟,因此新系統(tǒng)的開發(fā)在技術(shù)方面應(yīng)該不會有帶大的困難。</p><p> 2.8投資及效益分析 </p><p> 新系統(tǒng)開發(fā)完成后,只需要2~3面管理員,大大減少的人員方面的開支,同時由于數(shù)據(jù)冗余度也大大降低,在物質(zhì)方面也降低了開銷
40、,因此會有較好的市場效益。</p><p><b> 2.9 結(jié)論</b></p><p> 通過技術(shù)、經(jīng)濟(jì)、具體操作等方面的研究可知,新系統(tǒng)可開發(fā)風(fēng)險較低,可以開始進(jìn)行具體的開發(fā)工作。</p><p><b> 第三章 需求分析</b></p><p><b> 3.1市場需求分
41、析</b></p><p> 過去的系統(tǒng)技術(shù)性含量比較低,操作不便,工作量大,需要較多的人才能完成工作,而且還依賴大量人力物力的投入,工作效率低,成本高。相比于過去低級的系統(tǒng),現(xiàn)在經(jīng)過改良之后的系統(tǒng)不但操作簡便,而且只需要極少數(shù)的管理人員,大大的提高的工作效率。</p><p> 3.2系統(tǒng)功能性需求分析</p><p> 3.2.1對功能的規(guī)定&
42、lt;/p><p> 本系統(tǒng)面向全體學(xué)生,所以需要錄入學(xué)生的一些信息,然后再創(chuàng)建飯卡。最后才是學(xué)生向飯卡中存款,進(jìn)行刷卡消費(fèi)。由于存儲了學(xué)生的信息,所以掛失起來也更為的方便。</p><p> 以下給予數(shù)據(jù)流圖來更為直觀的描述出此系統(tǒng)的功能:</p><p><b> 圖2 頂層數(shù)據(jù)流圖</b></p><p> 圖
43、3 創(chuàng)建校園卡ID數(shù)據(jù)流圖</p><p> 圖4 校園卡消費(fèi)數(shù)據(jù)流圖</p><p> 圖5 校園卡信息查詢數(shù)據(jù)流圖</p><p> 圖6 校園卡存款流圖</p><p> 3.2.2對性能的規(guī)定</p><p><b> (1)精度</b></p><p>
44、 輸入數(shù)據(jù):查詢最大查詢范圍1年內(nèi);卡ID合法性;客戶信息合法性;</p><p> 輸出數(shù)據(jù):余額以 213.12的形式最多小數(shù)點(diǎn)后兩位,即到分為止顯示。(小于的部分不可能出現(xiàn))</p><p><b> ?。?)時間特性要求</b></p><p> 刷卡響應(yīng)時間不超過1秒;</p><p> 查詢響應(yīng)時間
45、不超過5秒;</p><p> 3.3系統(tǒng)非功能性需求</p><p> 3.3.1故障處理要求</p><p> 刷卡響應(yīng)時間超過1秒后,自動提出警告。要求重新刷卡。</p><p> 查詢超過5秒,要顯示查詢時間長的提示信息。以免誤認(rèn)為死機(jī)。</p><p> 當(dāng)計算機(jī)突然死機(jī)、重啟、斷電時自動存儲備份數(shù)
46、據(jù)。即便沒有存上。也有備份數(shù)據(jù)庫,供恢復(fù)。</p><p> 3.3.2其他專門要求</p><p> 普通學(xué)生只能刷卡消費(fèi),系統(tǒng)管理員還可以進(jìn)入管理員界面;刷卡服務(wù)員可以操作刷卡器。</p><p> 界面清晰、美觀,操作簡單、方便。</p><p> 所有數(shù)據(jù)存儲在學(xué)校服務(wù)器端,數(shù)據(jù)存儲安全可靠。</p><p
47、><b> 3.3 數(shù)據(jù)字典</b></p><p><b> 1學(xué)生信息:</b></p><p> 學(xué)生學(xué)號 = [數(shù)字|字母]</p><p> 身份證號 = [數(shù)字|字母]</p><p> 卡ID = [數(shù)字|字母]</p><p> 學(xué)生姓名
48、= [漢字]</p><p> 性別 = [男|女|null]</p><p><b> 2 卡信息</b></p><p> 卡ID = [數(shù)字|字母]</p><p><b> 余額= [數(shù)字]</b></p><p> 鎖=[true|false]</
49、p><p><b> 3 卡歷史</b></p><p> 卡ID = [數(shù)字|字母]</p><p><b> 時間=[時間格式]</b></p><p><b> 款額=[數(shù)字]</b></p><p> 操作=[存款|消費(fèi)|其他]</p
50、><p> 數(shù)據(jù)元素的數(shù)據(jù)字典卡片:</p><p><b> 學(xué)生信息</b></p><p> 名字:學(xué)生信息 別名:</p><p> 描述:記錄學(xué)生相關(guān)信息</p><p> 定義:學(xué)生信息=學(xué)生學(xué)號+身份證號+卡ID+學(xué)生姓名+性別</p><p><
51、;b> 位置:數(shù)據(jù)庫</b></p><p><b> 卡信息</b></p><p> 名字:卡信息 別名:</p><p><b> 描述:記錄卡的信息</b></p><p> 定義:卡信息 =卡ID+余額+鎖</p><p><b&
52、gt; 位置:數(shù)據(jù)庫</b></p><p><b> 卡歷史信息</b></p><p> 名字:卡歷史信息 別名:</p><p> 描述:記錄卡歷史的信息</p><p> 定義:客戶信息=卡ID+時間+款額+操作</p><p><b> 位置:數(shù)據(jù)庫&
53、lt;/b></p><p><b> 3.4運(yùn)行環(huán)境規(guī)定</b></p><p> 1中央電腦,要求容量大,CPU能夠滿足查詢的。</p><p> 2刷卡器,要求讀取ID敏捷,準(zhǔn)確。</p><p> 3要求刷卡器與中央電腦連接。通信量要滿足查詢精度和速度。</p><p>
54、4.刷卡器上的功能建,要求顯示明確,意思表達(dá)精確。</p><p><b> 3.5實(shí)體-聯(lián)系圖</b></p><p> 本系統(tǒng)的實(shí)體有:學(xué)生信息、卡信息它們之間的關(guān)系是一對一的。卡信息和卡歷史是一對多的。根據(jù)分析可以得出如下的E-R圖:</p><p> 圖7 系統(tǒng)E-R圖第四章 系統(tǒng)設(shè)計</p><p>&l
55、t;b> 4.1 總體設(shè)計</b></p><p><b> 4.1.1需求概述</b></p><p> 總體設(shè)計的主要任務(wù)是設(shè)計程序的體系結(jié)構(gòu),也就是確定程序有哪些模塊組成以及模塊間的關(guān)系。總體設(shè)計過程首先尋找實(shí)現(xiàn)目標(biāo)系統(tǒng)的各種不同的方案,需求分析階段得到的數(shù)據(jù)流圖是設(shè)想各種可能方案的基礎(chǔ)。然后分析員從這些供選擇的方案中選取若干個合理的方案
56、,為每個合理的方案都準(zhǔn)備一份系統(tǒng)流程圖,列出組成系統(tǒng)的所有物理元素,進(jìn)行成本/效益分析,并且制定實(shí)現(xiàn)這個方案的進(jìn)度計劃。分析員應(yīng)該綜合分析比較這些合理的方案,從中選出一個最佳方案向用戶和使用部門負(fù)責(zé)人推薦。如果用戶和使用部門的負(fù)責(zé)人接受了推薦的方案,分析員應(yīng)該進(jìn)一步為這個最佳方案設(shè)計軟結(jié)構(gòu),通常,進(jìn)行必要的數(shù)據(jù)庫設(shè)計,確定測試要求并且是定測試計劃。</p><p> 4.1.2校園卡管理信息系統(tǒng)概要設(shè)計<
57、/p><p> 根據(jù)需求分析和系統(tǒng)將要實(shí)現(xiàn)的功能來看,系統(tǒng)有如下基本功能:</p><p><b> 新建飯卡</b></p><p><b> 存款——消費(fèi)</b></p><p><b> 查詢歷史</b></p><p><b>
58、掛失</b></p><p><b> 注銷</b></p><p><b> 圖8 系統(tǒng)層次圖</b></p><p><b> 4.2詳細(xì)設(shè)計</b></p><p><b> 4.2.1編寫定義</b></p>&l
59、t;p><b> 1.編寫目的</b></p><p> 詳細(xì)設(shè)計階段的任務(wù)就是把解法具體化,解決具體應(yīng)怎樣實(shí)現(xiàn)這個系統(tǒng)。也稱為模塊設(shè)計,詳細(xì)地設(shè)計每個模塊,確定實(shí)現(xiàn)模塊所需的功能需要的算法和數(shù)據(jù)結(jié)構(gòu)。</p><p><b> 2.定義</b></p><p> 在軟件具體設(shè)計階段的專用術(shù)語有:程序流程圖、
60、盒圖(N—S圖)、判定表、判定樹、PAD圖</p><p> 4.2.2功能模塊的設(shè)計與實(shí)現(xiàn)</p><p><b> 1新建校園飯卡模塊</b></p><p><b> ?。?)用戶類別:</b></p><p> 1有提供學(xué)生查閱的學(xué)生界面。</p><p>
61、2 提供管理員操作的管理員界面。</p><p> 3 提供刷卡的刷卡服務(wù)員界面。</p><p> ?。?)管理員界面菜單</p><p><b> 1 狀態(tài)</b></p><p><b> 1.1登陸;</b></p><p><b> 1.2注銷;&
62、lt;/b></p><p> 2 新建--新建學(xué)生信息界面;</p><p><b> 3 查詢更新</b></p><p> 3.1 學(xué)生消費(fèi)歷史</p><p><b> 3.2 學(xué)生信息</b></p><p><b> 4 掛失</b
63、></p><p><b> 4.1 加鎖</b></p><p><b> 4.2 解鎖</b></p><p><b> 5 注銷卡</b></p><p><b> (3)學(xué)生查詢菜單</b></p><p>&
64、lt;b> 1 狀態(tài)</b></p><p><b> 1.1登陸;</b></p><p><b> 1.2注銷;</b></p><p><b> 2 查詢歷史</b></p><p><b> 3 查詢學(xué)生信息</b>&l
65、t;/p><p><b> ?。?)刷卡界面</b></p><p><b> 1 狀態(tài)</b></p><p><b> 1.1登陸;</b></p><p><b> 1.2注銷;</b></p><p><b>
66、 2 消費(fèi)方式</b></p><p><b> 2.1 正常</b></p><p><b> 2.2 定價</b></p><p><b> 3 顯示上次輸出</b></p><p><b> 2外部接口</b></p>
67、<p> 說明本系統(tǒng)同外界的所有接口的安排包括軟件與硬件之間的接口、本系統(tǒng)與各支持軟件之間的接口關(guān)系。</p><p><b> 3內(nèi)部接口</b></p><p> 查詢和更新都要調(diào)用數(shù)據(jù)庫的操作。</p><p><b> 4.2.3運(yùn)行設(shè)計</b></p><p><
68、;b> 1.運(yùn)行模塊組合</b></p><p> 具體軟件的運(yùn)行模塊組合為程序多窗口的運(yùn)行環(huán)境,各個模塊在軟件運(yùn)行過程中能較好的交換信息,處理數(shù)據(jù)。</p><p><b> 2.運(yùn)行控制</b></p><p> 軟件運(yùn)行時有比較友好的用戶界面,基本能夠?qū)崿F(xiàn)用戶的數(shù)據(jù)處理要求。</p><p&g
69、t;<b> 3.運(yùn)行時間</b></p><p> 系統(tǒng)的運(yùn)行時間基本可以達(dá)到用戶所提出的要求。</p><p> 4.2.4系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計</p><p><b> 1.物理結(jié)構(gòu)設(shè)計</b></p><p> 系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫來設(shè)計與生成,此處略。</p>&
70、lt;p> 2.數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系</p><p> 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由標(biāo)準(zhǔn)數(shù)據(jù)庫語言SQL生成。</p><p> 4.2.5系統(tǒng)出錯處理設(shè)計</p><p><b> 1.出錯信息</b></p><p> 1 在學(xué)生刷卡后,卡ID被鎖,將會出現(xiàn)錯誤信息:“Kard Locked”</p>
71、<p> 2 學(xué)生卡信息丟失,查詢時或者消費(fèi)-存款時,不認(rèn)卡情況</p><p> 3 存款額大于999.99元,刷卡器只顯示小于等于999,99元部分</p><p> 4 消費(fèi)時消費(fèi)額大于存款額。系統(tǒng)將會提示錯誤,不作其他任何操作。</p><p> 2.措施(號碼對應(yīng))</p><p><b> 1 只
72、能解卡鎖</b></p><p> 2 有備份數(shù)據(jù)庫,隨時可以恢復(fù)</p><p><b> 3 只能更換刷卡器</b></p><p><b> 4 計時充錢</b></p><p> 4.3 功能模塊設(shè)計
73、 </p><p> 4.3.1 入口程序entry() 設(shè)計說明</p
74、><p><b> 1.程序描述</b></p><p> 提供管理員和學(xué)生用戶,刷卡服務(wù)三種環(huán)境,限制用戶對系統(tǒng)的使用權(quán)限。</p><p> 特點(diǎn):非常駐內(nèi)存;單獨(dú)的一個程序;順序處理。</p><p><b> 2.輸入項(xiàng)</b></p><p> 權(quán)限:三個單選
75、項(xiàng)。Level。</p><p> 管理員用戶名:字符串類型,user,長度不超過20,可以是數(shù)字(不能開頭)和字母、漢字;</p><p> 管理員密碼 :字符串類型,pass, 長度不超過20, 可以是數(shù)字和字母,區(qū)分大小寫</p><p><b> 3.輸出項(xiàng)</b></p><p> 歡迎或者提示錯誤信息
76、。</p><p><b> 4.流程邏輯 </b></p><p><b> 1)程序流程圖</b></p><p><b> 圖9 程序流程圖</b></p><p> 具體方法代碼實(shí)現(xiàn)如下:</p><p> 1數(shù)據(jù)庫聯(lián)接公共部分<
77、/p><p> public static Connection conn = null;</p><p> public static Statement state = null;</p><p> public static void odbc(){</p><p> String DBDriver = "sun.jdbc
78、.odbc.JdbcOdbcDriver";</p><p> String connectionStr = "jdbc:odbc:myodbc"; </p><p><b> try{</b></p><p> Class.forName(DBDriver);</p><p>&
79、lt;b> }</b></p><p> catch(java.lang.ClassNotFoundExceptione)</p><p> {System.err.println("DBconnecton:"+e.getMessage());}</p><p><b> try{</b></
80、p><p> conn = DriverManager.getConnection(connectionStr,"","");</p><p> state = conn.createStatement();</p><p> }catch(SQLExceptionex)</p><p> { Sy
81、stem.err.println("aq.executeQuery:"+ex.getMessage());}</p><p><b> }</b></p><p><b> 2 刷卡選擇部分</b></p><p> //=================== 刷卡界面==============
82、=====</p><p> if(this.jRadioButton2.isSelected()){</p><p> this.setVisible(false);</p><p> JOptionPane.showMessageDialog(null,"歡迎進(jìn)入刷卡界面!");</p><p> Spend.
83、main(null);</p><p><b> }</b></p><p> //=================== 學(xué)生查詢界面===================</p><p> if(this.jRadioButton3.isSelected()){</p><p> this.setVisibl
84、e(false);</p><p> JOptionPane.showMessageDialog(null,"歡迎進(jìn)入學(xué)生查詢界面!");</p><p> StuInfo.main(null);</p><p> 4.3.2 查詢模塊search() 設(shè)計說明</p><p><b> 1.程序描述&l
85、t;/b></p><p> 完成對系統(tǒng)(數(shù)據(jù)庫)的查找。</p><p><b> 2.輸入項(xiàng)</b></p><p> 學(xué)生卡信息,時間信息,消費(fèi)信息等。</p><p><b> 3.輸出項(xiàng)</b></p><p><b> 查找結(jié)果。<
86、/b></p><p> 4.流程邏輯PAD圖</p><p> 圖10 流程邏輯PAD圖</p><p> 具體方法代碼實(shí)現(xiàn)如下:</p><p> if(num.getText().equals("") )</p><p><b> {</b></p&
87、gt;<p> JOptionPane.showMessageDialog(null,"卡號不能為空!");</p><p> num.setFocusable(true); </p><p><b> }</b></p><p> else{ </p>
88、<p> try{ </p><p> Stringsql = "select * from student_info where stu_num = "+num.getText(); </p><p> ResultSetrs= Main.state.executeQuery(sql);</p><p&g
89、t; if(rs.next())</p><p><b> {</b></p><p> id.setText(rs.getString(2));</p><p> name.setText(rs.getString(3));</p><p> if(rs.getBoolean(4))</p>&
90、lt;p> sex.setText("男");</p><p> else sex.setText("女");</p><p> tel.setText(rs.getString(5));</p><p> address.setText(rs.getString(6));</p><p>
91、;<b> }</b></p><p> else{ </p><p> JOptionPane.showMessageDialog(null,"卡號錯誤!");</p><p> } </p><p><b> }</b&
92、gt;</p><p> catch(SQLExceptionex)</p><p> { System.err.println("aq.executeQuery:"+ex.getMessage());}</p><p><b> }</b></p><p> 4.3.3 存儲、消費(fèi)模塊pay
93、() 設(shè)計說明</p><p><b> 1.程序描述</b></p><p> 完成消費(fèi)部分。對輸入和消費(fèi)額,進(jìn)行合法性驗(yàn)證。</p><p><b> 2.輸入項(xiàng)</b></p><p> 卡ID,定價與否,消費(fèi)額。</p><p><b> 3.輸出
94、項(xiàng)</b></p><p><b> 卡余額,錯誤提示。</b></p><p> 具體方法代碼實(shí)現(xiàn)如下:</p><p><b> 1 搜索部分</b></p><p> if(Ids.getText().equals("") )</p>&l
95、t;p> {JOptionPane.showMessageDialog(null,"卡號不能為空!");</p><p> Ids.setFocusable(true);</p><p><b> }else{</b></p><p> try{ </p><p> Str
96、ingsql= "select * from card_info where id = "+Ids.getText(); </p><p> ResultSetrs= Main.state.executeQuery(sql);</p><p> if(rs.next()){</p><p> if(rs.getBoolean(3
97、))</p><p> {JOptionPane.showMessageDialog(null,"卡已</p><p> 經(jīng)被鎖,如要解鎖,請與管理員聯(lián)系否則10日后 自動注銷!");}</p><p><b> else{</b></p><p> if(DjCheck.isSelected
98、())</p><p> {Sum.setText(rs.getString(2));</p><p> this.result=String.valueOf(Integer.parseInt(Sum.getText())-Integer.parseInt(Dingjia.getText()));</p><p> JOptionPane.showMessag
99、eDialog(null,"消費(fèi)完畢,卡剩余"+ result +"。如果要繼續(xù)消費(fèi)請?jiān)?0秒內(nèi)操作,只后自動關(guān)閉帳戶");</p><p> Sum.setText(result); }</p><p> else{ </p><p> Ids.setEditable(false);
100、 </p><p> this.jButton26.setEnabled(false); </p><p> this.jPanel1.setVisible(true);</p><p> Sum.setText(rs.getString(2));</p><p> jButton12.se
101、tEnabled(true);</p><p> jButton14.setEnabled(true);</p><p> jButton15.setEnabled(true);</p><p><b> }</b></p><p><b> }</b></p><p&g
102、t;<b> }</b></p><p><b> else{</b></p><p> JOptionPane.showMessageDialog(null,"卡號錯誤!");</p><p><b> }</b></p><p><b>
103、; } </b></p><p> catch(SQLExceptionex)</p><p> { System.err.println("aq.executeQuery:"+ex.getMessage());}</p><p><b> ?。?lt;/b></p><p><
104、b> 2 消費(fèi)部分</b></p><p> try{ </p><p> this.result=String.valueOf((Integer.parseInt(Sum.getText()) - Integer.parseInt(Now.getText())));</p><p> Stringsql="updat
105、ecard_infoset sum="+result+"whereid="+Ids.getText(); </p><p> if(Main.state.executeUpdate(sql)==0)</p><p> { </p><p> JOptionPane.showMessageDialog(nu
106、ll,"消費(fèi)失敗");</p><p><b> }</b></p><p><b> else{</b></p><p> this.nows =Now.getText();</p><p> this.sums =Sum.getText();</p>&
107、lt;p> JOptionPane.showMessageDialog(null,"消費(fèi)完畢,卡剩余"+ result +"。如果要繼續(xù)消費(fèi)請?jiān)?0秒內(nèi)操作,只后自動關(guān)閉帳戶");</p><p> Sum.setText(result);</p><p><b> }</b></p><p>
108、; }catch(SQLExceptionex)</p><p> { System.err.println("aq.executeQuery:"+ex.getMessage());}</p><p><b> 3 加減乘部分</b></p><p> if(Jisuan.getText().compareTo(&q
109、uot;") == 0)</p><p><b> {</b></p><p> Jisuan.setText(Now.getText());</p><p> Now.setText("0");</p><p><b> }</b></p>&l
110、t;p><b> else {</b></p><p> switch(ops){</p><p><b> case 3:</b></p><p><b> int a= 0;</b></p><p> a=Integer.parseInt(Jisuan.ge
111、tText()) * Integer.parseInt(Now.getText());</p><p><b> if(a>999)</b></p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null,"計算量超過消費(fèi)最大值!&quo
112、t;);</p><p><b> }</b></p><p><b> else{</b></p><p> Jisuan.setText(String.valueOf(Integer.parseInt(Jisuan.getText()) * Integer.parseInt(Now.getText())));
113、 </p><p> Now.setText(Jisuan.getText());</p><p><b> } </b></p><p><b> break;</b></p><p><b> case 2:</b><
114、;/p><p><b> int b=0;</b></p><p> b=Integer.parseInt(Jisuan.getText())+ Integer.parseInt(Now.getText());</p><p><b> if(b>999)</b></p><p><
115、b> {</b></p><p> JOptionPane.showMessageDialog(null,"計算量超過消費(fèi)最大值!");</p><p><b> }</b></p><p> else{ Jisuan.setText(String.valueOf(Integer.parseInt(
116、Jisuan.getText())+Integer.parseInt(Now.getText())));</p><p> Now.setText(Jisuan.getText());</p><p><b> } </b></p><p><b> break;</b></p><p>&l
117、t;b> case 1: </b></p><p> int c=1; </p><p> c=Integer.parseInt(Jisuan.getText())-Integer.parseInt(Now.getText()); if(c>999||c<=0)</p>
118、;<p><b> {</b></p><p> JOptionPane.showMessageDialog(null,"計算量超過消費(fèi)有效值!");</p><p><b> }</b></p><p><b> else{</b></p>&
119、lt;p> Jisuan.setText(String.valueOf(Integer.pars</p><p> eInt(Jisuan.getText()) - Integer.parseInt(Now.getText()))); </p><p> Now.setText(Jisuan.getText());</p&g
120、t;<p><b> } </b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> ops = 0 ;</b>
121、;</p><p> Op.setText("=");</p><p> 4.3.4掛失模塊deposit() 設(shè)計說明</p><p><b> 1.程序描述</b></p><p> 完成掛失部分。對卡進(jìn)行掛失和解掛操作,進(jìn)行合法性驗(yàn)證。</p><p><b
122、> 2.輸入項(xiàng)</b></p><p><b> 卡ID,卡密碼額。</b></p><p><b> 3.輸出項(xiàng)</b></p><p> 成功提示,錯誤提示。</p><p><b> 4.流程邏輯判斷表</b></p><p
123、> 表1 流程邏輯判斷表</p><p> if(num.getText().equals("") )</p><p> {JOptionPane.showMessageDialog(null,"學(xué)生學(xué)號不能為空"); num.setFocusable(true);</p><p><b
124、> }</b></p><p><b> else{</b></p><p> try{ </p><p> String sql = "select * from student_info where stu_num = "+num.getText();
125、 ResultSetrs=Main.state.executeQuery(sql);</p><p> if(rs.next())</p><p><b> {</b></p><p> if(rs.getString(7).compareTo(pass.getText())==0)</p><
126、;p><b> { </b></p><p> JOptionPane.showMessageDialog(null,"請按確認(rèn)鎖鍵,確認(rèn)鎖卡!");</p><p> num.setEnabled(false);</p><p> pass.setEnabled(false);</p><
127、p> this.jButton1.setEnabled(false);</p><p> this.jButton2.setEnabled(true);</p><p> ids=rs.getInt(1);</p><p><b> }</b></p><p><b> else {</b
128、></p><p> JOptionPane.showMessageDialog(null,"學(xué)生密碼錯誤!");</p><p><b> }</b></p><p><b> }</b></p><p> else{ </p&
129、gt;<p> JOptionPane.showMessageDialog(null,"學(xué)生學(xué)號錯誤!");</p><p> } </p><p><b> }</b></p><p> catch(SQLException ex)</p><p&
130、gt; { System.err.println("aq.executeQuery:"+ex.getMessage());} </p><p><b> }</b></p><p><b> 第五章 系統(tǒng)測試</b></p><p> 5.1 測試的作用和意義</p>&
131、lt;p> 系統(tǒng)測試是管理信息系統(tǒng)的開發(fā)周期中的一個十分重要環(huán)節(jié)。盡管在系統(tǒng)開發(fā)周期的各個階段均采取了嚴(yán)格的技術(shù)審查,但依然難免會留下錯誤,如果沒有在投入運(yùn)行前的系統(tǒng)測試階段被發(fā)現(xiàn)并糾正,問題遲早會在運(yùn)行中暴露出來,到那時要糾正錯誤將會付出更大的代價。系統(tǒng)測試占用的時間、花費(fèi)的人力和成本占軟件開發(fā)的很大比例。統(tǒng)計表明,開發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測試的工作量大約占整個軟件開發(fā)工作量的40%-50%。而對于一些特別重要的大系統(tǒng),測試的
132、工作量和成本更大,甚至超過系統(tǒng)開發(fā)其他各階段的總和的若干倍。因此做好系統(tǒng)交付前的系統(tǒng)測試的目的就是在系統(tǒng)在投入生產(chǎn)性運(yùn)行之前,盡可能多的發(fā)現(xiàn)系統(tǒng)的潛在錯誤,這是保證系統(tǒng)質(zhì)量的關(guān)鍵,也是減少系統(tǒng)后期維護(hù)投入的最佳方法。</p><p><b> 5.2 測試方法</b></p><p> 本次測試主要是對系統(tǒng)進(jìn)行黑盒、白盒測試。由未參與系統(tǒng)編程的組員參與。通過設(shè)計不
133、同的等價輸入類對系統(tǒng)的各項(xiàng)功能進(jìn)行反復(fù)運(yùn)行,觀察系統(tǒng)的返回結(jié)果來判斷系統(tǒng)的各項(xiàng)功能的實(shí)現(xiàn)情況。</p><p><b> 5.3 測試內(nèi)容</b></p><p> 1 軟件的正常運(yùn)行、關(guān)閉及退出時保存記錄情況。</p><p> 2 用戶界面是否友好,可操作性及安全性能是否良好。</p><p> 3 數(shù)
134、據(jù)庫的可維護(hù)性好,數(shù)據(jù)的錄入、刪除及更改是否能順利完成。</p><p> 5 各模塊的共能是否能達(dá)到預(yù)期要求。</p><p> 6 系統(tǒng)的穩(wěn)定性是夠良好。</p><p><b> 5.4 測試結(jié)果</b></p><p> 5.4.1注冊和登錄模塊測試</p><p> 經(jīng)過測
135、試,用戶能在本系統(tǒng)進(jìn)行正常的注冊和登錄,并在用戶輸入不存在的用戶名或錯誤的密碼后能給出提示。說明本系統(tǒng)的注冊和登錄模塊的各項(xiàng)功能都圓滿實(shí)現(xiàn)了。</p><p><b> 1.進(jìn)入界面</b></p><p><b> 圖11 進(jìn)入界面</b></p><p><b> 2. 創(chuàng)建用戶界面</b>
136、</p><p> 圖12 創(chuàng)建新卡界面</p><p> 3.登陸界面 </p><p><b> 圖13 登陸界面</b></p><p> 5.4.2查詢模塊測試</p><p> 1查詢主要是余額查詢,經(jīng)測試系統(tǒng)該方面運(yùn)行正常。</p><
137、;p><b> 查詢結(jié)果顯示</b></p><p><b> 圖14 查詢界面</b></p><p> 5.4.3 卡密碼修改模塊測試</p><p><b> 1.密碼修改</b></p><p> 圖15 密碼修改界面</p><p
138、> 5.4.4 賬戶充值、消費(fèi)模塊測試</p><p><b> 1刷卡消費(fèi)界面</b></p><p><b> 圖16 消費(fèi)界面</b></p><p><b> 2.賬戶充值界面</b></p><p> 圖17 賬戶充值界面</p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程課程設(shè)計-校園卡
- 軟件工程課程設(shè)計報告-校園卡設(shè)計
- 校園卡java課程設(shè)計報告
- 軟件工程課程設(shè)計
- 軟件工程課程設(shè)計
- 軟件工程課程設(shè)計
- 軟件工程課程設(shè)計
- 《軟件工程》課程設(shè)計
- 軟件工程課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計-校園卡管理系統(tǒng)
- 軟件工程課程設(shè)計報告
- 數(shù)據(jù)庫課程設(shè)計校園卡管理系統(tǒng)
- 軟件工程課程設(shè)計-電梯
- 軟件工程課程設(shè)計報告
- 軟件工程課程設(shè)計作業(yè)
- 軟件工程課程設(shè)計案例
- 軟件工程課程設(shè)計文檔
- 軟件工程課程設(shè)計--網(wǎng)站設(shè)計
- [封面] 《軟件工程》課程設(shè)計報告
- 軟件工程課程設(shè)計—選課系統(tǒng)
評論
0/150
提交評論