




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),九,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),根據(jù)乘客和管理人員的需求,飛機(jī)訂票系統(tǒng)可以提供下列服務(wù):,(1)瀏覽、查詢航班信息;,(2)購票、退票;,(3)管理航班信息(管理人員權(quán)限)。,項(xiàng)目說明,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),預(yù)備知識,接到項(xiàng)目要求后,首先需要分析項(xiàng)目中提出的要求然后定義項(xiàng)目的功能。根據(jù)功能的劃分再進(jìn)行類與核心控制的設(shè)計(jì),最后進(jìn)行編碼和測試。,具體可分為以下步驟:,(1)分析系統(tǒng)中的各個實(shí)體之間的關(guān)系及其屬性和行為; (2)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次; (3)完成類層次中各個類的描述(包括屬性和方法); (4)完成類中各個
2、成員函數(shù)的定義; (5)編碼完成系統(tǒng)的應(yīng)用模塊; (6)功能調(diào)試; (7)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),一、問題分析和功能定義,二、類設(shè)計(jì)及實(shí)現(xiàn),三、核心控制設(shè)計(jì),四、編碼與測試,綜合實(shí)踐 設(shè)計(jì)飛機(jī)訂票系統(tǒng),C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),一、問題分析和功能定義,這個階段的工作也叫作“需求分析”,需要程序員和用戶共同分析問題,從而確定整個軟件系統(tǒng)要完成的功能。飛機(jī)訂票系統(tǒng)的功能結(jié)構(gòu)如圖所示。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),(一)更新航班信息模塊,該模塊用于更新對航班信息,僅向管理人員開放使用,需進(jìn)行身份驗(yàn)證。其下分為五個子功能模
3、塊信息庫的重建、信息的插入、修改、刪除和清空數(shù)據(jù)。,(二)訂票和退票模塊,訂票時,首先按航班編號或站點(diǎn)查詢該航班的基本信息,當(dāng)剩余座位數(shù)大于0且當(dāng)前系統(tǒng)時間小于起飛時間時才能售票,售票后系統(tǒng)自動更新剩余座位數(shù)。,退票時,需輸入退票的班次,只有該航班未發(fā)出時才能退票,退票后將自動更新剩余座位數(shù)。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),(三)查詢航班信息模塊,可以實(shí)現(xiàn)按航班號和按站點(diǎn)的兩種方式進(jìn)行查詢并將查詢到的信息輸出。,(四)瀏覽航班信息,該模塊用于將文件中的航班信息按照要求的格式全部輸出。如果當(dāng)前系統(tǒng)時間超過了某航班的起飛時間,則顯示“此次航班已發(fā)出”的提示信息。,程序中各功能模塊所需的數(shù)
4、據(jù)都直接取自文件,而不是依賴其他模塊,這樣一來,保證了各模塊的獨(dú)立和數(shù)據(jù)的安全。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),二、類設(shè)計(jì)及實(shí)現(xiàn),本階段的工作是要給出所有對象的描述,并確定對象之間是如何交互的。本項(xiàng)目中定義了兩個類:Flight類和Traffic_system類。Flight類封裝了航班的數(shù)據(jù)信息和方法,Traffic_system類用于管理Flight類對象。,(一)Flight類,Flight類中的數(shù)據(jù)信息主要包括:航班的航班號、起飛時間、站點(diǎn)等信息;方法主要包括:本次航班信息的輸入、輸出,對本航班的訂票、退票管理,對時間、站名的核對,另外,重載了提取和插入運(yùn)算符以方便對文件的輸
5、出和讀取。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),class Flight public: char m_fnum10;/航班號 int m_ftime2;/起飛時間 char m_fstar18;/起始站 char m_fdestination18;/終點(diǎn)站 int m_fprice;/票價 int m_fseat;/票數(shù) Flight() m_fnum0 = +; ,Flight類的具體信息如下所示:,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),bool SetInfo();/設(shè)置航班信息 friend istream,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),(二)Traffic_syste
6、m類,航班有多組,為了方便管理Flight類的各個對象,這里定義了一個Traffic_system類。將Flight類的對象作為Traffic_system類的數(shù)據(jù)成員,另外定義了一個數(shù)據(jù)成員用于記錄航班數(shù)。,該類中還定義了兩個私有的成員函數(shù)完成對文件的讀寫。其他共有的成員函數(shù)如Manage()、void Scan()、Search()和BookRefund()用來完成系統(tǒng)的管理信息、瀏覽、查詢和訂票、退票功能。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),Traffic_system類的具體信息如下所示:,class Traffic_system public: Traffic_system()
7、 m_sum = 0; void Manage();/管理航班信息 void Scan();/瀏覽 int Search(int invoke = 0);/查詢功能 void BookRefund();/訂票和退票 private: void Read_file();/讀取文件 void Save_file();/保存文件 int m_sum;/記錄航班數(shù) vector v_array;/航班類數(shù)組 ;,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),三、核心控制設(shè)計(jì),核心控制設(shè)計(jì)階段主要完成程序的框架設(shè)計(jì),這是實(shí)現(xiàn)軟件系統(tǒng)體系的核心。在本項(xiàng)目中,程序的核心部分是數(shù)據(jù)存儲結(jié)構(gòu)的選擇以及類中函數(shù)的設(shè)計(jì)。
8、,(一)數(shù)據(jù)存儲結(jié)構(gòu)的選擇,乘客的基本信息包括航班號、起始站、終點(diǎn)站、起飛時間、票價、余票量等,乘客的數(shù)量較大且不固定,因此我們使用動態(tài)增長的Flight類數(shù)組來保存這些信息,在必要的時候可將數(shù)組的內(nèi)容保存到文件中。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),在本程序中我們使用的是vector數(shù)組,vector是C+標(biāo)準(zhǔn)程序庫中的一個類,可視為會自動擴(kuò)展容量的數(shù)組。使用vector時需在頭文件中包含下面的代碼:,#include ,聲明一個vector變量的方法如下:,vector v;,其中,T是vector要存儲的對象集合的類型,該vector的變量名稱是v。,訪問vector中的任意元素或
9、從末尾添加元素都可以在常量級時間復(fù)雜度內(nèi)完成,在本程序中我們用到了它的函數(shù)push_back(),其作用是在vector最后添加一個元素。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),(二)函數(shù)的設(shè)計(jì)與實(shí)現(xiàn),本項(xiàng)目中函數(shù)的實(shí)現(xiàn)比較簡單,這里不再贅述,讀者可參照源碼。這里只將程序中帶參數(shù)的函數(shù)進(jìn)行簡單介紹。,1istream& operator(istream& in, Flight& cp),提取運(yùn)算符重載函數(shù)使用了形參in和cp:形參in為“istream&”引用類型,與該函數(shù)的返回值相同,故可以將該函數(shù)的返回值傳給該形參,實(shí)現(xiàn)“”操作符的連續(xù)使用;形參cp為“Flight&”引用類型,實(shí)現(xiàn)了對
10、Flight類對象的輸入重載。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),2ostream& operator(ostream& out, Flight& cp),插入運(yùn)算符重載函數(shù)使用了形參out和cp,其作用與提取運(yùn)算符重載函數(shù)類似。,3bool Flight:If_match(char (*p)18, char ta),該函數(shù)使用了形參p和ta:形參p為指向字符數(shù)組的指針,它用來指向一個大小為18的字符數(shù)組;形參ta為字符型,其作用是使該函數(shù)區(qū)分航班號和站點(diǎn)名兩種比較。,4int Traffic_system:Search(int invoke = 0),該函數(shù)使用了形參invoke,該形參為int型并設(shè)置默認(rèn)參數(shù)為0,其作用為區(qū)分調(diào)用者,以便輸出相應(yīng)的提示信息。,四、編碼與測試,編碼與測試的工作將在任務(wù)實(shí)施中進(jìn)行。,C+面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程(項(xiàng)目九),任務(wù)實(shí)施設(shè)計(jì)飛機(jī)訂票系統(tǒng),步驟1 在Visual C+中創(chuàng)建一個工作區(qū),并在此工作區(qū)中創(chuàng)建一個Console Application即控制臺應(yīng)用程序類型的工程。在此工程中我們添加一個名為flight的頭文件以及同名的一個源文件,其代碼略。,步驟2 在步驟1創(chuàng)建的工程中添加一個名為Traffic_system的頭文件以及同名的一個源文件,其代碼略。,步驟3 在Visual C+中新建一個C+源文件,命名為main.c
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建莆田三模數(shù)學(xué)試卷
- 二四年高職高考數(shù)學(xué)試卷
- 大學(xué)新聞寫作培訓(xùn)課件
- 肌肉牽伸技術(shù)課件雙語
- 阜城中考數(shù)學(xué)試卷
- 2025年04月廣西南寧市第五人民醫(yī)院人才招聘14人筆試歷年專業(yè)考點(diǎn)(難、易錯點(diǎn))附帶答案詳解
- 2025年浙江醫(yī)療衛(wèi)生招聘寧波大學(xué)附屬人民醫(yī)院招聘編外人員2人筆試歷年專業(yè)考點(diǎn)(難、易錯點(diǎn))附帶答案詳解
- 2025至2030代理記賬產(chǎn)業(yè)市場深度分析及前景趨勢與投資報(bào)告
- 2025至2030畜牧行業(yè)市場占有率及投資前景評估規(guī)劃報(bào)告
- 2025至2030寵物保健品行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資管理報(bào)告
- 小升初真題卷(七)(江蘇卷)(試題)- 2023-2024學(xué)年六年級下冊數(shù)學(xué)蘇教版
- 2024全新標(biāo)準(zhǔn)黃金回收合同任意下載
- 《中國噬血細(xì)胞綜合征診斷與治療指南(2022年版)》解讀
- 生活飲用水管道分質(zhì)直飲水衛(wèi)生規(guī)范
- 人教版六年級數(shù)學(xué)上冊《全冊完整》課件
- 奇瑞汽車在線測評題庫
- 《SVG原理與應(yīng)用》課件
- 開展電力登桿培訓(xùn)課件
- 初中英語語法、詞匯及固定搭配專題訓(xùn)練100題(含參考答案)
- 2024年浙江寧波市水務(wù)環(huán)境集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 麻醉晉升述職報(bào)告
評論
0/150
提交評論