




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
會計學1C面向?qū)ο蟪绦蛟O計項目教程項目九根據(jù)乘客和管理人員的需求,飛機訂票系統(tǒng)可以提供下列服務:(1)瀏覽、查詢航班信息;(2)購票、退票;(3)管理航班信息(管理人員權限)。項目說明第1頁/共20頁預備知識
接到項目要求后,首先需要分析項目中提出的要求然后定義項目的功能。根據(jù)功能的劃分再進行類與核心控制的設計,最后進行編碼和測試。具體可分為以下步驟:(1)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為;(2)根據(jù)問題描述,設計系統(tǒng)的類層次;(3)完成類層次中各個類的描述(包括屬性和方法);(4)完成類中各個成員函數(shù)的定義;(5)編碼完成系統(tǒng)的應用模塊;(6)功能調(diào)試;(7)完成系統(tǒng)總結報告以及系統(tǒng)使用說明書。第2頁/共20頁一、問題分析和功能定義二、類設計及實現(xiàn)三、核心控制設計四、編碼與測試綜合實踐
設計飛機訂票系統(tǒng)第3頁/共20頁一、問題分析和功能定義
這個階段的工作也叫作“需求分析”,需要程序員和用戶共同分析問題,從而確定整個軟件系統(tǒng)要完成的功能。飛機訂票系統(tǒng)的功能結構如圖所示。第4頁/共20頁(一)更新航班信息模塊
該模塊用于更新對航班信息,僅向管理人員開放使用,需進行身份驗證。其下分為五個子功能模塊——信息庫的重建、信息的插入、修改、刪除和清空數(shù)據(jù)。(二)訂票和退票模塊
訂票時,首先按航班編號或站點查詢該航班的基本信息,當剩余座位數(shù)大于0且當前系統(tǒng)時間小于起飛時間時才能售票,售票后系統(tǒng)自動更新剩余座位數(shù)。
退票時,需輸入退票的班次,只有該航班未發(fā)出時才能退票,退票后將自動更新剩余座位數(shù)。第5頁/共20頁(三)查詢航班信息模塊
可以實現(xiàn)按航班號和按站點的兩種方式進行查詢并將查詢到的信息輸出。(四)瀏覽航班信息
該模塊用于將文件中的航班信息按照要求的格式全部輸出。如果當前系統(tǒng)時間超過了某航班的起飛時間,則顯示“此次航班已發(fā)出”的提示信息。
程序中各功能模塊所需的數(shù)據(jù)都直接取自文件,而不是依賴其他模塊,這樣一來,保證了各模塊的獨立和數(shù)據(jù)的安全。第6頁/共20頁二、類設計及實現(xiàn)
本階段的工作是要給出所有對象的描述,并確定對象之間是如何交互的。本項目中定義了兩個類:Flight類和Traffic_system類。Flight類封裝了航班的數(shù)據(jù)信息和方法,Traffic_system類用于管理Flight類對象。(一)Flight類Flight類中的數(shù)據(jù)信息主要包括:航班的航班號、起飛時間、站點等信息;方法主要包括:本次航班信息的輸入、輸出,對本航班的訂票、退票管理,對時間、站名的核對,另外,重載了提取和插入運算符以方便對文件的輸出和讀取。第7頁/共20頁classFlight{public: charm_fnum[10]; //航班號
intm_ftime[2]; //起飛時間
charm_fstar[18]; //起始站
charm_fdestination[18]; //終點站
intm_fprice; //票價
intm_fseat; //票數(shù)
Flight() { m_fnum[0]='+'; }
Flight類的具體信息如下所示:第8頁/共20頁boolSetInfo(); //設置航班信息friendistream&operator>>(istream&in,Flight&cp); //提取運算符重載friendostream&operator<<(ostream&out,Flight&cp); //插入運算符重載voidDisplay(); //輸出航班信息boolBook(); //訂票voidRefund(); //退票boolIf_takeoff(); //判斷是否起飛boolIf_deleted(); //判斷是否刪除boolIf_match(char(*p)[18],charta);//判斷航班號或站點名是否相同};第9頁/共20頁(二)Traffic_system類
航班有多組,為了方便管理Flight類的各個對象,這里定義了一個Traffic_system類。將Flight類的對象作為Traffic_system類的數(shù)據(jù)成員,另外定義了一個數(shù)據(jù)成員用于記錄航班數(shù)。
該類中還定義了兩個私有的成員函數(shù)完成對文件的讀寫。其他共有的成員函數(shù)如Manage()、voidScan()、Search()和BookRefund()用來完成系統(tǒng)的管理信息、瀏覽、查詢和訂票、退票功能。第10頁/共20頁Traffic_system類的具體信息如下所示:classTraffic_system{public:Traffic_system() {m_sum=0;}voidManage(); //管理航班信息voidScan(); //瀏覽intSearch(intinvoke=0); //查詢功能voidBookRefund(); //訂票和退票private:voidRead_file(); //讀取文件voidSave_file(); //保存文件intm_sum; //記錄航班數(shù)vector<Flight>v_array; //航班類數(shù)組};第11頁/共20頁三、核心控制設計
核心控制設計階段主要完成程序的框架設計,這是實現(xiàn)軟件系統(tǒng)體系的核心。在本項目中,程序的核心部分是數(shù)據(jù)存儲結構的選擇以及類中函數(shù)的設計。(一)數(shù)據(jù)存儲結構的選擇
乘客的基本信息包括航班號、起始站、終點站、起飛時間、票價、余票量等,乘客的數(shù)量較大且不固定,因此我們使用動態(tài)增長的Flight類數(shù)組來保存這些信息,在必要的時候可將數(shù)組的內(nèi)容保存到文件中。第12頁/共20頁
在本程序中我們使用的是vector數(shù)組,vector是C++標準程序庫中的一個類,可視為會自動擴展容量的數(shù)組。使用vector時需在頭文件中包含下面的代碼:#include<vector>聲明一個vector變量的方法如下:vector<T>v;
其中,T是vector要存儲的對象集合的類型,該vector的變量名稱是v。
訪問vector中的任意元素或從末尾添加元素都可以在常量級時間復雜度內(nèi)完成,在本程序中我們用到了它的函數(shù)push_back(),其作用是在vector最后添加一個元素。第13頁/共20頁(二)函數(shù)的設計與實現(xiàn)
本項目中函數(shù)的實現(xiàn)比較簡單,這里不再贅述,讀者可參照源碼。這里只將程序中帶參數(shù)的函數(shù)進行簡單介紹。1.istream&operator>>(istream&in,Flight&cp)
提取運算符重載函數(shù)使用了形參in和cp:形參in為“istream&”引用類型,與該函數(shù)的返回值相同,故可以將該函數(shù)的返回值傳給該形參,實現(xiàn)“>>”操作符的連續(xù)使用;形參cp為“Flight&”引用類型,實現(xiàn)了對Flight類對象的輸入重載。第14頁/共20頁2.ostream&operator<<(ostream&out,Flight&cp)插入運算符重載函數(shù)使用了形參out和cp,其作用與提取運算符重載函數(shù)類似。3.boolFlight::If_match(char(*p)[18],charta)
該函數(shù)使用了形參p和ta:形參p為指向字符數(shù)組的指針,它用來指向一個大小為18的字符數(shù)組;形參ta為字符型,其作用是使該函數(shù)區(qū)分航班號和站點名兩種比較。4.intTraffic_system::Search(intinvoke=0)
該函數(shù)使用了形參invoke,該形參為int型并設置默認參數(shù)為0,其作用為區(qū)分調(diào)用者,以便輸出相應的提示信息。四、編碼與測試編碼與測試的工作將在任務實施中進行。第15頁/共20頁任務實施——設計飛機訂票系統(tǒng)步驟1在VisualC++中創(chuàng)建一個工作區(qū),并在此工作區(qū)中創(chuàng)建一個ConsoleApplication即控制臺應用程序類型的工程。在此工程中我們添加一個名為flight的頭文件以及同名的一個源文件,其代碼略。步驟2在步驟1創(chuàng)建的工程中添加一個名為Traffic_system的頭文件以及同名的一個源文件,其代碼略。步驟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美甲店轉(zhuǎn)讓合同含店鋪裝修升級及開業(yè)慶典策劃
- 《睡谷的傳說》THE LEGEND OF SLEEPY HOLLOW小說英文原版電子版
- 2025年杭州駕??荚囏涍\從業(yè)資格證考試題庫
- 2025年新余道路運輸從業(yè)資格證考試內(nèi)容是什么
- 感謝領導發(fā)言稿
- 2025年宣城道路運輸從業(yè)人員資格考試內(nèi)容有哪些
- 2025年重慶貨運從業(yè)資格證考試題目及答案詳解
- 詳細的聘用勞動合同
- 2025年白城貨運從業(yè)資格證模擬考試保過版
- 2025年遂寧道路運輸貨運考試題庫
- 社區(qū)網(wǎng)格員消防安全培訓
- 中華人民共和國統(tǒng)計法
- 某部勞務派遣服務 投標方案(技術標 )
- 運用PDCA降低住院患者跌倒、墜床發(fā)生率課件
- 剪刀式登高車安全技術交底
- 新疆2022年中考數(shù)學試卷(含答案)
- 2024年監(jiān)理考試-公路工程監(jiān)理工程師考試近5年真題附答案
- 2024-2030年中國小黃姜行業(yè)盈利模式與投資策略分析報告
- 職業(yè)技術學院攝影攝像技術專業(yè)人才培養(yǎng)方案
- 生產(chǎn)廠房消防施工合同范本
- 心房顫動診斷和治療中國指南(2023) 解讀
評論
0/150
提交評論