版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 內(nèi)蒙古科技大學(xué)</b></p><p> 本科生《C++程序設(shè)計(jì)》課程設(shè)計(jì)說(shuō)明書(shū)</p><p> 題 目:航空售票管理系統(tǒng)</p><p><b> 學(xué)生姓名:完美主義</b></p><p> 學(xué) 號(hào):XXXXXXXX</p>&l
2、t;p> 專(zhuān) 業(yè):計(jì)算科學(xué)與技術(shù)</p><p> 班 級(jí):計(jì)2010-1班</p><p><b> 指導(dǎo)教師:XXX</b></p><p><b> 【摘要】</b></p><p> 隨著科技的發(fā)展和人們生活水平的日益提高,人們?cè)诓粩嘧非蟾涌旖莸慕煌ǚ绞揭詽M足人
3、們快節(jié)奏的生活方式,航空系統(tǒng)在交通系統(tǒng)中已扮演著一個(gè)越來(lái)越重要的角色。然而,交通的快捷離不開(kāi)信息的快捷。</p><p> 隨著隨著計(jì)算機(jī)的發(fā)展和普及,人們的生活方式發(fā)生了巨大的改變,計(jì)算機(jī)在代替和延伸腦力勞動(dòng)方面發(fā)揮著越來(lái)越重要的作用。在交通系統(tǒng)中,有大量的數(shù)據(jù)需要被處理,而這些工作有人來(lái)完成幾乎是不可能的,而交給計(jì)算機(jī)處理,就可以很好地滿足我們的需求。</p><p> 航空售票管
4、理系統(tǒng)可以根據(jù)乘客和管理人員的要求,進(jìn)行方便快速的查詢、購(gòu)票、退票和管理等工作。本文介紹了簡(jiǎn)易航空售票管理系統(tǒng)的實(shí)現(xiàn)過(guò)程。</p><p><b> 【關(guān)鍵詞】</b></p><p> 航空售票管理系統(tǒng) 動(dòng)態(tài)數(shù)組 類(lèi)和對(duì)象 文件操作 運(yùn)算符重載 多文件結(jié)構(gòu)</p><p><b> 成績(jī)?cè)u(píng)定標(biāo)準(zhǔn)</b>&
5、lt;/p><p> 課程設(shè)計(jì)的驗(yàn)收答辯采取“講解程序+提問(wèn)+即時(shí)編程”的方式。</p><p><b> 目 錄</b></p><p> 第一章 問(wèn)題描述1</p><p> 第二章 問(wèn)題分析2</p><p> 2.1 闡述你對(duì)問(wèn)題的理解、解決問(wèn)題的方案說(shuō)明2</p>
6、;<p> 2.2 系統(tǒng)功能模塊的劃分2</p><p> 第三章 數(shù)據(jù)模型4</p><p> 3.1 相關(guān)數(shù)據(jù)結(jié)構(gòu)的說(shuō)明4</p><p> 3.2 類(lèi)的設(shè)計(jì)4</p><p> 3.3 程序結(jié)構(gòu)說(shuō)明,即程序各個(gè)部分之間如何協(xié)調(diào)來(lái)完成任務(wù)5</p><p> 3.4 全局變量,重
7、要形式參數(shù)、局部變量等等,它們的命名及用途解釋6</p><p> 第四章 算法描述7</p><p> 4.1 解題算法的設(shè)計(jì)思路介紹7</p><p> 4.2 畫(huà)出程序流程圖7</p><p> 第五章 設(shè)計(jì)總結(jié)12</p><p><b> 附錄13</b></
8、p><p><b> 參考文獻(xiàn)32</b></p><p> ………………………………………………………………………………………………</p><p> ………………………………………………………………………</p><p><b> 問(wèn)題描述</b></p><p>
9、 1.1該航空售票管理系統(tǒng)必須用C++語(yǔ)言進(jìn)行設(shè)計(jì),要能體現(xiàn)C++語(yǔ)言的特性。</p><p> 1.2該系統(tǒng)至少要能提供下列服務(wù):</p><p> 錄入航班信息,格式為:</p><p> 可不定時(shí)地增加航班數(shù)據(jù)。</p><p> ?。?)瀏覽航班信息,可顯示出所有航班,如果當(dāng)前系統(tǒng)時(shí)間超過(guò)了某航班的起飛時(shí)間,則顯示“此次航班已
10、發(fā)出”的提示信息。</p><p> ?。?)查詢路線:可按航班編號(hào)查詢,可按起始站,終點(diǎn)站查詢</p><p> ?。?)訂票和退票功能</p><p> A:查詢航班編號(hào)或站點(diǎn)。當(dāng)剩余座位數(shù)大于0,并且當(dāng)前系統(tǒng)時(shí)間小于起飛時(shí)間時(shí)才能售票,售票后自動(dòng)更新剩余座位數(shù)。</p><p> B:退票時(shí),輸入退票的班次,當(dāng)本班航班未發(fā)出時(shí)才能退
11、票,退票后自動(dòng)更新剩余座位數(shù)。</p><p><b> 問(wèn)題分析</b></p><p> 從對(duì)問(wèn)題的描述可以知道,我們需要建立的是具有能對(duì)數(shù)據(jù)錄入,追加,瀏覽,檢索和修改功能的軟件。由于乘客的數(shù)量較大且不固定,因此選擇用動(dòng)態(tài)數(shù)組來(lái)保存乘客的基本信息:航班號(hào)、起始站名、終點(diǎn)站名、起飛時(shí)間、經(jīng)濟(jì)參票價(jià)、余票量等等。所以我們建立一個(gè)可以動(dòng)態(tài)增長(zhǎng)的數(shù)組,在必要的時(shí)候?qū)?/p>
12、數(shù)組的內(nèi)容保存到文件中。系統(tǒng)主要實(shí)現(xiàn)的操作和功能是:錄入航班信息、瀏覽航班信息、查詢航線、訂票功能、退票功能。要實(shí)現(xiàn)這些功能,首先要使程序能實(shí)現(xiàn)查找功能,在查找出到有效信息的前提之下,通過(guò)鏈表的賦值,更新信息和刪除退票人信息,滿足客戶的要求。</p><p> 闡述你對(duì)問(wèn)題的理解、解決問(wèn)題的方案說(shuō)明</p><p> 根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:</p>
13、<p> ?。?)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為;</p><p> ?。?)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類(lèi)層次;</p><p> ?。?)完成類(lèi)層次中各個(gè)類(lèi)的描述(包括屬性和方法);</p><p> (4)完成類(lèi)中各個(gè)成.員函數(shù)的定義;</p><p> (5)完成系統(tǒng)的應(yīng)用模塊;</p><
14、;p><b> ?。?)功能調(diào)試;</b></p><p> ?。?)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書(shū)。</p><p><b> 系統(tǒng)功能模塊的劃分</b></p><p> 該系統(tǒng)總共包含四大功能模塊:</p><p> 更新航班信息功能模塊</p><p>
15、; 該模塊為對(duì)航班信息的操作,僅向管理員開(kāi)放使用,普通用戶不能使用該功能對(duì)航班信息進(jìn)行操作,故進(jìn)入該功能需進(jìn)行身份驗(yàn)證。</p><p> 該模塊又被分為五個(gè)子功能模塊——信息庫(kù)的重建、信息的插入、修改、刪除和清空數(shù)據(jù)。</p><p><b> 瀏覽航班信息</b></p><p> 完成將文件中的航班信息按照要求格式全部輸出。<
16、;/p><p><b> 查詢航班信息</b></p><p> 可以實(shí)現(xiàn)按航班號(hào)和按站點(diǎn)的查詢并將查詢到的信息輸出。</p><p><b> 訂票和退票系統(tǒng)</b></p><p> 該模塊根據(jù)訂票和退票操作的相似性,將這兩種操作放在一起。</p><p> 另外,
17、由于各模塊函數(shù)是直接對(duì)文件進(jìn)行操作,所以各功能模塊是相互獨(dú)立的。</p><p><b> 數(shù)據(jù)模型</b></p><p><b> 相關(guān)數(shù)據(jù)結(jié)構(gòu)的說(shuō)明</b></p><p> 本系統(tǒng)用到的容器主要是動(dòng)態(tài)增長(zhǎng)的vector ,使用該容器需用頭文件#include <vector>,其通過(guò)語(yǔ)句vecto
18、r <Flight> v_array;申請(qǐng)了一個(gè)可以動(dòng)態(tài)增長(zhǎng)的數(shù)組。該數(shù)組的元素類(lèi)Flight的對(duì)象,通過(guò)語(yǔ)句Flight fly; v_array.push_back(fly);可實(shí)現(xiàn)數(shù)組v_array的增長(zhǎng)。</p><p> 該容器用來(lái)存放航班類(lèi)Flight的對(duì)象,使用該容器可以可以存放個(gè)數(shù)不確定的對(duì)象,且可以方便地進(jìn)行訪問(wèn)。</p><p><b> 類(lèi)的
19、設(shè)計(jì)</b></p><p> 程序中一共定義了兩個(gè)類(lèi):Flight類(lèi)和Traffic_system類(lèi)。</p><p> 在Flight類(lèi)里定義了私有數(shù)據(jù)成員m_fnum[10]表示航班號(hào), m_ftime[2]表示起飛時(shí)間,char m_fstar[18]表示起始站, m_fdestination[18]表示終點(diǎn)站, m_fprice表示票價(jià), m_fseat表示票數(shù);
20、定義了共有的成員函數(shù)bool SetInfo()用來(lái)設(shè)置航班信息,friend istream& operator>>(istream& in, Flight& cp)用來(lái)重載提取運(yùn)算符>>,friend ostream& operator<<(ostream& out, Flight& cp)用來(lái)重載插入運(yùn)算符<<,void Display
21、()用來(lái)輸出航班信息,bool Book()用來(lái)訂票,void Refund()用來(lái)退票,bool If_takeoff()用來(lái)判斷是否起飛,bool If_deleted()用來(lái)判斷該航班是否被刪除,bool If_match(char (*p)[18], char ta)用來(lái)判斷航班號(hào)或站點(diǎn)名是否相同。</p><p> 另一個(gè)類(lèi)為T(mén)raffic_system類(lèi),其中定義了私有數(shù)據(jù)成員m_sum和v_arr
22、ay,v_array是數(shù)組名,用來(lái)存放航班類(lèi)對(duì)象,m_sum表示數(shù)組v_array中航班類(lèi)對(duì)象的個(gè)數(shù);還定義了私有的成員函數(shù)void Read_file()用來(lái)讀取文件,void Save_file()用來(lái)保存數(shù)據(jù)到文件,以及公有的數(shù)據(jù)成員函數(shù)void Manage()用來(lái)管理航班信息,void Scan()用來(lái)瀏覽航班信息,int Search(int invoke = 0)完成查詢功能,void BookRefund()用來(lái)訂票和退
23、票。</p><p> 兩個(gè)類(lèi)之間是組合的關(guān)系,其中Flight類(lèi)是Traffic_system類(lèi)的子類(lèi)。</p><p> 程序結(jié)構(gòu)說(shuō)明,即程序各個(gè)部分之間如何協(xié)調(diào)來(lái)完成任務(wù)</p><p><b> 程序的結(jié)構(gòu)圖如下:</b></p><p> 如上圖,程序中各功能模塊所需的數(shù)據(jù)都直接取自文件,這樣保證了各模
24、塊的獨(dú)立性和數(shù)據(jù)的安全性。并且只有相應(yīng)的模塊進(jìn)行寫(xiě)的操作,并且數(shù)據(jù)的寫(xiě)入不必依賴其他模塊,這樣使用戶可以僅使用其中某一項(xiàng)功能,而不必進(jìn)行多余的操作。</p><p> 全局變量,重要形式參數(shù)、局部變量等等,它們的命名及用途解釋</p><p> 整個(gè)程序中未使用全局變量。</p><p><b> 重要形參</b></p>
25、<p> A) 提取運(yùn)算符重載函數(shù)istream& operator>>(istream& in, Flight& cp)中使用了形參in和cp,形參in為引用“ istream&”,與該函數(shù)的返回值相同,故可以將該函數(shù)的返回值傳給該形參,實(shí)現(xiàn)“>>”操作符的連續(xù)使用。形參cp為引用“Flight&”,實(shí)現(xiàn)了對(duì)Flight類(lèi)對(duì)象的輸入重載。</p>
26、<p> B) 插入運(yùn)算符重載函數(shù)ostream& operator<<(ostream& out, Flight& cp)中使用了形參out和cp,其作用與上面類(lèi)似。</p><p> C) 函數(shù)bool Flight::If_match(char (*p)[18], char ta)中使用了形參p 和ta,形參p為指向字符數(shù)組的指針,它用來(lái)指向一個(gè)大小
27、為18的字符數(shù)組;形參ta為字符型,其作用是使該函數(shù)區(qū)分航班號(hào)和站點(diǎn)名兩種比較。</p><p> D) 函數(shù)int Traffic_system::Search(int invoke = 0)中使用了形參invoke,該形參為int型并設(shè)置默認(rèn)參數(shù)0,其作用為區(qū)分調(diào)用者,以便輸出相應(yīng)的提示信息。</p><p><b> 算法描述</b></p>
28、<p> 解題算法的設(shè)計(jì)思路介紹</p><p> 首先根據(jù)問(wèn)題描述抽象出一個(gè)航班類(lèi),封裝了航班的數(shù)據(jù)信息和方法。數(shù)據(jù)里主要有航班的航班號(hào)、起飛時(shí)間、站點(diǎn)等信息,方法主要是對(duì)該類(lèi)中數(shù)據(jù)的值的輸入、輸出對(duì)本班次機(jī)票的管理,對(duì)時(shí)間、站名等的核對(duì),另外為了方便對(duì)文件的輸出和讀取,還以友元的形式重載了提取和插入運(yùn)算符。</p><p> 由于有航班有多組,為了方便管理各個(gè)對(duì)象,所
29、以有定義了一個(gè)Traffic_system類(lèi),將Flight類(lèi)的對(duì)象作為T(mén)raffic_system類(lèi)的數(shù)據(jù)成員。Traffic_system類(lèi)中還定義了兩個(gè)私有的成員函數(shù)完成對(duì)文件的讀寫(xiě)。共有的成員函數(shù)主要是Manage(),void Scan(), Search(int invoke = 0)和BookRefund(),用來(lái)完成系統(tǒng)的幾大功能。</p><p><b> 畫(huà)出程序流程圖</b
30、></p><p> 文件“航空售票管理系統(tǒng)v-1.0.cpp”中</p><p> 主函數(shù)流程圖——main()</p><p> 文件“class/Traffic_system.cpp”中</p><p> 類(lèi)中Traffic_system中</p><p> 瀏覽函數(shù)——void Sc
31、an()</p><p> 查詢函數(shù)——Search(int invoke = 0)</p><p> 訂票退票函數(shù)BookRefund()</p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 此課程設(shè)計(jì)完成了對(duì)航線查詢、訂票、退票等功能的設(shè)計(jì)操作,并且為了插入和刪除方便,運(yùn)用動(dòng)態(tài)數(shù)組做存儲(chǔ)結(jié)構(gòu)。此課程
32、設(shè)計(jì)還包含了清屏功能以及退出功能。對(duì)程序在運(yùn)行時(shí)輸入錯(cuò)誤操作的修改,提供了一定方便條件基本上能安全的運(yùn)行,具備的功能符合題目的要求。用了文件的操作,是此程序的最大優(yōu)點(diǎn)。程序?qū)懙倪€算簡(jiǎn)練,結(jié)構(gòu)清晰,各個(gè)模塊的分工和功能明確。</p><p> 經(jīng)過(guò)兩周的課程設(shè)計(jì),我認(rèn)識(shí)到把課堂上老師講的知識(shí)運(yùn)用到實(shí)際操作中的重要性。我這次課程設(shè)計(jì)的題目是航空訂票系統(tǒng),在開(kāi)始階段,根本無(wú)從下手,后來(lái)通過(guò)查閱一些相關(guān)資料和老師的耐心
33、講解,最終成功完成整個(gè)程序的設(shè)計(jì)。通過(guò)這次課設(shè)我對(duì)C++語(yǔ)言中的類(lèi)的定義、運(yùn)算符重載等知識(shí)有了進(jìn)一步的理解,對(duì)流程圖的畫(huà)法更加熟練,對(duì)程序的開(kāi)發(fā)思路有了一定的理解,我想這在以后的學(xué)習(xí)和工作中都會(huì)有幫助的,更使我意識(shí)到了學(xué)習(xí)C++語(yǔ)言的重要性。</p><p> 程序中運(yùn)用了多文件結(jié)構(gòu),雖然程序不是太大,但多文件結(jié)構(gòu)的使用是我模仿正規(guī)軟件的結(jié)構(gòu)來(lái)寫(xiě)的,我想這對(duì)我以后的提高有幫助。</p><p
34、> 另外,對(duì)程序的不斷調(diào)試,是我的查錯(cuò)能力有了很大的提高。</p><p><b> 附錄</b></p><p><b> 【程序清單】</b></p><p> 文件——航空售票管理系統(tǒng)v-1.0.cpp</p><p> #include <fstream><
35、/p><p> #include <iostream></p><p> using namespace std;</p><p> #include "class/Traffic_system.h"</p><p> int main()</p><p><b> {&
36、lt;/b></p><p> Traffic_system civil_aviation;</p><p> //若文件不存在,則新建文件</p><p> ofstream newfile( "flight information.txt", ios::app );</p><p> if (!newfi
37、le)</p><p><b> {</b></p><p> cerr << "文件\"flight information.txt\"無(wú)法打開(kāi)!\n";</p><p><b> exit(2);</b></p><p><b>
38、; }</b></p><p> newfile.close();</p><p><b> int tab;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> c
39、out << "\n>>>>>>>>>>>>>>>>>>>>>>>>>>歡迎進(jìn)入航空售票管理系統(tǒng)<<<<<<<<<<<<<<<<<<<<<
40、;<<<<<<<<<"</p><p> << "****** 主菜單: ***********"</p><p> << "****** 1——更新航班信息
41、(需管理員身份驗(yàn)證) 2——瀏覽航班信息 ***********"</p><p> << "****** 3——查詢航班信息 4——訂票 和 退票 ***********"</p><p> << "****** 5——清 屏
42、 0——退 出 系 統(tǒng) ***********"</p><p> << "********************************************************************************"</p><p> << "你需要做什么?(選擇0~4)
43、" << endl;</p><p> cin >> tab;</p><p> while(!(tab == 1 || tab == 2 || tab == 3 || tab == 4 || tab == 5 || tab == 0))</p><p><b> {</b></p><
44、;p> cout << "請(qǐng)輸入正確選擇(0~4):";</p><p> cin >> tab;</p><p><b> }</b></p><p> switch(tab)</p><p><b> {</b></p>
45、<p><b> case 1:</b></p><p><b> {</b></p><p> civil_aviation.Manage();</p><p><b> break;</b></p><p> } //航線管理<
46、/p><p><b> case 2:</b></p><p><b> {</b></p><p> civil_aviation.Scan();</p><p><b> break;</b></p><p> } //訂票
47、辦理</p><p><b> case 3:</b></p><p><b> {</b></p><p> civil_aviation.Search();</p><p><b> break;</b></p><p> }
48、 //退票辦理</p><p><b> case 4:</b></p><p><b> {</b></p><p> civil_aviation.BookRefund();</p><p><b> break;</b></p><p&g
49、t;<b> }</b></p><p> case 5: system("cls"); break;</p><p> case 0:return 0; //退出系統(tǒng)</p><p><b> }</b></p><p><b> }</b>
50、</p><p><b> }</b></p><p> 文件——class/Traffic_system.h</p><p> #include <vector></p><p> using namespace std;</p><p> #include "f
51、light.h"</p><p> //用于對(duì)文件的操作</p><p> class Traffic_system</p><p><b> {</b></p><p><b> public:</b></p><p> Traffic_system()
52、</p><p><b> {</b></p><p> m_sum = 0;</p><p><b> }</b></p><p> void Manage();//管理航班信息</p><p> void Scan();//瀏覽</p><p
53、> int Search(int invoke = 0);//查詢功能</p><p> void BookRefund();//訂票和退票</p><p><b> private:</b></p><p> void Read_file();//讀取文件</p><p> void Save_file
54、();//保存文件</p><p><b> private:</b></p><p> int m_sum;//記錄航班數(shù)</p><p> vector <Flight> v_array;//航班類(lèi)數(shù)組</p><p><b> };</b></p><p
55、> 文件——class/Traffic_system.cpp</p><p> #include <fstream></p><p> #include <iostream></p><p> using namespace std;</p><p> #include "Traffic_sy
56、stem.h"</p><p><b> //讀取文件</b></p><p> void Traffic_system::Read_file()</p><p><b> {</b></p><p> ifstream file( "flight information
57、.txt");</p><p> if (!file)</p><p><b> {</b></p><p> cerr << "文件\"flight information.txt\"無(wú)法打開(kāi)!\n";</p><p><b> exit(
58、1);</b></p><p><b> }</b></p><p> m_sum = 0;</p><p> while (!file.eof())</p><p><b> {</b></p><p> Flight fly;</p>
59、<p> v_array.push_back(fly);//</p><p> file >> v_array[m_sum++];</p><p><b> }</b></p><p> m_sum--;//</p><p> file.close();</p><p&
60、gt;<b> }</b></p><p><b> //保存文件</b></p><p> void Traffic_system::Save_file()</p><p><b> {</b></p><p> ofstream file( "fligh
61、t information.txt" , ios::trunc);</p><p> if (!file)</p><p><b> {</b></p><p> cerr << "文件\"flight information.txt\"無(wú)法打開(kāi)!\n";</p>
62、<p><b> exit(2);</b></p><p><b> }</b></p><p> int i = -1;</p><p> while (++i < m_sum)</p><p><b> {</b></p><
63、p> if (!v_array[i].If_deleted())</p><p><b> {</b></p><p> file << v_array[i];</p><p><b> }</b></p><p><b> }</b></p&
64、gt;<p> file.close();</p><p><b> }</b></p><p><b> //管理航班信息</b></p><p> void Traffic_system::Manage()</p><p><b> {</b><
65、;/p><p> char password[20];//用于存貯密碼</p><p> int times = 3;</p><p> cout << "登錄系統(tǒng)需驗(yàn)證密碼!" << endl;</p><p> //驗(yàn)證密碼。三次錯(cuò)誤后,就自動(dòng)退出程序</p><p>
66、;<b> do</b></p><p><b> {</b></p><p><b> times--;</b></p><p> cout << "請(qǐng)輸入密碼:(默認(rèn)000)";</p><p> cin >> pass
67、word;</p><p> if(strcmp(password, "000") == 0)//密碼是“000”</p><p><b> {</b></p><p> times = -1;</p><p><b> break;</b></p><
68、;p><b> }</b></p><p> else if (times > 0)</p><p> cout << " 密碼錯(cuò)誤!\n 剩余" << times << "次機(jī)會(huì)!" << endl;</p><p> }while(t
69、imes > 0);</p><p> if(times != -1)</p><p><b> {</b></p><p> cout << "對(duì)不起!\n 您不是管理員! 不能使用此系統(tǒng)!" << endl;</p><p><b> return;
70、</b></p><p><b> }</b></p><p> system("cls");</p><p><b> while (1)</b></p><p><b> {</b></p><p><b
71、> int tab;</b></p><p> cout << "\n******************************歡迎使用航班信息管理系統(tǒng)**************************\n"</p><p> << "—————————————————————————————————————
72、———"</p><p> << "\t**\t >>1——重新創(chuàng)建信息庫(kù)\t\t >>2——插入信息 **\n\t**\t >>3——修改信息\t\t >>4——?jiǎng)h除信息 **\n\t**\t >>5——?jiǎng)h除全部\t\t >>0——退出管理 **\n"</
73、p><p> << "————————————————————————————————————————"</p><p> << "你需要做什么?(選擇0~5)" << endl;</p><p> cin >> tab;</p><p> while
74、(!(tab == 1 || tab == 2 || tab == 3 || tab == 4 || tab == 5 || tab == 0))</p><p><b> {</b></p><p> cout << "請(qǐng)輸入正確選擇(0~5):";</p><p> cin >> tab;&
75、lt;/p><p><b> }</b></p><p> switch(tab)</p><p><b> {</b></p><p><b> case 1:</b></p><p><b> {</b></p>
76、;<p> m_sum = 0;</p><p> Flight fly;</p><p> cout << "請(qǐng)進(jìn)行信息錄入。按“+”結(jié)束!\n";</p><p><b> do</b></p><p> v_array.push_back(fly);//<
77、;/p><p> while (v_array[m_sum++].SetInfo());</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 2:</b></p><p><
78、b> {</b></p><p> Read_file();</p><p> Flight fly;</p><p> cout << "請(qǐng)進(jìn)行信息錄入。按“+”結(jié)束!\n";</p><p><b> do</b></p><p>
79、 v_array.push_back(fly);//</p><p> while (v_array[m_sum++].SetInfo());</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 3:</b
80、></p><p><b> {</b></p><p> char fnum[1][18];</p><p> Read_file();</p><p> cout << "請(qǐng)輸入您要修改信息的航班號(hào):";</p><p> cin >>
81、; fnum[0];</p><p> int i = 0;</p><p> for (; i < m_sum; i++)</p><p><b> {</b></p><p> if (v_array[i].If_match(fnum, '1'))</p><p>
82、;<b> {</b></p><p> cout << "該航班的原信息為:\n"</p><p> << " ———————————————————————————————————————\n"</p><p> << "丨 航 班 號(hào) 丨
83、 起 始 站 丨 終 點(diǎn) 站 丨起飛時(shí)間丨票價(jià)丨余 票丨"</p><p> << " ———————————————————————————————————————\n";</p><p> v_array[i].Display();</p><p> cout << &qu
84、ot;請(qǐng)輸入正確信息!\n";</p><p> v_array[i].SetInfo();</p><p> m_sum++;//保持及總航線數(shù)不變</p><p><b> break;</b></p><p><b> }</b></p><p>&l
85、t;b> }</b></p><p> if (i == m_sum)</p><p><b> {</b></p><p> cout << "抱歉!您要修改的信息不存在!" << endl;</p><p><b> return;&l
86、t;/b></p><p><b> }</b></p><p> m_sum++;//</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 4:</b
87、></p><p><b> {</b></p><p> char fnum[1][18];</p><p> Flight empty;//聲明"空"對(duì)象,用于刪除</p><p> Read_file();</p><p> cout << &
88、quot;請(qǐng)輸入您要?jiǎng)h除航班的航班號(hào):";</p><p> cin >> fnum[0];</p><p> int i = 0;</p><p> for (; i < m_sum; i++)</p><p><b> {</b></p><p> if
89、(v_array[i].If_match(fnum, '1'))</p><p><b> {</b></p><p> cout << "您要?jiǎng)h除的航班為:\n"</p><p> << " ——————————————————————————————————————
90、—\n"</p><p> << "丨 航 班 號(hào) 丨 起 始 站 丨 終 點(diǎn) 站 丨起飛時(shí)間丨票價(jià)丨余 票丨"</p><p> << " ———————————————————————————————————————\n";</p><p> v
91、_array[i].Display();</p><p> v_array[i] = empty;</p><p> m_sum++;//保持及總航線數(shù)不變</p><p><b> break;</b></p><p><b> }</b></p><p><
92、b> }</b></p><p> if (i == m_sum)</p><p><b> {</b></p><p> cout << "您要?jiǎng)h除的信息不存在!" << endl;</p><p><b> return;</b&
93、gt;</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p> case 5:m_sum = 1; break;</p><p> case 0:return
94、;</p><p><b> }</b></p><p> cout << "《確認(rèn)\\Y》 《取消\\N》\n請(qǐng)選擇:";</p><p><b> char yn;</b></p><p><b> do</b></p>
95、<p><b> {</b></p><p> cin >> yn;</p><p> }while(!(yn == 'Y' || yn == 'y' || yn == 'N' || yn == 'n' ));</p><p> if(yn ==
96、'Y' || yn == 'y')</p><p><b> {</b></p><p> m_sum--;//對(duì)應(yīng)m_sum++</p><p> Save_file();</p><p> cout << "操作成功!" << end
97、l;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //瀏覽</b></p><p> void Traffic_system:
98、:Scan()</p><p><b> {</b></p><p><b> char c;</b></p><p> Read_file();</p><p> if (m_sum == 0)</p><p><b> {</b></
99、p><p> cout << "暫無(wú)信息!請(qǐng)等待管理人員更新!";</p><p><b> return;</b></p><p><b> }</b></p><p> cout << "\t航班信息表:\n"</p>
100、;<p> << " ———————————————————————————————————————\n"</p><p> << "丨 航 班 號(hào) 丨 起 始 站 丨 終 點(diǎn) 站 丨起飛時(shí)間丨票價(jià)丨余 票丨"</p><p> << " ————
101、———————————————————————————————————\n";</p><p> for (int i = 0; i < m_sum; i++)</p><p> v_array[i].Display();</p><p> cout << "按任意鍵返回主菜單!";</p><
102、;p><b> cin >> c;</b></p><p><b> }</b></p><p><b> //查詢功能</b></p><p> int Traffic_system::Search(int invoke)</p><p><b
103、> {</b></p><p><b> int tab;</b></p><p> Read_file();</p><p> cout << "*************************************************************************\n
104、*** >>1——按航班號(hào)查詢 >>2——按站點(diǎn)查詢 >>0——返回 ***\n*************************************************************************\n請(qǐng)選擇(0~2):"</p><p><b> << endl;</b>
105、</p><p> cin >> tab;</p><p> while(!(tab == 1 || tab == 2 || tab == 0))</p><p><b> {</b></p><p> cout << "請(qǐng)輸入正確選擇(0~2):";</p>
106、;<p> cin >> tab;</p><p><b> }</b></p><p> char str[2][18], ta;</p><p> if (tab == 0)</p><p> return -1;</p><p> else if (ta
107、b == 1)</p><p><b> {</b></p><p> cout << "請(qǐng)輸入航班號(hào):";</p><p> cin >> str[0];</p><p><b> ta = '1';</b></p>
108、<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout << "請(qǐng)輸入出發(fā)站:";</p><p> cin >> str[0]
109、;</p><p> cout << "請(qǐng)輸入終點(diǎn)站:";</p><p> cin >> str[1];</p><p><b> ta = '2';</b></p><p><b> }</b></p><p
110、> for (int i = 0; i < m_sum; i++)</p><p><b> {</b></p><p> if (v_array[i].If_match(str, ta))</p><p><b> {</b></p><p> cout << &
111、quot;您要查詢的結(jié)果如下:\n"</p><p> << " ———————————————————————————————————————\n"</p><p> << "丨 航 班 號(hào) 丨 起 始 站 丨 終 點(diǎn) 站 丨起飛時(shí)間丨票價(jià)丨余 票丨"</p>
112、<p> << " ———————————————————————————————————————"</p><p><b> << endl;</b></p><p> v_array[i].Display();</p><p> if (invoke == 0)</p&g
113、t;<p><b> {</b></p><p> cout << "按任意鍵返回主菜單!";</p><p><b> char c;</b></p><p><b> cin >> c;</b></p><p&g
114、t;<b> }</b></p><p><b> return i;</b></p><p><b> }</b></p><p><b> }</b></p><p> cout << "抱歉!您查詢的航班不存在!&qu
115、ot; << endl;</p><p> return -1;</p><p><b> }</b></p><p><b> //訂票和退票</b></p><p> void Traffic_system::BookRefund()</p><p>
116、<b> {</b></p><p><b> while (1)</b></p><p><b> {</b></p><p><b> cout</b></p><p> << "********************
117、******歡迎進(jìn)入機(jī)票服務(wù)系統(tǒng)**********************\n\n"</p><p> << "——————————————————————————————————\n"</p><p> << "請(qǐng)選擇:\t\t\t\t\t\t\t\t ***\n***\t >>1——訂票\t>>
118、;2——退票\t>>0——返回主菜單 ***\n"</p><p> << "——————————————————————————————————" << endl;</p><p><b> int tab;</b></p><p> cin >>
119、; tab;</p><p> while(!(tab == 1 || tab == 2 || tab == 0))</p><p><b> {</b></p><p> cout << "請(qǐng)輸入正確選擇(0~2):";</p><p> cin >> tab;<
120、;/p><p><b> }</b></p><p><b> char ta;</b></p><p> switch(tab)</p><p><b> {</b></p><p><b> case 1:</b><
121、/p><p><b> {</b></p><p> cout << "請(qǐng)先查找該航班:" << endl;</p><p><b> int i;</b></p><p> i = Search(1);</p><p> i
122、f (i != -1 && v_array[i].Book())</p><p><b> {</b></p><p> cout << "《確認(rèn)訂票\\Y》 《取消訂票\\N》\n請(qǐng)選擇:";</p><p><b> do</b></p><p
123、><b> {</b></p><p> cin >> ta;</p><p> }while(!(ta == 'Y' || ta == 'y' || ta == 'N' || ta == 'n' ));</p><p> if(ta == 'Y&
124、#39; || ta == 'y')</p><p><b> {</b></p><p> Save_file();</p><p> cout << "訂票成功!" << endl;</p><p><b> }</b><
125、/p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> case 2:</b></p><p><b> {</b&g
126、t;</p><p> char str[1][18];</p><p> Read_file();</p><p> cout << "請(qǐng)輸入航班號(hào):";</p><p> cin >> str[0];</p><p> int i = 0;</p>
127、<p> for (; i < m_sum; i++)</p><p><b> {</b></p><p> if (v_array[i].If_takeoff())</p><p><b> continue;</b></p><p> if (v_array[i].
128、If_match(str, '1'))</p><p><b> {</b></p><p> v_array[i].Refund();</p><p> cout << "《確認(rèn)退票\\Y》 《取消退票\\N》\n請(qǐng)選擇:";</p><p><b>
129、 do</b></p><p><b> {</b></p><p> cin >> ta;</p><p> }while(!(ta == 'Y' || ta == 'y' || ta == 'N' || ta == 'n' ));</p>
130、;<p> if(ta == 'Y' || ta == 'y')</p><p><b> {</b></p><p> Save_file();</p><p> cout << "退票成功!" << endl;</p><p
131、><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if (i == m_sum)</p><p>&
132、lt;b> {</b></p><p> cout << "不存在該航班或該航班已起飛!不能退票。" << endl;</p><p><b> break;</b></p><p><b> }</b></p><p><
133、b> }</b></p><p> case 0:return;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 文件——class/ fl
134、ight.h</p><p> class Flight</p><p><b> {</b></p><p><b> public:</b></p><p><b> Flight()</b></p><p><b> {<
135、/b></p><p> m_fnum[0] = '+';</p><p><b> }</b></p><p> bool SetInfo();//設(shè)置航班信息</p><p> friend istream& operator>>(istream& in, F
136、light& cp);//提取運(yùn)算符重載</p><p> friend ostream& operator<<(ostream& out, Flight& cp);//插入運(yùn)算符重載</p><p> void Display();//輸出航班信息</p><p> bool Book();//訂票</p&g
137、t;<p> void Refund();//退票</p><p> bool If_takeoff();//判斷是否起飛</p><p> bool If_deleted();//判斷是否刪除</p><p> bool If_match(char (*p)[18], char ta);//判斷航班號(hào)或站點(diǎn)名是否相同</p>&
138、lt;p><b> private:</b></p><p> char m_fnum[10];//航班號(hào)</p><p> int m_ftime[2];//起飛時(shí)間</p><p> char m_fstar[18];//起始站</p><p> char m_fdestination[18];//終
139、點(diǎn)站</p><p> int m_fprice;//票價(jià)</p><p> int m_fseat;//票數(shù)</p><p><b> };</b></p><p> 文件——class/ flight.cpp</p><p> #include <iostream><
140、;/p><p> #include <string></p><p> #include <iomanip></p><p> #include <ctime>//time.h in C</p><p> using namespace std;</p><p> #inclu
141、de <stdio.h></p><p> #include "flight.h"</p><p><b> //<<運(yùn)算符重載</b></p><p> istream& operator>>(istream& in, Flight& cp)</p&g
142、t;<p><b> {</b></p><p> in >> cp.m_fnum >> cp.m_fstar >> cp.m_fdestination >> cp.m_ftime[0] >> cp.m_ftime[1] >> cp.m_fprice >> cp.m_fseat;</p
143、><p> return in;</p><p><b> }</b></p><p> ostream& operator<<(ostream& out, Flight& cp)</p><p><b> {</b></p><p>
144、 out << cp.m_fnum << " " << cp.m_fstar << " " << cp.m_fdestination << " " << cp.m_ftime[0] << " " << cp.m_ftime[1] << &
145、quot; " << cp.m_fprice << " " << cp.m_fseat << "\n";</p><p> return out;</p><p><b> }</b></p><p><b> //獲取系統(tǒng)時(shí)間&l
146、t;/b></p><p> int get_systemtime()</p><p><b> {</b></p><p> time_t now;</p><p> struct tm *fmt;</p><p> time(&now);</p><
147、p> fmt = localtime(&now);</p><p> return (fmt->tm_hour * 60 + fmt->tm_min);</p><p><b> }</b></p><p><b> //判斷是否起飛</b></p><p> b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空售票系統(tǒng)+c++課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)航空售票系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)航空售票管理系統(tǒng)
- c課程設(shè)計(jì)鐵路售票系統(tǒng)
- 軟件工程課程設(shè)計(jì)《航空售票系統(tǒng)》
- c語(yǔ)言航班售票系統(tǒng)課程設(shè)計(jì)報(bào)告----航班售票系統(tǒng)
- 民航實(shí)踐應(yīng)用課程設(shè)計(jì)--航空售票系統(tǒng)
- 航空售票信息管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
- 民航售票管理系統(tǒng)課程設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)--航空售票管理信息系統(tǒng)
- 課程設(shè)計(jì)—火車(chē)售票系統(tǒng)課程設(shè)計(jì)
- 火車(chē)售票系統(tǒng)課程設(shè)計(jì)
- 民航售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο笳n程設(shè)計(jì)--長(zhǎng)途客運(yùn)售票管理系統(tǒng)
- 火車(chē)售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 民航售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 航空訂票管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---- 火車(chē)售票系統(tǒng)
- 火車(chē)售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 車(chē)站售票管理系統(tǒng)—軟件工程課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論