




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、青島理工大學(xué)C+面向?qū)ο笳n程設(shè)計(jì)報(bào)告院(系):計(jì)算機(jī)工程學(xué)院專(zhuān)業(yè):軟件工程學(xué)生姓名:班級(jí) 軟件131班 學(xué)號(hào):題目:飛機(jī)訂票管理系統(tǒng)設(shè)計(jì). 起迄日期:2015.6.29 2015.7.10設(shè)計(jì)地點(diǎn):計(jì)算機(jī)學(xué)院機(jī)房指導(dǎo)教師: 翟正利 丁凡完成日期:2015 年7月10日C+湎向?qū)ο笳n程設(shè)計(jì)任務(wù)書(shū)題目24“飛機(jī)訂票管理系統(tǒng)設(shè)計(jì)”1、問(wèn)題描述:航空客運(yùn)訂票的業(yè)務(wù)包括:查詢(xún)航班、客票預(yù)訂和辦理退票等。試設(shè)計(jì)一個(gè)航空客運(yùn)訂票系統(tǒng),已使上述業(yè)務(wù)可以借助計(jì)算機(jī)完成。2功能要求:( 1) 每條航線(xiàn)所涉及的信息有:終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、星期幾飛行飛行周日(星期幾) 、乘員定額、余票量、已訂票的客戶(hù)名單(包括
2、姓名、訂票量、艙位等級(jí))以及等候補(bǔ)替補(bǔ)的客戶(hù)名單(包括姓名、所需票量);( 2)作為示意系統(tǒng),全部數(shù)據(jù)可以只放在內(nèi)存中;( 3)系統(tǒng)能實(shí)現(xiàn)的操作和功能如下:錄入: 可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定);查詢(xún)航線(xiàn):根據(jù)旅客提出的終點(diǎn)站名輸入下列信息:航班號(hào)、飛機(jī)號(hào)、星期幾起飛,最近航班的日期和余票量。承辦訂票業(yè)務(wù):根據(jù)客戶(hù)提出的要求(航班號(hào)、訂票數(shù)額)查詢(xún)?cè)摵桨嗥鳖~情況,若尚有余票,則為客戶(hù)辦理訂票手續(xù),輸出座位號(hào);若已滿(mǎn)員或者余票數(shù)少于訂票額,則需重新尋味客戶(hù)要求,若需要,可登記排隊(duì)候補(bǔ);承辦退票業(yè)務(wù):根據(jù)客戶(hù)提供的情況(日期、航班),為客戶(hù)辦理退票手續(xù),然
3、后查詢(xún)?cè)摵桨嗍欠裼腥伺抨?duì)等候補(bǔ),首先詢(xún)問(wèn)排在第一的客戶(hù),若所有退票額能滿(mǎn)足他的要求,則為他辦理訂票手續(xù)否則依次詢(xún)問(wèn)其他排隊(duì)候補(bǔ)的客戶(hù)。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件。(選作) 為客戶(hù)訂票要求不能滿(mǎn)足時(shí),系統(tǒng)可向客戶(hù)提供到達(dá)同一目的地的其他航線(xiàn)情況。3、問(wèn)題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:( 1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);( 2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;( 3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類(lèi)層次;( 4)完成類(lèi)層次中各個(gè)類(lèi)的描述;( 5)完成類(lèi)中各個(gè)成員函數(shù)的定義;( 6)完成系統(tǒng)的應(yīng)用模塊;( 7)功能調(diào)試
4、;( 8)完成系統(tǒng)總結(jié)報(bào)告。一、需求分析 2二、內(nèi)容設(shè)計(jì) 22.1、 、根據(jù)所選題目給出模塊圖 22.2、 畫(huà)出主要程序的流程圖: 32.3、 編寫(xiě)程序關(guān)鍵代碼: 8三、調(diào)試分析 13四、用戶(hù)手冊(cè) 14五、設(shè)計(jì)總結(jié) 20六、參考文獻(xiàn) 錯(cuò)誤!未定義書(shū)簽。七、 附錄 錯(cuò)誤!未定義書(shū)簽。、需求分析1.選做此課題或項(xiàng)的目的1 .通過(guò)實(shí)驗(yàn)實(shí)現(xiàn)對(duì)學(xué)生信息系統(tǒng)的管理操作;2 .進(jìn)一步掌握和利用 C+進(jìn)行程設(shè)計(jì)的能力;3 .進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;4 .初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法5 .學(xué)會(huì)利用流程圖或 N-S圖表示算法;6 .掌握書(shū)寫(xiě)程設(shè)計(jì)開(kāi)發(fā)文檔的能力2.程序所實(shí)現(xiàn)的功能1
5、.輸入航班信息并保存到磁盤(pán);2 .瀏覽航班信息;3 .修改航班信息并保存到磁盤(pán)4 .查找航班5 .訂票6 .退票、內(nèi)容設(shè)計(jì)1 .根據(jù)所選題目給出模塊圖如圖1.1所示圖1.1模塊圖2 .畫(huà)出主程序及其主要模塊的流程圖(1) .如圖2.1所示為查詢(xún)函數(shù)的流程圖:圖2.1查詢(xún)函數(shù)的流程圖(2) .圖2.2所示為訂票函數(shù)流程圖4圖2.2訂票函數(shù)流程圖(3).圖2.3所示為退票函數(shù)流程圖5圖2.3退票函數(shù)流程圖(4).如圖2.4所示為查詢(xún)?nèi)啃畔⒑瘮?shù)6圖2.4查詢(xún)?nèi)啃畔⒑瘮?shù)(5.)如圖2.5所示為主程序流程圖8開(kāi)始錄入航班信息結(jié)束圖2.5查詢(xún)?nèi)啃畔⒑瘮?shù)14(3) 寫(xiě)程序關(guān)鍵代碼(1) .錄入航班信息
6、: void chushi()(int i;ofstream outfile("airline.dat");ofstream file("customer.dat");for (i=0;i<3;i+)(outfile<<fli.fligh <<""<<fli.num<<""<<fli.place<<" "<<fli.data<<""<<fli.dticket<
7、;<" "<<fli.riqi<<""<<fli.yticket<<endl;file<<<<" "<<cui.num<<" "<<cui.seat<<" "<<cnum<<endl; outfile.close();file.close();cout<<"初始化已完畢!"<<endl&l
8、t;<endl;caidan1(); (2) .查詢(xún)航班信息:void chaxun1() (char place10;int temp,i,a;cout<<"輸入終點(diǎn)站名:”;cin>>place;for(i=0;i<100;i+)if(strcmp(fli.place,place)=0)temp=i;a=0;cout<<"航班信息"<<endl<<"航班號(hào):"<<fltemp.fligh<<" 飛機(jī)號(hào): "<<fl
9、temp.num<<"起飛日期:"<<fltemp.data<<"最近航班日期 "<<fltemp.riqi<<" 余票量 "<<fltemp.yticket<<endl;if(a!=0)cout<<"查詢(xún)失敗! "<<endl;cout<<"返回主菜單?1.是 2.否"cin>>temp;if(temp=1) caidan2();.訂票:void dingpiao
10、()訂票char name10;int num,i,t,j,k,temp;int x;cout<<"請(qǐng)輸入你的姓名和想訂的航班號(hào):"<<endl<<endl;cout<<"姓名:"cin>>name;cout<<endl;cout<<"航班號(hào):"; cin>>num;for(i=0;i<300;i+)if(strcmp(name,)=0) (cout<<"您已經(jīng)定過(guò)航班,要返回主菜單嗎? (1.返
11、回/2.退出)"cin>>t;switch(t) case 1:caidan1();break;default :break; for(i=0;i<300;i+) if (name!=) for(j=0;j<10;j+) if(flj.fligh=num)temp=j;if(fltemp.yticket<=100)cout<<"此航班還有余票,要訂票嗎?(1.是/2.否)";cin>>x;switch(x)case 1:for (k=0;k<3;k+) if (flk.fligh=num)
12、 flk.dticket=flk.dticket+1;flk.yticket=flk.yticket-1;cnum=cnum+1;strcpy(,name);cucnum.num=num;cucnum.seat=flk.dticket;ofstream outfile1("airline.dat");for(j=0;j<3;j+)outfile1<<flj.fligh<<" "<<flj.num<<""<<flj.place<<&quo
13、t;"<<flj.data<<""<<flj.dticket<<" "<<flj.riqi<<" "<<flj.yticket<<endl;ofstream outfile2("customer.dat",ios:app);outfile2<<<<" "<<cucnum.num<<" "<<
14、cucnum.seat<<" "<<cnum<<endl;打開(kāi)文件并存儲(chǔ)數(shù)據(jù)cout<<"訂票成功!"<<endl<<endl<<"客戶(hù)信息:"<<<<'t'<<"航班號(hào): "<<cucnum.num<<'t'<<"座位號(hào):"<<cucnum.seat<<endl;
15、outfile1.close();outfile2.close();cout<<" 1.返回主菜單 2.退出:";cin>>temp;if(temp=1)caidan1();else;break;default :caidan1();break;else cout<<"此航班票已經(jīng)售完,請(qǐng)訂其他航班次的票"(4) .退票:void tuipiao() 退票char name10;int i,temp,t,num,a,j;struct tmp;cout<<"請(qǐng)輸入您的姓名和航班號(hào):"<
16、;<endl;cout<<"姓名:"cin>>name;cout<<"航班號(hào):"cin>>num;cout<<endl;for(i=0;i<300;i+)if (strcmp(,name)=0)a=0;cout<<"確定退訂嗎? 1 1.是2.否):";cin>>temp;if(temp=1)ofstream outfile1("airline.dat");ofstream outfile2("
17、customer.dat");for(j=0;j<=i;j+)outfile2<<<<" "<<cuj.num<<" "<<cuj.seat<<" "<<j<<endl;for(t=0;t<3;t+)if(flt.fligh=num) flt.dticket=flt.dticket-1;flt.yticket=flt.yticket+1;for(t=0;t<3;t+)outfile1<<
18、;flt.fligh<<" "<<flt.num<<""<<flt.place<<""<<flt.data<<""<<flt.dticket<<" "<<flt.riqi<<" "<<flt.yticket<<endl;)elsea!=0;)if (a!=0)cout<<"沒(méi)有你的信息,請(qǐng)查證后再操作
19、!cout<<"返回主菜單? 1.是2.否:";cin»temp;if(temp=1)caidan1();)(5) .查詢(xún)?nèi)啃畔ⅲ簐oid chaxunquanbu() (int i,temp;cout<<"乘客信息:"«endl«endl;for(i=0;i<300;i+)( if (cnum=i) temp=i;)for(i=0;i<temp;i+)cout«"姓名:"««'t'<<&quo
20、t; 航班號(hào):"«cui.num«'t'<<" 座位號(hào): "<<cui.seat«'t'«"編號(hào):"«i+1«endl;cout«endl«"航班信息:"«endl«endl;for(i=0;i<3;i+)cout«"航班號(hào):"«fli.fligh«'t'«" 飛機(jī)號(hào):"
21、«fli.num«'t'«" 目的地: "«fli.place«'t'<<" 起飛日期"<<fli.data«'t'«"已訂票數(shù):"«fli.dticket«'t'«" 最近航 班日期"«fli.riqi«'t'«" 剩余票數(shù):"«fli.yticket&
22、#171;endl;cout<<"返回主菜單? 1.是2.否";cin»temp;if(temp=1)caidan1();)(6) .主菜單函數(shù): void caidan1()int i;cout«"*航空訂票系統(tǒng)v2012*”«endl;cout«"*"«endl;cout«"* 1,訂票業(yè)務(wù)2.退票業(yè)務(wù)*"«endl;cout«"* 3.查詢(xún)客戶(hù)信息4.查詢(xún)?nèi)啃畔?"«endl;cout«
23、"* 5.查詢(xún)飛機(jī)票6.退出系統(tǒng)*"«endl;cout«"*"«endl;cout«"*如果是第一次使用本系統(tǒng),請(qǐng)載入初始信息*"«endl;cout<<"*"<<endl;ifstream infile1("airline.dat");ifstream infile2("customer.dat");for(i=0;i<3;i+)infile1>>fli.fligh>>
24、fli.num>>fli.place>>fli.data>>fli.dticket>>fli.riqi>>fli.yticket;for(i=0;i<300;i+) infile2>>>>cui.num>>cui.seat>>cnum;infile1.close();infile2.close();/讀取數(shù)據(jù)cout<<" 請(qǐng)輸入業(yè)務(wù)代碼:list();(7) . 選擇列表函數(shù):void list()int a;cin>>a;cou
25、t<<endl; switch(a) case 1:dingpiao();break;case 2:tuipiao();break;case 3:chaxun();break;case 4:chaxunquanbu();break;case 5:chaxun1();break;case 6:;break;default:cout<<" 輸入錯(cuò)誤,請(qǐng)重新輸入正確的代碼:"list();/輸入代碼(8) . 查詢(xún)客戶(hù)信息函數(shù):void chaxun()char name10;int temp,i,a;cout<<" 請(qǐng)輸入你的姓名:
26、"cin>>name;for(i=0;i<300;i+)if (strcmp(,name)=0)temp=i;a=0;cout<<"* 乘客信息*"<<endl<<" 姓名: "<<<<'t'<<" 航班號(hào):"<<cutemp.num<<'t'<<" 座位號(hào):"<<cutemp.seat<<
27、;endl;if (a!=0) cout<<" 沒(méi)有你的信息,請(qǐng)查證后再操作!"<<endl;cout<<" 返回主菜單?1.是2.否 "cin>>temp;if(temp=1)caidan1();三、調(diào)試分析1.實(shí)際完成的情況說(shuō)明(完成的功能,支持的數(shù)據(jù)類(lèi)型等)。該航空訂票管理系統(tǒng)主要完成的支持int (航班號(hào),座位號(hào)等), char (姓名,終點(diǎn),到達(dá)日期等,主要實(shí)現(xiàn)的功能如下:1. 航班信息與客戶(hù)信息的初始化。2. 客戶(hù)信息的錄入。3. 航班信息的修改(包括余票和已定票的改動(dòng))。4. 訂票功能。5.
28、退票功能。6. 查詢(xún)航線(xiàn)功能。7. 查詢(xún)?nèi)啃畔⒐δ埽òㄓ脩?hù)和航班的信息)。2.程序的性能分析。1 .本程充分利用了各種系統(tǒng)函數(shù),使程序十分簡(jiǎn)潔。2 .程序相比之下較大,運(yùn)行起來(lái)需要一定的時(shí)間。3 .根據(jù)不同的功能建立不同的類(lèi),對(duì)具體功能又分別用相應(yīng)的函數(shù)來(lái)?yè)?jù)體實(shí)現(xiàn)使程序變得有序易懂。4 .上機(jī)過(guò)程中出現(xiàn)的問(wèn)題及其解決方案。上機(jī)過(guò)程遇到的問(wèn)題有:1. 不了解文件的使用,包括讀取文件到程序,將數(shù)據(jù)寫(xiě)入文件等。2. 對(duì)整體程序的模版不夠理解,剛開(kāi)始不能夠完全地構(gòu)思出程序的全部。3. 出現(xiàn)括號(hào)和符號(hào)忘記匹配,或者馬虎造成單詞拼錯(cuò)以及函數(shù)體寫(xiě)錯(cuò)。4. 結(jié)構(gòu)體的格式開(kāi)始不夠熟練。5. 循環(huán)體的嵌套使用
29、不夠熟悉。6. 使用 string 類(lèi)型不是那么熟練。解決方案:1. 查閱相關(guān)書(shū)籍,以及上網(wǎng)查找資料,詢(xún)問(wèn)基礎(chǔ)較好的同學(xué),從而對(duì)文件的操作有了進(jìn)一步的提升。2. 上網(wǎng)查找類(lèi)似的程序,觀(guān)看其大致結(jié)構(gòu),從而提煉出精華,找出大致規(guī)律,運(yùn)用到自己的程序里,使程序不至于那么僵硬。3. 每寫(xiě)完一段程序就檢查該段程序有沒(méi)有錯(cuò)誤,分段縮小范圍修改,采用分步調(diào)試方法,逐步找出問(wèn)題所在。4. 上網(wǎng)以及查閱結(jié)構(gòu)體的詳細(xì)說(shuō)明,學(xué)會(huì)熟練使用結(jié)構(gòu)體。5. 可以先畫(huà)流程圖列出所有循環(huán)體的圖示,根據(jù)圖示來(lái)編寫(xiě)程序中循環(huán)體的嵌套,這樣可以大大減少循環(huán)體的出錯(cuò)。6. 開(kāi)始使用char 類(lèi)型來(lái)定義字符串,后來(lái)改成方便的string
30、 類(lèi)型,之前忘記頭文件#include<string> ,通過(guò)學(xué)習(xí)進(jìn)一步理解 string 類(lèi)型。4.程序中可以改進(jìn)的地方說(shuō)明1 .退票管理中可增加功能,區(qū)分退票在飛機(jī)起飛前和飛機(jī)起飛后,根據(jù)不同的選擇來(lái)退還不同金額的退款。2 .訂票函數(shù)里可適當(dāng)提升訂票的最大人數(shù),以免發(fā)生系統(tǒng)崩潰的現(xiàn)象。3 .查詢(xún)函數(shù)里可以增加查詢(xún)合適航班的方式,以便于更好程度地適應(yīng)用戶(hù)多方面的不同訂票需求。5 .程序中可以擴(kuò)充的功能及設(shè)計(jì)實(shí)現(xiàn)構(gòu)想。1 .可以增加用戶(hù)登錄功能, 讓用戶(hù)可以設(shè)置自己的帳號(hào)密碼,以便于用戶(hù)更方便的使用本飛機(jī)訂票系統(tǒng)辦理航空業(yè)務(wù)。2 .可以將dos系統(tǒng)界面顯示做成 mfc界面顯示,使顯
31、示更加清晰,更便于用戶(hù)理解和使用本 系統(tǒng)。3 .可以在航空飛機(jī)訂票的基礎(chǔ)上發(fā)展其他訂票功能,比如火車(chē)訂票,汽車(chē)訂票,更全面地提 供訂票管理服務(wù)。四、用戶(hù)手冊(cè)1 .運(yùn)行程序,顯示主菜單如圖 3.1所示:圖3.1主菜單15請(qǐng)輸入業(yè)務(wù)代碼:'E:Microsoft Visual StudioMyPojects飛機(jī)系統(tǒng)口曰E19飛機(jī)統(tǒng).exe" 二二 X 二2 .選才i 5.查詢(xún)航班信息,然后選擇返回主菜單如圖3.2圖3.3所示:"E:Microscjft Visual StudicAMyProje亡1:9飛機(jī)系統(tǒng)Debug飛機(jī)系統(tǒng)啟xe"W歡,迎使用航空訂票系統(tǒng)
32、初始化已完畢!否則請(qǐng)輸入2: 129航空訂票系統(tǒng)U 2 工5訂票業(yè)務(wù)3.查詢(xún)客戶(hù)信息5 .查詢(xún)飛機(jī)票6 .退出系名MMM:信息*如果是第一次使用本系統(tǒng),請(qǐng)載入初始信息請(qǐng)輸入業(yè)務(wù)代碼:5點(diǎn)息:菜 終信號(hào)干 人班班回 電瓦.瓦反2.-tuewday取近航班日期215 .2.1®余票量1曲圖3.2查詢(xún)航班信息E:Microsoft Visual 5如由。1/1¥3巳匚榜劉/1苑口巳13119_|&1?1統(tǒng)啟父巳1初始化已完畢!航空訂票系統(tǒng)皿破51 .訂票業(yè)務(wù)3 .疊詢(xún)客戶(hù)信息5 .查詢(xún)飛機(jī)票2.退票業(yè)表4.查詢(xún)?nèi)啃畔?E.退田系泰如果是第一次使用本系統(tǒng),請(qǐng)載人初始信息圖
33、3.3查詢(xún)航班信息3.選才i 1訂票,進(jìn)行訂票,輸入姓名,要訂的航班號(hào),顯示已定過(guò)情況如圖3.4所示,若未定過(guò),則訂票,此時(shí)客戶(hù)信息將新增進(jìn)文件customer中,訂票完成后選擇返回主菜單,如圖3.5圖3.6圖3.7所示:圖3.4訂票失敗圖3.5訂票成功圖3.6返回主菜單圖3.7文件數(shù)據(jù)存儲(chǔ)情況3.退票,輸入你的姓名,返回主菜單,此時(shí)文件改變,如圖 3.8圖3.9所示:口MMMMMMMMM1.訂票業(yè)務(wù)3.查詢(xún)客戶(hù)信息5.查詢(xún)飛機(jī)票2.退票業(yè)多MM M自I I'llMM MMM M"E:Micrcj5oftVisual StudicAMyProjectsWJLDebugVCTL
34、.ex目W訂票系統(tǒng)"2015MMMMM MMMMMMM如果是第一次使用本系統(tǒng),請(qǐng)載入初始信息MM MMM M請(qǐng)輸入業(yè)務(wù)代碼:2道班入腳的姓名和航班號(hào):姓碧拉梅航班號(hào):101硬害退回國(guó)?電是3否)=1遺回王菜單? 1.是2.否:工工、MMxmMxmxxmg 兀"空1丁 票.錄.W 充 u 2 0 1 5* *1.訂票業(yè)務(wù)2 .退票業(yè),* * 3.查曲容戶(hù)信息4.查而全部信息* * 5 .查詢(xún)飛機(jī)票6 .退出系統(tǒng)*如果是第一次使用本系統(tǒng),請(qǐng)載入初始信息圖3.8退票成功customer。記事本口12 3 o o O-TX 1X 1-IEJO 1 2圖3.9文件存儲(chǔ)情況4.查詢(xún),輸
35、入4,查詢(xún)?nèi)鐖D3.10,圖3.11所示:MMMMMMMMMMMM"E:Micrcj5oftVisual StudicAMyProjectsWJLDebugWJL.ex目1.訂票業(yè)務(wù)3.查詢(xún)客戶(hù)信息5.查詢(xún)飛機(jī)票自51=業(yè)全系票詢(xún)出退杳一退 2 4 6如果是第一次使用本系統(tǒng)請(qǐng)載入初始信息*睛輸入業(yè)務(wù)代碼:4名名名化等硒李趙王TI TI I到到.到.亢亢亢號(hào)號(hào)號(hào)101102103座短號(hào):1座位號(hào):1座位號(hào):112 3扁扁扁息 士一叩 I 到.班近班近班近回I4-1二- :到廿才-二. -二. -二.1其2其3其?10日10日l(shuí)elnal-號(hào)01號(hào)10號(hào) 5 .機(jī)1.機(jī)2.機(jī).1否目的地:
36、剩余票數(shù):爐北京目的地:目的地:青島起飛日期monday已訂票數(shù):1起飛日期tuc5day已訂票數(shù):0起飛日期Friday已訂票數(shù):0圖3.10查詢(xún)?nèi)啃畔:Microsoft Visual EtudicAMyProject六飛機(jī)系統(tǒng)Dubug飛機(jī)統(tǒng).exe"班日期201S.H1.H1眄三二叫飛機(jī)號(hào),近航班日期如日 班號(hào):103飛機(jī)號(hào):近就班g期2組5.3,5 回王菜單? 1.是2 .否1冗班信息化舌幫 毒王 !i 名名名 二一 L號(hào)號(hào)號(hào) TI TI TI12 30 0 0111111#:二二tr._w.目鳥(niǎo)回12 3 : t號(hào)號(hào)號(hào)導(dǎo)舟導(dǎo)目的地:剩余票數(shù):992目的地剩余票數(shù):10
37、0目的地:剩余票數(shù):100北京 起飛日期monday已訂票數(shù):1青島 起飛日期已訂票數(shù)r B鄭州起飛日期Niday已訂票數(shù):0航,空訂票系統(tǒng)“20151 .訂票業(yè)務(wù)3,查詢(xún)客戶(hù)信息5 .查詢(xún)飛機(jī)票如臬是第一次使用本系統(tǒng),請(qǐng)載入初始信息圖3.11查詢(xún)?nèi)啃畔?.退出系統(tǒng),如圖3.12所示圖3.12退出系統(tǒng)五、設(shè)計(jì)總結(jié)自從拿到題目到完成整個(gè)編程, 從理論到實(shí)踐,在整整一個(gè)星期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合
38、起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題, 這畢竟獨(dú)立做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。編程看起來(lái)似乎是一件很枯燥、 乏味的事情,但是經(jīng)歷了這次大程序的編輯之后, 發(fā)現(xiàn) 其實(shí)里面還是充滿(mǎn)樂(lè)趣的, 一旦真的鉆研下去什么事情都可以放下, 來(lái)認(rèn)真研究。在試驗(yàn)中 還發(fā)現(xiàn)了許多的不足,對(duì)于以后對(duì) C+的學(xué)習(xí)有很大的幫助。, 2010 西安電子科技大/定義結(jié)構(gòu)六、參考文獻(xiàn)1李蘭,任鳳
39、華.C+面向?qū)ο蟪绦蛟O(shè)計(jì).西安:西安電子科技大學(xué)出版社2 李蘭 , 任鳳華 . C+ 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)及習(xí)題解析. 西安學(xué)出版社, 20103鄭莉,董淵.C+程序設(shè)計(jì)基礎(chǔ)教程.北京:清華大學(xué)出版社,20104鄭莉.C+程序設(shè)計(jì)基礎(chǔ)教程學(xué)生用書(shū).北京:清華大學(xué)出版社,2010七、附錄(要加上注釋。)#include <iostream>#include<string>#include <fstream>using namespace std;struct flight int fligh;int num;char place10;char data10
40、;/起飛日期(星期幾)int dticket;char riqi15;/最近航班日期int yticket;fl10=101,01," 北京 ","monday",1,"2015.01.01",99,102,02," 青島","tuesday",0,"2015.02.10",100,103,03," 鄭州","friday",0,"2015.3.15",100;struct customerchar name10;i
41、nt seat; int num;cu300=" 李華 ",01,101," 趙光 ",01,102," 王磊 ",01,103;體int cnum=3; /定義客戶(hù)編號(hào) void list();void dingpiao();void tuipiao();void chaxun();void chaxunquanbu();/函數(shù)聲明void chaxun1();void caidan1();void caidan2();void chushi();void main()cout<<"* 歡迎使用航空訂票系統(tǒng)*&
42、quot;<<endl<<endl;caidan2();/主函數(shù) void caidan1() int i;cout<<"*航空訂票系統(tǒng)v2015*"<<endl;cout<<"*"<<endl;cout<<"* 1. 訂票業(yè)務(wù)2.退票業(yè)務(wù)*"<<endl;cout<<"* 3. 查詢(xún)客戶(hù)信息4. 查詢(xún)?nèi)啃畔?"<<endl;cout<<"* 5. 查詢(xún)飛機(jī)票6.退出系統(tǒng)*
43、"<<endl;cout<<"*"<<endl;cout<<"*如果是第一次使用本系統(tǒng),請(qǐng)載入初始信息*"<<endl;cout<<"*"<<endl;ifstream infile1("airline.dat");ifstream infile2("customer.dat");for(i=0;i<3;i+) infile1>>fli.fligh>>fli.num>
44、>fli.place>>fli.data>>fli.dticket>>fli.riqi>>fli.yticket;for(i=0;i<300;i+) infile2>>>>cui.num>>cui.seat>>cnum;infile1.close();infile2.close();/讀取數(shù)據(jù)cout<<" 請(qǐng)輸入業(yè)務(wù)代碼:/菜單 1list(); void caidan2()int t;cout<<" 第一次啟動(dòng)本軟件請(qǐng)輸入1
45、 ,否則請(qǐng)輸入2:"cin>>t;if(t=1)chushi();else caidan1();/菜單 2void chushi()int i;ofstream outfile("airline.dat");ofstream file("customer.dat");for (i=0;i<3;i+) outfile<<fli.fligh <<""<<fli.num<<""<<fli.place<<" &qu
46、ot;<<fli.data<<""<<fli.dticket<<" "<<fli.riqi<<""<<fli.yticket<<endl;file<<<<" "<<cui.num<<" "<<cui.seat<<" "<<cnum<<endl; outfile.close
47、();file.close();cout<<"初始化已完畢!"<<endl<<endl;caidan1();存儲(chǔ)數(shù)據(jù)void list() int a;cin>>a;cout<<endl; switch(a)case 1:dingpiao();break;case 2:tuipiao();break;case 3:chaxun();break;case 4:chaxunquanbu();break;case 5:chaxun1();break;case 6:;break;default:cout<<&q
48、uot;輸入錯(cuò)誤,請(qǐng)重新輸入正確的代碼:"list();輸入代碼void chaxun1()char place10;int temp,i,a;cout<<"輸入終點(diǎn)站名:”;cin>>place;for(i=0;i<100;i+)if(strcmp(fli.place,place)=0)temp=i;a=0;cout<<"航班信息"<<endl<<"航班號(hào):"<<fltemp.fligh<<" 飛機(jī)號(hào): "<<f
49、ltemp.num<<"起飛日期:"<<fltemp.data<<"最近航班日期 "<<fltemp.riqi<<" 余票量 "<<fltemp.yticket<<endl;if(a!=0)cout<<"查詢(xún)失敗!"<<endl;cout<<"返回主菜單?1.是 2.否"cin>>temp;if(temp=1) caidan1();void dingpiao()/
50、訂票char name10;int num,i,t,j,k,temp;int x;cout<<"請(qǐng)輸入你的姓名和想訂的航班號(hào):"<<endl<<endl;cout<<"姓名:"cin>>name;cout<<endl;cout<<" 航班號(hào) :"cin>>num;for(i=0;i<300;i+)if(strcmp(name,)=0)cout<<"您已經(jīng)定過(guò)航班,要返回主菜單嗎? ( 1.返回/2
51、.退出)" cin>>t;switch(t)case 1:caidan1();break;default :break;for(i=0;i<300;i+)if (name!=)for(j=0;j<10;j+)if(flj.fligh=num)temp=j;if(fltemp.yticket<=100)cout<<" 此航班還有余票,要訂票嗎?(1.是 /2.否 )"cin>>x;switch(x)case 1:for (k=0;k<3;k+)if (flk.fligh=num)flk.dt
52、icket=flk.dticket+1;flk.yticket=flk.yticket-1;cnum=cnum+1;strcpy(,name);cucnum.num=num; cucnum.seat=flk.dticket;ofstream outfile1("airline.dat");for(j=0;j<3;j+)outfile1<<flj.fligh<<" "<<flj.num<<""<<flj.place<<"&quo
53、t;<<flj.data<<""<<flj.dticket<<" "<<flj.riqi<<" "<<flj.yticket<<endl;ofstream outfile2("customer.dat",ios:app);outfile2<<<<" "<<cucnum.num<<" "<<cucnum
54、.seat<<""<<cnum<<endl;打開(kāi)文件并存儲(chǔ)數(shù)據(jù)cout<<"訂票成功! "<<endl<<endl<<"客戶(hù)信息:"<<<<'t'<<"航班號(hào): "<<cucnum.num<<'t'<<"座位號(hào):"<<cucnum.seat<<endl;outfil
55、e1.close();outfile2.close();cout<<" 1.返回主菜單 2.退出:";cin>>temp;if(temp=1)caidan1();else;break;default :caidan1();break;else cout<<"此航班票已經(jīng)售完,請(qǐng)訂其他航班次的票" 訂票void tuipiao() 退票 char name10;int i,temp,t,num,a,j;struct tmp;cout<<"請(qǐng)輸入您的姓名和航班號(hào):"<<endl;
56、cout<<"姓名:"cin>>name;cout<<"航班號(hào):"cin>>num;cout<<endl;for(i=0;i<300;i+)if (strcmp(,name)=0)a=0;cout<<"確定退訂嗎? 1 1.是2.否):";cin>>temp;if(temp=1)ofstream outfile1("airline.dat"); ofstream outfile2("customer.
57、dat");for(j=0;j<=i;j+)outfile2<<<<" "<<cuj.num<<" "<<cuj.seat<<" "<<j<<endl;for(t=0;t<3;t+)if(flt.fligh=num) flt.dticket=flt.dticket-1;flt.yticket=flt.yticket+1;for(t=0;t<3;t+)outfile1<<flt.fligh<<" "<<flt.num<<""<<flt.place<<""<<flt.data<<""<<flt.dticket
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場(chǎng)調(diào)研合同履約金協(xié)議
- 苗木交付責(zé)任協(xié)議
- 2025年重慶市中考物理模擬試卷(一)(含解析)
- 貨車(chē)歸還條件協(xié)議
- 脈沖滅絕設(shè)備采購(gòu)協(xié)議
- 四數(shù)碼顯示譯碼器一數(shù)碼顯示譯碼器的結(jié)構(gòu)和功能示意課件
- 雙語(yǔ)列車(chē)長(zhǎng)鐵路電報(bào)RailwayTelegraphBili
- 鐵路交通事故案例分析車(chē)輛運(yùn)用與管理課件
- 2025年特種設(shè)備作業(yè)人員快開(kāi)門(mén)式壓力容器操作R1證考試題庫(kù)
- 穎蒙建筑裝飾材銷(xiāo)售合同深度分析
- 湖北省武昌區(qū)七校2023-2024學(xué)年八年級(jí)下學(xué)期期中聯(lián)考英語(yǔ)試卷+
- 醫(yī)學(xué)數(shù)據(jù)標(biāo)注培訓(xùn)課件模板
- 2024-2025北京中考英語(yǔ)真題閱讀CD篇
- 2024城鎮(zhèn)燃?xì)庥铆h(huán)壓式不銹鋼管道工程技術(shù)規(guī)程
- 《養(yǎng)成良好的行為習(xí)慣》主題班會(huì)課件
- 2024屆高三一輪復(fù)習(xí)《庖丁解牛》課件
- 2023年10月自考00226知識(shí)產(chǎn)權(quán)法試題及答案含評(píng)分標(biāo)準(zhǔn)
- 油畫(huà)人體200張東方姑娘的極致美
- 【ch03】灰度變換與空間濾波
- 抗結(jié)核藥物的不良反應(yīng)及注意事項(xiàng)
- GB/T 10095.2-2023圓柱齒輪ISO齒面公差分級(jí)制第2部分:徑向綜合偏差的定義和允許值
評(píng)論
0/150
提交評(píng)論