版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 2008~2009學(xué)年第二期</p><p><b> 一、課程設(shè)計(jì)題目</b></p><p> 課程設(shè)計(jì)名稱:航班售票系統(tǒng)</p>
2、<p> 設(shè)計(jì)內(nèi)容:設(shè)計(jì)一個(gè)航班售票系統(tǒng)系統(tǒng),能夠?qū)娇展镜氖燮边M(jìn)行管理。航空公司的售票系統(tǒng)主要包括:航線信息、訂票業(yè)務(wù)、退票業(yè)務(wù)。</p><p><b> 任務(wù)和要求</b></p><p> 1.航線信息:每條航線包括航班號(hào),飛機(jī)號(hào),目的地,訂票數(shù),余票數(shù),共5項(xiàng)。</p><p> 現(xiàn)有3條航線:目的地北京,上海
3、,廣州。飛機(jī)可乘100人(初始定票數(shù)為0,余票數(shù)為100)。將這些信息存入文件airline.dat中。</p><p><b> 2.訂票業(yè)務(wù):</b></p><p> (1).客戶信息包括姓名,航班號(hào),座位號(hào)(初始為0),假設(shè)已有3個(gè)客戶信息存入文件customer.dat。</p><p> (2).有新客戶訂票時(shí),先輸入姓名和航
4、班號(hào),查詢情況,如果還有余票,就為這個(gè)客戶辦理訂票手續(xù),分給客戶一個(gè)座位號(hào),然后寫(xiě)入文件costomer.dat,并修改文件,若無(wú)余票,則輸出客戶已滿</p><p><b> 3.退票業(yè)務(wù):</b></p><p> 根據(jù)客戶提出的航班號(hào),辦理退票,從airline.dat文件中刪除 這個(gè)客戶的信息,并修改airline.dat中相應(yīng)的航線的訂票數(shù)和余票數(shù)輸出全
5、部航線的信息和全部客戶信息,退出系統(tǒng)。</p><p><b> 二、問(wèn)題的分析</b></p><p> 首先這是一個(gè)管理系統(tǒng),有兩個(gè)大類乘客和飛機(jī),所以要定義2個(gè)類,又因?yàn)樾枰M(jìn)行文件的操作,那么可以再定義2個(gè)類,乘客信息類,飛機(jī)信息類用于儲(chǔ)存多個(gè)信息。界面操作當(dāng)然需要用switch語(yǔ)句實(shí)現(xiàn),case時(shí)調(diào)用到函數(shù)。</p><p>&l
6、t;b> 三、算法的設(shè)計(jì)</b></p><p> 我設(shè)計(jì)的這個(gè)航空管理系統(tǒng)運(yùn)用到了條件判斷,switch語(yǔ)句,循環(huán)語(yǔ)句,類與對(duì)象,對(duì)象數(shù)組,對(duì)象指針,類與類的嵌套,文件的寫(xiě)入寫(xiě)出等知識(shí)點(diǎn)。</p><p> 整體的構(gòu)思:設(shè)計(jì)了四個(gè)類飛機(jī)信息庫(kù)類,乘客類,乘客信息庫(kù)類。</p><p> 飛機(jī)類包含了飛機(jī)的一些基本屬性,有航班號(hào),飛機(jī)號(hào),目
7、的地,余票數(shù),已定票數(shù)等信息</p><p> class Flight //飛機(jī)類</p><p><b> {</b></p><p><b> private:</b></p><p> int note; //刪除標(biāo)記 1:已刪,0:未刪</p><p>
8、 int flightnum; //航班號(hào)</p><p> int planenum; //飛機(jī)號(hào) </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() //訂票后對(duì)余票和已定票數(shù)的操作</p><p><b> {</b></p>
13、<p> bookednum++;</p><p> refundnum--;</p><p><b> }</b></p><p> void delrefund() //退票后對(duì)余票和已定票數(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() //刪除飛機(jī)的操作</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) //增加飛機(jī)</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<<"飛機(jī)號(hào)"<<" "<<" 航班號(hào)"<<" "<< "目的地" <<" "<<"已定票數(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> 飛機(jī)信息庫(kù)類內(nèi)嵌了一個(gè)飛機(jī)類的對(duì)象數(shù)組作為飛機(jī)信息庫(kù)類的私有成員,每一個(gè)飛機(jī)的信息都是一個(gè)對(duì)象,都儲(chǔ)存在了飛機(jī)類的對(duì)象數(shù)組中,通過(guò)這個(gè)數(shù)組進(jìn)行對(duì)單個(gè)或多個(gè)飛機(jī)對(duì)象屬性的一些操作,飛機(jī)信息庫(kù)類中還包括界面操作選擇的程序,其中還有信息的寫(xiě)入文件,讀取文件中的數(shù)據(jù)的功能</p><p> class FDatabase //飛機(jī)信息庫(kù)類 <
22、;/p><p><b> {</b></p><p><b> private:</b></p><p> int top; //記錄數(shù)組下標(biāo)</p><p> Flight Fl[Maxp]; //飛機(jī)類的對(duì)象數(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); //文件打開(kāi)</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) //增加飛機(jī)</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) //對(duì)象指針 用于查找等操作</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> 乘客類包含了乘客的一些基本屬性,有姓名,航班號(hào),座位號(hào),客戶編號(hào)等屬性</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; //航班號(hào)</p><p> char name[20]; //乘客姓名</p><p>
38、; int ID; //乘客編號(hào)</p><p> int seatnum; //座位號(hào)</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<<"客戶姓名"<<" "<<"客戶編號(hào)"<<"
46、 "<<"已定航班號(hào)"<<" "<<"座位號(hào)"<<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> 乘客信息庫(kù)類與飛機(jī)信息庫(kù)類實(shí)現(xiàn)的功能原理類似,記錄了乘客類的對(duì)象數(shù)組。主函數(shù)實(shí)現(xiàn)了主操作界面的程序。</p><p> class PDatabase //乘客信息庫(kù)類</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、除航班??蛻艨梢赃M(jìn)行訂票,退票,客戶資料修改,查找,刪除等操作。</p><p><b> 具體實(shí)現(xiàn)過(guò)程:</b></p><p> 新增航線的實(shí)現(xiàn)過(guò)程:通過(guò)錄入航線的飛機(jī)號(hào),航班號(hào),目的地。系統(tǒng)會(huì)存入到飛機(jī)的對(duì)象數(shù)組里,一個(gè)飛機(jī)就是一個(gè)對(duì)象,然后存入飛機(jī)的對(duì)象數(shù)組中,這主要通過(guò)飛機(jī)信息類中的addplane()函數(shù)在調(diào)用飛機(jī)類中的addplane()函數(shù)實(shí)現(xiàn)存入
65、飛機(jī)的基本信息,同時(shí)這一個(gè)飛機(jī)的信息作為一個(gè)對(duì)象保存在飛機(jī)類的對(duì)象數(shù)組中。如果想要把這個(gè)新增的飛機(jī)寫(xiě)入文件的話,通過(guò)飛機(jī)信息庫(kù)類的中析構(gòu)函數(shù)寫(xiě)入文件,所以每當(dāng)要儲(chǔ)存進(jìn)文件,則需要推出系統(tǒng)后保存,則下次進(jìn)入后你將會(huì)看到在飛機(jī)信息類中會(huì)看到飛機(jī)的信息。</p><p> 更改航班操作的實(shí)現(xiàn)過(guò)程:先要錄入你要更改的航班號(hào),系統(tǒng)會(huì)找到那個(gè)航班,這樣你可以進(jìn)行目的地修改的操作。通過(guò)飛機(jī)信息庫(kù)類中的query()函數(shù)進(jìn)行查
66、找,利用for循環(huán),逐個(gè)查找,當(dāng)找到的飛機(jī)航班號(hào)與輸入的航班號(hào)相同時(shí),進(jìn)行輸出。并通過(guò)飛機(jī)類的setname()函數(shù)對(duì)目的地的字符串利用strcpy()函數(shù)進(jìn)行覆蓋。所以這個(gè)飛機(jī)對(duì)象的目的地就改變了。</p><p> 查找航班的實(shí)現(xiàn)過(guò)程:輸入航班號(hào),利用飛機(jī)信息庫(kù)類中的query()函數(shù)查找,最后返回對(duì)象,并輸出對(duì)象。</p><p> 顯示航班信息的實(shí)現(xiàn)過(guò)程:利用飛機(jī)信息庫(kù)類中的l
67、ist()函數(shù)進(jìn)行輸出對(duì)象數(shù)組中的對(duì)象。</p><p> 刪除航班過(guò)程的實(shí)現(xiàn):可以刪除單個(gè)航班,也可以刪除全部,刪除單個(gè)航班先輸入航班號(hào)查找出航班,然后通過(guò)調(diào)用飛機(jī)類的delplane()函數(shù)進(jìn)行信息存在標(biāo)記的改變。刪除全部直接更改飛機(jī)對(duì)象數(shù)組中的下標(biāo)即可。</p><p> 訂票的實(shí)現(xiàn):首先輸入航班號(hào),如果沒(méi)有此航班會(huì)提示錯(cuò)誤,直到有此航班后才能進(jìn)行下一步操作,然戶輸入姓名,客戶編
68、號(hào),座位號(hào),客戶編號(hào)是客戶自己擁有的一個(gè)ID,座位號(hào)用戶可以自己預(yù)定。如果作為被預(yù)定后,會(huì)顯示錯(cuò)誤需要重新預(yù)定座位號(hào)。調(diào)用乘客信息庫(kù)類中的addbook()函數(shù)在調(diào)用乘客類中的addbook()函數(shù)進(jìn)行賦值操作,而且此航班的信息中余票數(shù)會(huì)減少一個(gè),已定票數(shù)會(huì)增加一個(gè)。同時(shí)將此乘客的信息存入乘客對(duì)象數(shù)組中。</p><p> 退票的實(shí)現(xiàn):輸入航班號(hào),用戶編號(hào)。系統(tǒng)會(huì)查找出此客戶,并會(huì)通過(guò)乘客信息類的delpass
69、enger()函數(shù)設(shè)置刪除標(biāo)記。已達(dá)到刪除乘客信息的效果,就達(dá)到了退票的效果,而且飛機(jī)信息中的余票數(shù)會(huì)增加1,訂票數(shù)會(huì)減少1。</p><p> 客戶資料修改的實(shí)現(xiàn)過(guò)程:通過(guò)輸入用戶ID后,查找出當(dāng)前客戶,可以進(jìn)行客戶信息的姓名修改,調(diào)用setname()函數(shù)修改姓名。</p><p><b> 四、上機(jī)調(diào)試過(guò)程:</b></p><p>
70、 問(wèn)題:在調(diào)試過(guò)程時(shí)經(jīng)常會(huì)遇到一些類與類內(nèi)嵌時(shí)有函數(shù)未定義的情況,明明已經(jīng)定義過(guò)類了,但編譯時(shí)顯示類未定義,對(duì)象為定義,不能互相訪問(wèn),還有的時(shí)候由于定義的標(biāo)示符過(guò)多,導(dǎo)致會(huì)編寫(xiě)錯(cuò)誤標(biāo)示符,還有一些小錯(cuò)誤,比如符號(hào)漏寫(xiě)等,這些錯(cuò)誤都是很好看出來(lái)。最難的錯(cuò)誤應(yīng)該是在嵌套過(guò)程中的邏輯問(wèn)題,有的時(shí)候會(huì)調(diào)用錯(cuò)誤函數(shù),有的時(shí)候會(huì)很混亂,整個(gè)思路就亂了。</p><p> 修改:在嵌套時(shí)要注意有沒(méi)有先定義對(duì)象到另一個(gè)類中,
71、定義函數(shù)時(shí),如果函數(shù)體短的函數(shù)直接定義為內(nèi)聯(lián)函數(shù),這樣不會(huì)有忘定義的現(xiàn)象產(chǎn)生。在類與類嵌套時(shí)應(yīng)該注意類前向引用聲明。類與類的邏輯問(wèn)題還是靜下心來(lái)梳理一下自己的思路,這是我覺(jué)得最好的辦法了。</p><p><b> 五、測(cè)試結(jié)果及分析</b></p><p> 1、程序一開(kāi)始的登錄界面(主界面)</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)中存儲(chǔ)的所有航線信息</p><p> 5、在主界面中選擇1 訂票 并成功完成了預(yù)訂</p><p><b> 六、設(shè)計(jì)后的感想</b></p><p> 經(jīng)過(guò)了
73、2個(gè)星期的課程設(shè)計(jì),自己獨(dú)自一人完成了一個(gè)小小的管理系統(tǒng)的程序編寫(xiě),可謂是感觸頗多。從一開(kāi)始構(gòu)思,到后來(lái)的實(shí)踐,查找資料,找出語(yǔ)法錯(cuò)誤,最后終于能運(yùn)行了,但一運(yùn)行便出現(xiàn)了很多BUG,然后就開(kāi)始了漫長(zhǎng)的測(cè)試期,不斷的修改,不斷的找到BUG,測(cè)試期的遠(yuǎn)遠(yuǎn)大過(guò)編程期,其實(shí)測(cè)試也是一個(gè)非常艱巨的工程。這使我想起了許多游戲公司,每當(dāng)一款游戲完成制作后,都會(huì)聘請(qǐng)一些玩家去進(jìn)行測(cè)試,看看有沒(méi)有BUG,以便及時(shí)修改,才不至于上市后被人發(fā)現(xiàn)BUG的尷尬,
74、然后又會(huì)去打補(bǔ)丁。其實(shí)測(cè)試時(shí)一個(gè)漫長(zhǎng)的過(guò)程,我這個(gè)程序的測(cè)試期遠(yuǎn)遠(yuǎn)沒(méi)有結(jié)束,現(xiàn)在仍然存在BUG,并不是最完美的狀態(tài),不過(guò)我會(huì)繼續(xù)改進(jìn)。這段時(shí)間真的收獲了許多書(shū)上沒(méi)有的東西,最關(guān)鍵是我找到了編程的思路和感覺(jué)。突然發(fā)現(xiàn)編程其實(shí)可以這么簡(jiǎn)單!</p><p> 這次課程設(shè)計(jì)歷時(shí)二個(gè)星期多左右,通過(guò)課程設(shè)計(jì),發(fā)現(xiàn)自己的很多不足,自己知識(shí)的很多漏洞,看到了自己的實(shí)踐經(jīng)驗(yàn)還是比較缺乏,理論聯(lián)系實(shí)際的能力還急需提高。<
75、/p><p> 盡管自己在學(xué)習(xí)C與C++上都不太懂,但我明白這都是自己平時(shí)不努力的結(jié)果,因?yàn)檫@次課程設(shè)計(jì)是一門(mén)課程,對(duì)每個(gè)人的要求也特別高,所以我必須得自己去搞懂一些東西,比如說(shuō):類是什么東西?類的作用是什么?何為鏈表?這些在高手看來(lái)都很簡(jiǎn)單的東西,對(duì)我來(lái)說(shuō)非常的難以理解。因?yàn)槠綍r(shí)根本就不看書(shū)的緣故。在任務(wù)剛布置下來(lái)的時(shí)候,甚至感覺(jué)到了緊張和憂慮,因?yàn)檎麄€(gè)班級(jí)做“航天售票系統(tǒng)”這個(gè)題目的就我一人,但自己想想:既然這
76、個(gè)題目輪到我,那這就是我自己的事情,我必須得自己想辦法去解決。于是,從不在學(xué)校圖書(shū)館借閱專業(yè)圖書(shū)的我瘋狂地一口氣接了四本專業(yè)書(shū)籍,其中兩本C++,兩本CB,借完抱回宿舍一看,感覺(jué)就跟天書(shū)一樣,就是看不懂。當(dāng)我正準(zhǔn)備放棄的時(shí)候,有同學(xué)跟我說(shuō):“如果你愿意花時(shí)間的話,先把學(xué)校發(fā)的書(shū)多看看”。我聽(tīng)從他的建議,把課本翻出來(lái)慢慢的研究,好像感覺(jué)有一些極小的問(wèn)題,自己能夠獨(dú)立解決了。這對(duì)我來(lái)說(shuō)就是一個(gè)非常大的收獲!</p><p
77、> 一點(diǎn)小的收獲能夠讓我看見(jiàn)更大的力量,感覺(jué)自己渾身充滿著干勁,真的特別希望能夠通過(guò)這次課程設(shè)計(jì),促使自己將以前沒(méi)有看過(guò)的書(shū)都看一遍、由此來(lái)使自己的C++水平更上一層樓!</p><p> 這次的課程設(shè)計(jì)也讓我看到了同學(xué)之間相互幫助的力量,我認(rèn)為我們班進(jìn)行的這次課程設(shè)計(jì)不僅僅是一次鍛煉,還讓我們見(jiàn)到了同學(xué)之間的相互幫助,當(dāng)一個(gè)同學(xué)在處理一些問(wèn)題遇到困難的時(shí)候,總會(huì)看到有一些其他會(huì)做的同學(xué)積極的去幫助他解
78、決這些難題。這次課程設(shè)計(jì)讓我看到了一個(gè)團(tuán)隊(duì)的工作,團(tuán)隊(duì)需要個(gè)人,個(gè)人也離不開(kāi)團(tuán)隊(duì),大家都在努力發(fā)揚(yáng)團(tuán)結(jié)協(xié)作的精神,因?yàn)槊總€(gè)人都希望自己的課程設(shè)計(jì)這門(mén)課能夠順利的通過(guò)。剛開(kāi)始的時(shí)候,大家就已經(jīng)做好了迎接挑戰(zhàn)的準(zhǔn)備,據(jù)我私下里了解,有些同學(xué)為了這次課程設(shè)計(jì),從不熬夜的他們基本每天晚上研究到夜里一兩點(diǎn)才睡,真的很敬佩這些同學(xué)的干勁。其實(shí)在這個(gè)班級(jí),C++這門(mén)課程還是有一定的區(qū)分度的,但好像起先就分配好了各自的任務(wù),底子薄的同學(xué)先去自己編寫(xiě)一些
79、自己能夠?qū)懗龅臇|西,而后請(qǐng)功底好的同學(xué)進(jìn)行加工,將程序完善化。關(guān)于每個(gè)程序要求做出來(lái)的界面,以及對(duì)每個(gè)題目的理解,大家都會(huì)經(jīng)常表達(dá)自己的看法,往往會(huì)把一些某個(gè)人想不到的問(wèn)題給提出來(lái),減少了每個(gè)人為了解決一些常見(jiàn)的錯(cuò)誤而絞盡腦汁而所用的時(shí)間,不論結(jié)果如何,大家都會(huì)經(jīng)常聚在一起討論各個(gè)方案的可行性。在課程設(shè)計(jì)中只有一個(gè)人知道如何讓程序正確、如何讓</p><p> 在這個(gè)過(guò)程中,我也曾經(jīng)因?yàn)槔碚撝R(shí)和實(shí)踐能力的缺乏
80、失落過(guò),也曾經(jīng)仿真成功而熱情高漲。生活就是這樣,汗水預(yù)示著結(jié)果也見(jiàn)證著收獲。勞動(dòng)是人類生存生活永恒不變的話題。雖然這個(gè)題目或許對(duì)某些人來(lái)說(shuō)只是一次的普通的課程設(shè)計(jì)(航空售票系統(tǒng)),可是平心而論,也耗費(fèi)了我不少的心血,這就讓我不得不佩服我們班那些C++學(xué)的特別好的同學(xué),真不知道他們是如何做到的,而我更佩服放入是那些專門(mén)搞軟件開(kāi)發(fā)的技術(shù)前輩,通過(guò)這次課程設(shè)計(jì)才知道編一個(gè)簡(jiǎn)單的系統(tǒng)需要消耗多大的氣力,更別說(shuō)那些成千上萬(wàn)行的大系統(tǒng),直到現(xiàn)在我才
81、意識(shí)到老一輩對(duì)我們社會(huì)的付出,為了人們的生活更美好,他們?yōu)槲覀兩鐣?huì)所付出多少心血??!</p><p> 通過(guò)這次課程設(shè)計(jì),我想說(shuō):為完成這次課程設(shè)計(jì)我們確實(shí)很辛苦,但苦中仍有樂(lè),和班級(jí)同學(xué)一起在同一個(gè)教室學(xué)習(xí)努力的日子,讓我們有說(shuō)有笑,相互幫助,配合默契,多少人間歡樂(lè)在這里灑下,大學(xué)里一年的相處還趕不上這十來(lái)天的學(xué)習(xí),我感覺(jué)我和同學(xué)們之間的距離更加近了。這個(gè)題目一直堅(jiān)持做下來(lái)確實(shí)很累,但當(dāng)我們每個(gè)人的程序運(yùn)行都
82、宣告成功的時(shí)候,當(dāng)我們點(diǎn)擊運(yùn)行按鈕,顯示沒(méi)有錯(cuò)誤,當(dāng)我們一句顯示屏上的要求去驗(yàn)證任務(wù)書(shū)上所標(biāo)明的功能,并且都能實(shí)現(xiàn)的時(shí)候,內(nèi)心深處盡然有一種說(shuō)不出的興奮和激動(dòng)。這兩個(gè)星期的種種艱辛在此時(shí)此刻都變成了最甜美的回憶!</p><p> 對(duì)我而言,這不僅僅是一次課程設(shè)計(jì),更多的給我?guī)?lái)的知識(shí)上的重大收獲,精神上的豐收更加可喜。它讓我懂得了看書(shū)的重要性,讓我明白團(tuán)結(jié)合作的重要行,更讓我知道了學(xué)無(wú)止境的道理。我們每一個(gè)人
83、都不能永遠(yuǎn)能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次課程設(shè)計(jì)必將成為我人生旅途上一個(gè)非常美好的回憶!</p><p><b> 七、參考文獻(xiàn)</b></p><p> 1、鄭莉、董淵、張瑞豐 C++語(yǔ)言程序設(shè)計(jì)(第三版) 清華大學(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; //最大飛機(jī)數(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; //航班號(hào)</p>&
87、lt;p> char name[20]; //乘客姓名</p><p> int ID; //乘客編號(hào)</p><p> int seatnum; //座位號(hào)</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、" "<<"客戶編號(hào)"<<" "<<"已定航班號(hào)"<<" "<<"座位號(hào)"<<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 //飛機(jī)類</p><p><b> {</b></p><p><b> private:</b></p><p> int note; //刪除標(biāo)記 1:已刪,0
98、:未刪</p><p> int flightnum; //航班號(hào)</p><p> int planenum; //飛機(jī)號(hào) </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() //訂票后對(duì)余票和已定票數(shù)的操作</p><p><b>
103、; {</b></p><p> bookednum++;</p><p> refundnum--;</p><p><b> }</b></p><p> void delrefund() //退票后對(duì)余票和已定票數(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() //刪除飛機(jī)的操作</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) //增加飛機(jī)</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<<"飛機(jī)號(hào)"<<" "<<" 航班號(hào)"<<" "<< "目的地" <<" "<<"已定票數(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 //飛機(jī)信息庫(kù)類 </p><p><b> {</b></p><p><b> private:</b></p><p> int top; //記錄數(shù)
112、組下標(biāo)</p><p> Flight Fl[Maxp]; //飛機(jī)類的對(duì)象數(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); //文件打開(kāi)</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) //增加飛機(jī)</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) //對(duì)象指針 用于查找等操作</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() //飛機(jī)管理系統(tǒng)界面的實(shí)現(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;請(qǐng)輸入";</p><p> cin>>choice;</p><p> switch(choice)</p><p><b> {</b></p><p><b> case 1:</b></p><p> cout<<&q
133、uot;請(qǐng)輸入飛機(jī)號(hào):";</p><p> cin>>pplanenum;</p><p> cout<<"請(qǐng)輸入航班號(hào):" ;</p><p> cin>>pflightnum;</p><p> cout<<"請(qǐng)輸入目的地:";&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<<"請(qǐng)輸入飛機(jī)號(hào):";</p><p> cin>>pplanenum;</p><p> r=query1(pplanenum);</p><p> if(r==NU
136、LL)</p><p><b> {</b></p><p> cout<<"該飛機(jī)不存在"<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p
137、> cout<<"請(qǐng)輸入飛機(jī)目的地:";</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<<"請(qǐng)輸入飛機(jī)號(hào):";</p><p> cin>>pplanenum;</p><p> r=query1(pplanenum);</p><p> if(r==NULL)</p><p><b> {&l
139、t;/b></p><p> cout<<"無(wú)此飛機(jī)的信息!"<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p> r->delplane();</p>&
140、lt;p> cout<<"已成功刪除此飛機(jī)信息"<<endl;</p><p><b> top--;</b></p><p><b> break;</b></p><p><b> case 4:</b></p><p&
141、gt; cout<<"請(qǐng)輸入航班號(hào):";</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<<"沒(méi)有航班信息,請(qǐng)進(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. 本站所有資源如無(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)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)航空售票系統(tǒng)
- c課程設(shè)計(jì)鐵路售票系統(tǒng)
- 航空售票系統(tǒng)+c++課程設(shè)計(jì)
- 民航售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- c 課程設(shè)計(jì)——航空售票管理系統(tǒng)
- 火車售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 民航售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告---- 火車售票系統(tǒng)
- 火車售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 火車售票系統(tǒng)課程設(shè)計(jì)
- 程序課程設(shè)計(jì)報(bào)告 ---航班管理系統(tǒng)
- 課程設(shè)計(jì)—火車售票系統(tǒng)課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--航班時(shí)刻表信息
- 民航售票管理系統(tǒng)課程設(shè)計(jì)
- 火車預(yù)售票系統(tǒng)課程設(shè)計(jì)報(bào)告
- 民航售票系統(tǒng)(數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---窗口售票系統(tǒng)
- 軟件課程設(shè)計(jì)報(bào)告---飛機(jī)票售票系統(tǒng)
- vfp課程設(shè)計(jì)--飛機(jī)航班查詢系統(tǒng)
評(píng)論
0/150
提交評(píng)論