版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 計算機科學(xué)與技術(shù)系</b></p><p><b> 課程設(shè)計報告</b></p><p> 2008~2009學(xué)年第二期</p><p><b> 一、課程設(shè)計題目</b></p><p> 課程設(shè)計名稱:航班售票系統(tǒng)</p>
2、<p> 設(shè)計內(nèi)容:設(shè)計一個航班售票系統(tǒng)系統(tǒng),能夠?qū)娇展镜氖燮边M(jìn)行管理。航空公司的售票系統(tǒng)主要包括:航線信息、訂票業(yè)務(wù)、退票業(yè)務(wù)。</p><p><b> 任務(wù)和要求</b></p><p> 1.航線信息:每條航線包括航班號,飛機號,目的地,訂票數(shù),余票數(shù),共5項。</p><p> 現(xiàn)有3條航線:目的地北京,上海
3、,廣州。飛機可乘100人(初始定票數(shù)為0,余票數(shù)為100)。將這些信息存入文件airline.dat中。</p><p><b> 2.訂票業(yè)務(wù):</b></p><p> (1).客戶信息包括姓名,航班號,座位號(初始為0),假設(shè)已有3個客戶信息存入文件customer.dat。</p><p> (2).有新客戶訂票時,先輸入姓名和航
4、班號,查詢情況,如果還有余票,就為這個客戶辦理訂票手續(xù),分給客戶一個座位號,然后寫入文件costomer.dat,并修改文件,若無余票,則輸出客戶已滿</p><p><b> 3.退票業(yè)務(wù):</b></p><p> 根據(jù)客戶提出的航班號,辦理退票,從airline.dat文件中刪除 這個客戶的信息,并修改airline.dat中相應(yīng)的航線的訂票數(shù)和余票數(shù)輸出全
5、部航線的信息和全部客戶信息,退出系統(tǒng)。</p><p><b> 二、問題的分析</b></p><p> 首先這是一個管理系統(tǒng),有兩個大類乘客和飛機,所以要定義2個類,又因為需要進(jìn)行文件的操作,那么可以再定義2個類,乘客信息類,飛機信息類用于儲存多個信息。界面操作當(dāng)然需要用switch語句實現(xiàn),case時調(diào)用到函數(shù)。</p><p>&l
6、t;b> 三、算法的設(shè)計</b></p><p> 我設(shè)計的這個航空管理系統(tǒng)運用到了條件判斷,switch語句,循環(huán)語句,類與對象,對象數(shù)組,對象指針,類與類的嵌套,文件的寫入寫出等知識點。</p><p> 整體的構(gòu)思:設(shè)計了四個類飛機信息庫類,乘客類,乘客信息庫類。</p><p> 飛機類包含了飛機的一些基本屬性,有航班號,飛機號,目
7、的地,余票數(shù),已定票數(shù)等信息</p><p> class Flight //飛機類</p><p><b> {</b></p><p><b> private:</b></p><p> int note; //刪除標(biāo)記 1:已刪,0:未刪</p><p>
8、 int flightnum; //航班號</p><p> int planenum; //飛機號 </p><p> char destination[20]; //目的地</p><p> int bookednum; //已定票數(shù)</p><p> int refundnum; //余票&l
9、t;/p><p><b> public:</b></p><p> Flight():bookednum(0),refundnum(100){}</p><p> char *getdes()</p><p><b> {</b></p><p> return de
10、stination;</p><p><b> }</b></p><p> int getnote()</p><p><b> {</b></p><p> return note;</p><p><b> }</b></p>
11、<p> int getflightnum() </p><p><b> {</b></p><p> return flightnum;</p><p><b> }</b></p><p> int getplanenum()</p><p>&
12、lt;b> {</b></p><p> return planenum;</p><p><b> }</b></p><p> void setrefund() //訂票后對余票和已定票數(shù)的操作</p><p><b> {</b></p>
13、<p> bookednum++;</p><p> refundnum--;</p><p><b> }</b></p><p> void delrefund() //退票后對余票和已定票數(shù)的操作</p><p><b> {</b></p>
14、<p> bookednum--;</p><p> refundnum++;</p><p><b> }</b></p><p> void setname(char de[]) </p><p><b> {</b></p><p> st
15、rcpy(destination,de);</p><p><b> }</b></p><p> void delplane() //刪除飛機的操作</p><p><b> {</b></p><p><b> note=1;</b></p>&l
16、t;p><b> }</b></p><p> void addplane(int n,int m, char *de) //增加飛機</p><p><b> {</b></p><p><b> note=0;</b></p><p> flightnum
17、=m;</p><p> planenum=n;</p><p> strcpy(destination,de);</p><p><b> }</b></p><p> void list()</p><p><b> {</b></p><p
18、> cout<<"飛機號"<<" "<<" 航班號"<<" "<< "目的地" <<" "<<"已定票數(shù)"<<"
19、 "<<"剩余票數(shù)"<<endl;</p><p> cout<<planenum<<" "<<setw(5)<<flightnum<<" "<<setw(10)<<destination&
20、lt;<" "<<setw(5)<<bookednum<<" "<<setw(5)<<refundnum<<endl;</p><p><b> }</b></p><p><b> };
21、</b></p><p> 飛機信息庫類內(nèi)嵌了一個飛機類的對象數(shù)組作為飛機信息庫類的私有成員,每一個飛機的信息都是一個對象,都儲存在了飛機類的對象數(shù)組中,通過這個數(shù)組進(jìn)行對單個或多個飛機對象屬性的一些操作,飛機信息庫類中還包括界面操作選擇的程序,其中還有信息的寫入文件,讀取文件中的數(shù)據(jù)的功能</p><p> class FDatabase //飛機信息庫類 <
22、;/p><p><b> {</b></p><p><b> private:</b></p><p> int top; //記錄數(shù)組下標(biāo)</p><p> Flight Fl[Maxp]; //飛機類的對象數(shù)組</p><p><b>
23、public:</b></p><p> FDatabase()</p><p><b> {</b></p><p><b> Flight f;</b></p><p><b> top=-1;</b></p><p> fst
24、ream file("airline.dat",ios::in); //文件打開</p><p><b> while(1)</b></p><p><b> {</b></p><p> file.read((char *)&f,sizeof(f));</p><
25、p><b> if(!file)</b></p><p><b> break;</b></p><p><b> top++;</b></p><p> Fl[top]=f;</p><p><b> }</b></p>&
26、lt;p> file.close();</p><p><b> }</b></p><p> void clear() //清楚所有航班的操作 </p><p><b> {</b></p><p><b> top=-1;</b><
27、/p><p> cout<<"航班信息已刪除!"<<endl;</p><p><b> }</b></p><p> int addplane(int n,int m,char *de) //增加飛機</p><p><b> {</b><
28、/p><p> Flight *fl=query(n);</p><p> if(fl==NULL)</p><p><b> {</b></p><p><b> top++;</b></p><p> Fl[top].addplane(n,m,de);</p&
29、gt;<p><b> return 1;</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> Flight *query(in
30、t pflightnum) //對象指針 用于查找等操作</p><p><b> {</b></p><p> for(int i=0;i<=top;i++)</p><p> if(Fl[i].getflightnum()==pflightnum && Fl[i].getnote()==0)</p>
31、;<p> return &Fl[i];</p><p> return NULL;</p><p><b> }</b></p><p> Flight *query1(int pplanenum)</p><p><b> {</b></p><
32、;p> for(int i=0;i<=top;i++)</p><p> if(Fl[i].getplanenum()==pplanenum && Fl[i].getnote()==0)</p><p> return &Fl[i];</p><p> return NULL;</p><p>&l
33、t;b> }</b></p><p> void list()</p><p><b> {</b></p><p> for(int i=0;i<=top;i++)</p><p> if(Fl[i].getnote()==0)</p><p> Fl[i].
34、list();</p><p><b> }</b></p><p> void planedata();</p><p> ~FDatabase()</p><p><b> {</b></p><p> fstream file("airline.da
35、t",ios::out);</p><p> for(int i=0;i<=top;i++)</p><p> if(Fl[i].getnote()==0)</p><p> file.write((char *)& Fl[i],sizeof(Fl[i]));</p><p> file.close();<
36、;/p><p><b> }</b></p><p><b> };</b></p><p> 乘客類包含了乘客的一些基本屬性,有姓名,航班號,座位號,客戶編號等屬性</p><p> class Passenger //乘客類</p><p><b> {
37、</b></p><p><b> private:</b></p><p> int note; //刪除標(biāo)記 1:已刪,0:未刪</p><p> int flightnum; //航班號</p><p> char name[20]; //乘客姓名</p><p>
38、; int ID; //乘客編號</p><p> int seatnum; //座位號</p><p><b> public:</b></p><p> Passenger():seatnum(0){}</p><p> char *getname() </p><p>
39、<b> {</b></p><p> return name;</p><p><b> }</b></p><p> int getnote() //返回刪除標(biāo)記</p><p><b> {</b></p><p> retur
40、n note;</p><p><b> }</b></p><p> int getID() </p><p><b> {</b></p><p> return ID;</p><p><b> }</b></p>&l
41、t;p> void setname(char na[]) //修改姓名</p><p><b> {</b></p><p> strcpy(name,na);</p><p><b> }</b></p><p> int getseatnum() </p>
42、<p><b> {</b></p><p> return seatnum;</p><p><b> }</b></p><p> void addbook(int n,char *na,int id,int seat) //訂票操作</p><p><b>
43、 {</b></p><p><b> note=0;</b></p><p> flightnum=n;</p><p><b> ID=id;</b></p><p> seatnum=seat;</p><p> strcpy(name,na);
44、</p><p><b> }</b></p><p> void delpassenger() //刪除乘客信息</p><p><b> {</b></p><p><b> note=1;</b></p><p><b&
45、gt; }</b></p><p> void list() // 顯示乘客信息</p><p><b> {</b></p><p> cout<<"客戶姓名"<<" "<<"客戶編號"<<"
46、 "<<"已定航班號"<<" "<<"座位號"<<endl;</p><p> cout<<name<<" "<<setw(5)<<ID<<"
47、 "<<setw(5)<<flightnum<<" "<<setw(5)<<seatnum<<endl;</p><p><b> }</b></p><p><b> };</b></p><
48、;p> 乘客信息庫類與飛機信息庫類實現(xiàn)的功能原理類似,記錄了乘客類的對象數(shù)組。主函數(shù)實現(xiàn)了主操作界面的程序。</p><p> class PDatabase //乘客信息庫類</p><p><b> {</b></p><p><b> private:</b></p><p>
49、; int top; </p><p> Passenger passer[Maxb]; </p><p><b> public:</b></p><p> PDatabase()</p><p><b> {</b></p><p>
50、; Passenger p;</p><p><b> top=-1;</b></p><p> fstream file("customer.dat",ios::in);</p><p><b> while(1)</b></p><p><b> {<
51、;/b></p><p> file.read((char *)&p,sizeof(p));</p><p><b> if(!file)</b></p><p><b> break;</b></p><p><b> top++;</b></p&
52、gt;<p> passer[top]=p;</p><p><b> }</b></p><p> file.close();</p><p><b> }</b></p><p> void settop()</p><p><b>
53、{</b></p><p><b> top--;</b></p><p><b> }</b></p><p> void clear()</p><p><b> {</b></p><p><b> top=-1;&
54、lt;/b></p><p> cout<<"乘客信息刪除成功!"<<endl;</p><p><b> }</b></p><p> int addbook(int n,char *na,int id,int seat)</p><p><b> {
55、</b></p><p> Passenger *s=query(n);</p><p> if(s==NULL)</p><p><b> {</b></p><p><b> top++;</b></p><p> passer[top].addbo
56、ok(n,na,id,seat);</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><
57、;p> Passenger *query(int id)</p><p><b> {</b></p><p> for(int i=0;i<=top;i++)</p><p> if(passer[i].getID()==id && passer[i].getnote()==0)</p>&l
58、t;p> return &passer[i];</p><p> return NULL;</p><p><b> }</b></p><p> Passenger *query1(int seat)</p><p><b> {</b></p><p&
59、gt; for(int i=0;i<=top;i++)</p><p> if(passer[i].getseatnum()!=seat && passer[i].getnote()==0)</p><p> return &passer[i];</p><p><b> else</b></p>
60、;<p> return NULL;</p><p><b> }</b></p><p> void list()</p><p><b> {</b></p><p> for(int i=0;i<=top;i++)</p><p> if
61、(passer[i].getnote()==0)</p><p> passer[i].list();</p><p><b> }</b></p><p> void passengerdata();</p><p> ~PDatabase()</p><p><b> {&
62、lt;/b></p><p> fstream file("customer.dat",ios::out);</p><p> for(int i=0;i<=top;i++)</p><p> if(passer[i].getnote()==0)</p><p> file.write((char *)
63、& passer[i],sizeof(passer[i]));</p><p> file.close();</p><p><b> }</b></p><p><b> };</b></p><p> 主要功能:此航空系統(tǒng)管理可以進(jìn)行新增航班,更改航班,查找航班,顯示航班信息,刪
64、除航班。客戶可以進(jìn)行訂票,退票,客戶資料修改,查找,刪除等操作。</p><p><b> 具體實現(xiàn)過程:</b></p><p> 新增航線的實現(xiàn)過程:通過錄入航線的飛機號,航班號,目的地。系統(tǒng)會存入到飛機的對象數(shù)組里,一個飛機就是一個對象,然后存入飛機的對象數(shù)組中,這主要通過飛機信息類中的addplane()函數(shù)在調(diào)用飛機類中的addplane()函數(shù)實現(xiàn)存入
65、飛機的基本信息,同時這一個飛機的信息作為一個對象保存在飛機類的對象數(shù)組中。如果想要把這個新增的飛機寫入文件的話,通過飛機信息庫類的中析構(gòu)函數(shù)寫入文件,所以每當(dāng)要儲存進(jìn)文件,則需要推出系統(tǒng)后保存,則下次進(jìn)入后你將會看到在飛機信息類中會看到飛機的信息。</p><p> 更改航班操作的實現(xiàn)過程:先要錄入你要更改的航班號,系統(tǒng)會找到那個航班,這樣你可以進(jìn)行目的地修改的操作。通過飛機信息庫類中的query()函數(shù)進(jìn)行查
66、找,利用for循環(huán),逐個查找,當(dāng)找到的飛機航班號與輸入的航班號相同時,進(jìn)行輸出。并通過飛機類的setname()函數(shù)對目的地的字符串利用strcpy()函數(shù)進(jìn)行覆蓋。所以這個飛機對象的目的地就改變了。</p><p> 查找航班的實現(xiàn)過程:輸入航班號,利用飛機信息庫類中的query()函數(shù)查找,最后返回對象,并輸出對象。</p><p> 顯示航班信息的實現(xiàn)過程:利用飛機信息庫類中的l
67、ist()函數(shù)進(jìn)行輸出對象數(shù)組中的對象。</p><p> 刪除航班過程的實現(xiàn):可以刪除單個航班,也可以刪除全部,刪除單個航班先輸入航班號查找出航班,然后通過調(diào)用飛機類的delplane()函數(shù)進(jìn)行信息存在標(biāo)記的改變。刪除全部直接更改飛機對象數(shù)組中的下標(biāo)即可。</p><p> 訂票的實現(xiàn):首先輸入航班號,如果沒有此航班會提示錯誤,直到有此航班后才能進(jìn)行下一步操作,然戶輸入姓名,客戶編
68、號,座位號,客戶編號是客戶自己擁有的一個ID,座位號用戶可以自己預(yù)定。如果作為被預(yù)定后,會顯示錯誤需要重新預(yù)定座位號。調(diào)用乘客信息庫類中的addbook()函數(shù)在調(diào)用乘客類中的addbook()函數(shù)進(jìn)行賦值操作,而且此航班的信息中余票數(shù)會減少一個,已定票數(shù)會增加一個。同時將此乘客的信息存入乘客對象數(shù)組中。</p><p> 退票的實現(xiàn):輸入航班號,用戶編號。系統(tǒng)會查找出此客戶,并會通過乘客信息類的delpass
69、enger()函數(shù)設(shè)置刪除標(biāo)記。已達(dá)到刪除乘客信息的效果,就達(dá)到了退票的效果,而且飛機信息中的余票數(shù)會增加1,訂票數(shù)會減少1。</p><p> 客戶資料修改的實現(xiàn)過程:通過輸入用戶ID后,查找出當(dāng)前客戶,可以進(jìn)行客戶信息的姓名修改,調(diào)用setname()函數(shù)修改姓名。</p><p><b> 四、上機調(diào)試過程:</b></p><p>
70、 問題:在調(diào)試過程時經(jīng)常會遇到一些類與類內(nèi)嵌時有函數(shù)未定義的情況,明明已經(jīng)定義過類了,但編譯時顯示類未定義,對象為定義,不能互相訪問,還有的時候由于定義的標(biāo)示符過多,導(dǎo)致會編寫錯誤標(biāo)示符,還有一些小錯誤,比如符號漏寫等,這些錯誤都是很好看出來。最難的錯誤應(yīng)該是在嵌套過程中的邏輯問題,有的時候會調(diào)用錯誤函數(shù),有的時候會很混亂,整個思路就亂了。</p><p> 修改:在嵌套時要注意有沒有先定義對象到另一個類中,
71、定義函數(shù)時,如果函數(shù)體短的函數(shù)直接定義為內(nèi)聯(lián)函數(shù),這樣不會有忘定義的現(xiàn)象產(chǎn)生。在類與類嵌套時應(yīng)該注意類前向引用聲明。類與類的邏輯問題還是靜下心來梳理一下自己的思路,這是我覺得最好的辦法了。</p><p><b> 五、測試結(jié)果及分析</b></p><p> 1、程序一開始的登錄界面(主界面)</p><p> 2、在主界面選擇3 進(jìn)入
72、客戶管理系統(tǒng)</p><p> 3、在主界面選擇4 進(jìn)入航線管理系統(tǒng)</p><p> 4、在航線管理系統(tǒng)中選擇 5 顯示系統(tǒng)中存儲的所有航線信息</p><p> 5、在主界面中選擇1 訂票 并成功完成了預(yù)訂</p><p><b> 六、設(shè)計后的感想</b></p><p> 經(jīng)過了
73、2個星期的課程設(shè)計,自己獨自一人完成了一個小小的管理系統(tǒng)的程序編寫,可謂是感觸頗多。從一開始構(gòu)思,到后來的實踐,查找資料,找出語法錯誤,最后終于能運行了,但一運行便出現(xiàn)了很多BUG,然后就開始了漫長的測試期,不斷的修改,不斷的找到BUG,測試期的遠(yuǎn)遠(yuǎn)大過編程期,其實測試也是一個非常艱巨的工程。這使我想起了許多游戲公司,每當(dāng)一款游戲完成制作后,都會聘請一些玩家去進(jìn)行測試,看看有沒有BUG,以便及時修改,才不至于上市后被人發(fā)現(xiàn)BUG的尷尬,
74、然后又會去打補丁。其實測試時一個漫長的過程,我這個程序的測試期遠(yuǎn)遠(yuǎn)沒有結(jié)束,現(xiàn)在仍然存在BUG,并不是最完美的狀態(tài),不過我會繼續(xù)改進(jìn)。這段時間真的收獲了許多書上沒有的東西,最關(guān)鍵是我找到了編程的思路和感覺。突然發(fā)現(xiàn)編程其實可以這么簡單!</p><p> 這次課程設(shè)計歷時二個星期多左右,通過課程設(shè)計,發(fā)現(xiàn)自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經(jīng)驗還是比較缺乏,理論聯(lián)系實際的能力還急需提高。<
75、/p><p> 盡管自己在學(xué)習(xí)C與C++上都不太懂,但我明白這都是自己平時不努力的結(jié)果,因為這次課程設(shè)計是一門課程,對每個人的要求也特別高,所以我必須得自己去搞懂一些東西,比如說:類是什么東西?類的作用是什么?何為鏈表?這些在高手看來都很簡單的東西,對我來說非常的難以理解。因為平時根本就不看書的緣故。在任務(wù)剛布置下來的時候,甚至感覺到了緊張和憂慮,因為整個班級做“航天售票系統(tǒng)”這個題目的就我一人,但自己想想:既然這
76、個題目輪到我,那這就是我自己的事情,我必須得自己想辦法去解決。于是,從不在學(xué)校圖書館借閱專業(yè)圖書的我瘋狂地一口氣接了四本專業(yè)書籍,其中兩本C++,兩本CB,借完抱回宿舍一看,感覺就跟天書一樣,就是看不懂。當(dāng)我正準(zhǔn)備放棄的時候,有同學(xué)跟我說:“如果你愿意花時間的話,先把學(xué)校發(fā)的書多看看”。我聽從他的建議,把課本翻出來慢慢的研究,好像感覺有一些極小的問題,自己能夠獨立解決了。這對我來說就是一個非常大的收獲!</p><p
77、> 一點小的收獲能夠讓我看見更大的力量,感覺自己渾身充滿著干勁,真的特別希望能夠通過這次課程設(shè)計,促使自己將以前沒有看過的書都看一遍、由此來使自己的C++水平更上一層樓!</p><p> 這次的課程設(shè)計也讓我看到了同學(xué)之間相互幫助的力量,我認(rèn)為我們班進(jìn)行的這次課程設(shè)計不僅僅是一次鍛煉,還讓我們見到了同學(xué)之間的相互幫助,當(dāng)一個同學(xué)在處理一些問題遇到困難的時候,總會看到有一些其他會做的同學(xué)積極的去幫助他解
78、決這些難題。這次課程設(shè)計讓我看到了一個團隊的工作,團隊需要個人,個人也離不開團隊,大家都在努力發(fā)揚團結(jié)協(xié)作的精神,因為每個人都希望自己的課程設(shè)計這門課能夠順利的通過。剛開始的時候,大家就已經(jīng)做好了迎接挑戰(zhàn)的準(zhǔn)備,據(jù)我私下里了解,有些同學(xué)為了這次課程設(shè)計,從不熬夜的他們基本每天晚上研究到夜里一兩點才睡,真的很敬佩這些同學(xué)的干勁。其實在這個班級,C++這門課程還是有一定的區(qū)分度的,但好像起先就分配好了各自的任務(wù),底子薄的同學(xué)先去自己編寫一些
79、自己能夠?qū)懗龅臇|西,而后請功底好的同學(xué)進(jìn)行加工,將程序完善化。關(guān)于每個程序要求做出來的界面,以及對每個題目的理解,大家都會經(jīng)常表達(dá)自己的看法,往往會把一些某個人想不到的問題給提出來,減少了每個人為了解決一些常見的錯誤而絞盡腦汁而所用的時間,不論結(jié)果如何,大家都會經(jīng)常聚在一起討論各個方案的可行性。在課程設(shè)計中只有一個人知道如何讓程序正確、如何讓</p><p> 在這個過程中,我也曾經(jīng)因為理論知識和實踐能力的缺乏
80、失落過,也曾經(jīng)仿真成功而熱情高漲。生活就是這樣,汗水預(yù)示著結(jié)果也見證著收獲。勞動是人類生存生活永恒不變的話題。雖然這個題目或許對某些人來說只是一次的普通的課程設(shè)計(航空售票系統(tǒng)),可是平心而論,也耗費了我不少的心血,這就讓我不得不佩服我們班那些C++學(xué)的特別好的同學(xué),真不知道他們是如何做到的,而我更佩服放入是那些專門搞軟件開發(fā)的技術(shù)前輩,通過這次課程設(shè)計才知道編一個簡單的系統(tǒng)需要消耗多大的氣力,更別說那些成千上萬行的大系統(tǒng),直到現(xiàn)在我才
81、意識到老一輩對我們社會的付出,為了人們的生活更美好,他們?yōu)槲覀兩鐣冻龆嗌傩难。?lt;/p><p> 通過這次課程設(shè)計,我想說:為完成這次課程設(shè)計我們確實很辛苦,但苦中仍有樂,和班級同學(xué)一起在同一個教室學(xué)習(xí)努力的日子,讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學(xué)里一年的相處還趕不上這十來天的學(xué)習(xí),我感覺我和同學(xué)們之間的距離更加近了。這個題目一直堅持做下來確實很累,但當(dāng)我們每個人的程序運行都
82、宣告成功的時候,當(dāng)我們點擊運行按鈕,顯示沒有錯誤,當(dāng)我們一句顯示屏上的要求去驗證任務(wù)書上所標(biāo)明的功能,并且都能實現(xiàn)的時候,內(nèi)心深處盡然有一種說不出的興奮和激動。這兩個星期的種種艱辛在此時此刻都變成了最甜美的回憶!</p><p> 對我而言,這不僅僅是一次課程設(shè)計,更多的給我?guī)淼闹R上的重大收獲,精神上的豐收更加可喜。它讓我懂得了看書的重要性,讓我明白團結(jié)合作的重要行,更讓我知道了學(xué)無止境的道理。我們每一個人
83、都不能永遠(yuǎn)能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我人生旅途上一個非常美好的回憶!</p><p><b> 七、參考文獻(xiàn)</b></p><p> 1、鄭莉、董淵、張瑞豐 C++語言程序設(shè)計(第三版) 清華大學(xué)出版社 2004年1月</p><p>&
84、lt;b> 附錄:</b></p><p> #include<iostream.h></p><p> #include<iomanip.h></p><p> #include<string.h></p><p> #include<fstream.h><
85、/p><p> #include<stdlib.h></p><p> const int Maxp=10; //最大飛機數(shù)</p><p> const int Maxb=100; //最大乘客數(shù)</p><p> const int Maxs=100; //最大座位數(shù)</p><p> cl
86、ass Passenger //乘客類</p><p><b> { </b></p><p><b> private:</b></p><p> int note; //刪除標(biāo)記 1:已刪,0:未刪</p><p> int flightnum; //航班號</p>&
87、lt;p> char name[20]; //乘客姓名</p><p> int ID; //乘客編號</p><p> int seatnum; //座位號</p><p><b> public:</b></p><p> Passenger():seatnum(0){}</p>
88、;<p> char *getname() </p><p><b> {</b></p><p> return name;</p><p><b> }</b></p><p> int getnote() //返回刪除標(biāo)記</p><p&
89、gt;<b> {</b></p><p> return note;</p><p><b> }</b></p><p> int getID() </p><p><b> {</b></p><p> return ID;<
90、/p><p><b> }</b></p><p> void setname(char na[]) //修改姓名</p><p><b> {</b></p><p> strcpy(name,na);</p><p><b> }</b>&
91、lt;/p><p> int getseatnum() </p><p><b> {</b></p><p> return seatnum;</p><p><b> }</b></p><p> void addbook(int n,char *na,int
92、 id,int seat) //訂票操作</p><p><b> {</b></p><p><b> note=0;</b></p><p> flightnum=n;</p><p><b> ID=id;</b></p><p>
93、 seatnum=seat;</p><p> strcpy(name,na);</p><p><b> }</b></p><p> void delpassenger() //刪除乘客信息</p><p><b> {</b></p><p>&l
94、t;b> note=1;</b></p><p><b> }</b></p><p> void list() // 顯示乘客信息</p><p><b> {</b></p><p> cout<<"客戶姓名"<<
95、" "<<"客戶編號"<<" "<<"已定航班號"<<" "<<"座位號"<<endl;</p><p> cout<<name<<"
96、"<<setw(5)<<ID<<" "<<setw(5)<<flightnum<<" "<<setw(5)<<seatnum<<endl;</p><p><b> }</b></p
97、><p><b> };</b></p><p> class Flight //飛機類</p><p><b> {</b></p><p><b> private:</b></p><p> int note; //刪除標(biāo)記 1:已刪,0
98、:未刪</p><p> int flightnum; //航班號</p><p> int planenum; //飛機號 </p><p> char destination[20]; //目的地</p><p> int bookednum; //已定票數(shù)</p><p> in
99、t refundnum; //余票</p><p><b> public:</b></p><p> Flight():bookednum(0),refundnum(100){}</p><p> char *getdes()</p><p><b> {</b></p&g
100、t;<p> return destination;</p><p><b> }</b></p><p> int getnote()</p><p><b> {</b></p><p> return note;</p><p><b>
101、; }</b></p><p> int getflightnum() </p><p><b> {</b></p><p> return flightnum;</p><p><b> }</b></p><p> int getplanenum
102、()</p><p><b> {</b></p><p> return planenum;</p><p><b> }</b></p><p> void setrefund() //訂票后對余票和已定票數(shù)的操作</p><p><b>
103、; {</b></p><p> bookednum++;</p><p> refundnum--;</p><p><b> }</b></p><p> void delrefund() //退票后對余票和已定票數(shù)的操作</p><p><b>
104、; {</b></p><p> bookednum--;</p><p> refundnum++;</p><p><b> }</b></p><p> void setname(char de[]) </p><p><b> {</b>&
105、lt;/p><p> strcpy(destination,de);</p><p><b> }</b></p><p> void delplane() //刪除飛機的操作</p><p><b> {</b></p><p><b> note=1;
106、</b></p><p><b> }</b></p><p> void addplane(int n,int m, char *de) //增加飛機</p><p><b> {</b></p><p><b> note=0;</b></p&g
107、t;<p> flightnum=m;</p><p> planenum=n;</p><p> strcpy(destination,de);</p><p><b> }</b></p><p> void list()</p><p><b> {<
108、;/b></p><p> cout<<"飛機號"<<" "<<" 航班號"<<" "<< "目的地" <<" "<<"已定票數(shù)&quo
109、t;<<" "<<"剩余票數(shù)"<<endl;</p><p> cout<<planenum<<" "<<setw(5)<<flightnum<<" "<<setw
110、(10)<<destination<<" "<<setw(5)<<bookednum<<" "<<setw(5)<<refundnum<<endl;</p><p><b> }</b></p>
111、<p><b> };</b></p><p> class FDatabase //飛機信息庫類 </p><p><b> {</b></p><p><b> private:</b></p><p> int top; //記錄數(shù)
112、組下標(biāo)</p><p> Flight Fl[Maxp]; //飛機類的對象數(shù)組</p><p><b> public:</b></p><p> FDatabase()</p><p><b> {</b></p><p><b> Fligh
113、t f;</b></p><p><b> top=-1;</b></p><p> fstream file("airline.dat",ios::in); //文件打開</p><p><b> while(1)</b></p><p><b>
114、; {</b></p><p> file.read((char *)&f,sizeof(f));</p><p><b> if(!file)</b></p><p><b> break;</b></p><p><b> top++;</b>
115、</p><p> Fl[top]=f;</p><p><b> }</b></p><p> file.close();</p><p><b> }</b></p><p> void clear() //清楚所有航班的操作 </p&
116、gt;<p><b> {</b></p><p><b> top=-1;</b></p><p> cout<<"航班信息已刪除!"<<endl;</p><p><b> }</b></p><p> i
117、nt addplane(int n,int m,char *de) //增加飛機</p><p><b> {</b></p><p> Flight *fl=query(n);</p><p> if(fl==NULL)</p><p><b> {</b></p>&l
118、t;p><b> top++;</b></p><p> Fl[top].addplane(n,m,de);</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> return 0;<
119、;/b></p><p><b> }</b></p><p> Flight *query(int pflightnum) //對象指針 用于查找等操作</p><p><b> {</b></p><p> for(int i=0;i<=top;i++)</p>
120、;<p> if(Fl[i].getflightnum()==pflightnum && Fl[i].getnote()==0)</p><p> return &Fl[i];</p><p> return NULL;</p><p><b> }</b></p><p>
121、 Flight *query1(int pplanenum)</p><p><b> {</b></p><p> for(int i=0;i<=top;i++)</p><p> if(Fl[i].getplanenum()==pplanenum && Fl[i].getnote()==0)</p>
122、<p> return &Fl[i];</p><p> return NULL;</p><p><b> }</b></p><p> void list()</p><p><b> {</b></p><p> for(int i=0
123、;i<=top;i++)</p><p> if(Fl[i].getnote()==0)</p><p> Fl[i].list();</p><p><b> }</b></p><p> void planedata();</p><p> ~FDatabase()</p
124、><p><b> {</b></p><p> fstream file("airline.dat",ios::out);</p><p> for(int i=0;i<=top;i++)</p><p> if(Fl[i].getnote()==0)</p><p&g
125、t; file.write((char *)& Fl[i],sizeof(Fl[i]));</p><p> file.close();</p><p><b> }</b></p><p><b> };</b></p><p> void FDatabase::planedat
126、a() //飛機管理系統(tǒng)界面的實現(xiàn)</p><p><b> {</b></p><p> int choice=1;</p><p> char destiname[20];</p><p> int pflightnum;</p><p> int pplanenum
127、;</p><p> Flight *r;</p><p> system("cls");</p><p> while(choice!=0)</p><p><b> {</b></p><p> cout<<"****************
128、*航線信息管理*****************"<<endl;</p><p> cout<<"★ 1:新增航線 ★"<<endl;</p><p> cout<<"★ 2:更改航線
129、 ★"<<endl;</p><p> cout<<"★ 3:刪除航線 ★"<<endl;</p><p> cout<<"★ 4:查找航線 ★"<<endl;&
130、lt;/p><p> cout<<"★ 5:顯示所有航線 ★"<<endl; </p><p> cout<<"★ 6:刪除所有航線 ★"<<endl; </p><p> co
131、ut<<"★ 0:退出 ★"<<endl;</p><p> cout<<"**********************************************"<<endl;</p><p> cout<<&qu
132、ot;請輸入";</p><p> cin>>choice;</p><p> switch(choice)</p><p><b> {</b></p><p><b> case 1:</b></p><p> cout<<&q
133、uot;請輸入飛機號:";</p><p> cin>>pplanenum;</p><p> cout<<"請輸入航班號:" ;</p><p> cin>>pflightnum;</p><p> cout<<"請輸入目的地:";&l
134、t;/p><p> cin>>destiname;</p><p> addplane(pplanenum,pflightnum,destiname);</p><p> cout<<"添加成功"<<endl;</p><p><b> break;</b>&l
135、t;/p><p><b> case 2:</b></p><p> cout<<"請輸入飛機號:";</p><p> cin>>pplanenum;</p><p> r=query1(pplanenum);</p><p> if(r==NU
136、LL)</p><p><b> {</b></p><p> cout<<"該飛機不存在"<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p
137、> cout<<"請輸入飛機目的地:";</p><p> cin>>destiname;</p><p> r->setname(destiname);</p><p><b> break;</b></p><p><b> case 3:&
138、lt;/b></p><p> cout<<"請輸入飛機號:";</p><p> cin>>pplanenum;</p><p> r=query1(pplanenum);</p><p> if(r==NULL)</p><p><b> {&l
139、t;/b></p><p> cout<<"無此飛機的信息!"<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p> r->delplane();</p>&
140、lt;p> cout<<"已成功刪除此飛機信息"<<endl;</p><p><b> top--;</b></p><p><b> break;</b></p><p><b> case 4:</b></p><p&
141、gt; cout<<"請輸入航班號:";</p><p> cin>>pflightnum;</p><p> r=query(pflightnum);</p><p> if(r==NULL)</p><p><b> {</b></p><p&
142、gt; cout<<"該航班不存在"<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p> r->list();</p><p><b> break;</b&
143、gt;</p><p><b> case 5:</b></p><p><b> if(top<0)</b></p><p> cout<<"沒有航班信息,請進(jìn)行新增航班操作!"<<endl;</p><p> cout<<en
144、dl;</p><p><b> list();</b></p><p> cout<<endl;</p><p><b> break;</b></p><p><b> case 6:</b></p><p><b>
145、 clear();</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> system("cls"); //刷屏</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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航班售票系統(tǒng)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- c語言課程設(shè)計航空售票系統(tǒng)
- c課程設(shè)計鐵路售票系統(tǒng)
- 航空售票系統(tǒng)+c++課程設(shè)計
- 民航售票系統(tǒng)課程設(shè)計報告
- c 課程設(shè)計——航空售票管理系統(tǒng)
- 火車售票系統(tǒng)課程設(shè)計報告
- 民航售票系統(tǒng)課程設(shè)計報告
- 課程設(shè)計報告---- 火車售票系統(tǒng)
- 火車售票系統(tǒng)課程設(shè)計報告
- 火車售票系統(tǒng)課程設(shè)計
- 程序課程設(shè)計報告 ---航班管理系統(tǒng)
- 課程設(shè)計—火車售票系統(tǒng)課程設(shè)計
- c語言課程設(shè)計報告--航班時刻表信息
- 民航售票管理系統(tǒng)課程設(shè)計
- 火車預(yù)售票系統(tǒng)課程設(shè)計報告
- 民航售票系統(tǒng)(數(shù)據(jù)庫課程設(shè)計報告)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---窗口售票系統(tǒng)
- 軟件課程設(shè)計報告---飛機票售票系統(tǒng)
- vfp課程設(shè)計--飛機航班查詢系統(tǒng)
評論
0/150
提交評論