

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 項目名稱: 航空客運訂票系統(tǒng) </p><p> 學(xué)生姓名: </p><p> 學(xué) 號: </p><p> 班 級: </p><p> 指導(dǎo)教師: </p>
2、<p> 2013年 1月 1日</p><p><b> 目錄</b></p><p><b> 1.需求分析1</b></p><p> 2.數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明2</p><p> 3 詳細設(shè)計和編碼3</p><p> 3.1 查詢模塊
3、3</p><p> 3.2 訂票模塊4</p><p> 3.3 退票模塊5</p><p><b> 4.實驗結(jié)果6</b></p><p> 4.1航班信息錄入6</p><p> 4.2航班信息查詢6</p><p><b> 4.3
4、訂票模塊7</b></p><p><b> 4.4退票管理8</b></p><p><b> 5.體會9</b></p><p><b> 6.參考文獻10</b></p><p> 7.源代碼清單11</p><p>
5、<b> 1.需求分析</b></p><p> 本訂票系統(tǒng)能夠?qū)崿F(xiàn)全部航線信息的錄入功能、訂票客戶信息的查詢功能、訂票功能和退票功能。</p><p><b> 具體分析如下:</b></p><p><b> 航班信息的錄入功能</b></p><p> 航班信息
6、的錄入功能包含:終點站名、航班號、飛機號、 飛行日期(星期幾)、乘員定額、余票量、已經(jīng)訂票的客戶名單(包括姓名、訂票量)以及等候替補的客戶名單(包姓名、所需票量)。</p><p> 訂票客戶信息的查詢功能</p><p> 訂票客戶信息的查詢功能:根據(jù)客戶提供的終點站名進行查詢,并且可以輸出以下信息:航班號、飛機號、飛行日期和余票量。</p><p><
7、b> 訂票功能</b></p><p> 訂票功能:根據(jù)客戶提出的要求(航班號、訂票數(shù)量)查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續(xù);若已滿員或余票額少于定票額,則詢問客戶是否愿意排隊等候,若愿意,系統(tǒng)則自動登記排隊候補。</p><p><b> 退票功能</b></p><p> 退票功能:根據(jù)客戶提供的
8、情況(航班、姓名),詢問退票張數(shù),然后為客戶辦理退票手續(xù)。接著系統(tǒng)自動查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其他排隊候補的客戶。</p><p> 具體功能模塊圖如圖1-1所示,</p><p> 圖1-1航空客運訂票系統(tǒng)功能模塊圖</p><p> 2.數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明</p
9、><p> 本系統(tǒng)定義了三個結(jié)構(gòu)體,一個表示已定票客戶名單,一個表示等候替補的客戶名單,還有一個為航班信息。同時在結(jié)構(gòu)體之后還定義了一個單鏈表。</p><p> 在已定票客戶名單中,name1存放客戶姓名,reserve表示訂票量,具體如下:</p><p> typedef struct //已經(jīng)訂票的客戶名單</p><p>&
10、lt;b> {</b></p><p> char name1[20]; //客戶姓名</p><p> int reserve; //定票量</p><p><b> }name;</b></p><p> 在等候替補的客戶名單中,name數(shù)組用來存放等候客戶姓名,necessary存
11、放所需票量的數(shù)量,具體如下:</p><p> typedef struct //等候替補的客戶名單</p><p><b> {</b></p><p> char name[20]; //客戶姓名</p><p> int necessary[20]; //所需票量</p><
12、;p><b> }wai;</b></p><p> 在航班信息當(dāng)中,destination表示終點站名,flight表示航班號,num為飛機號,time表示飛行日期,sum表示乘員定額,odd表示余票量,waitno表示已經(jīng)有的候票客戶人數(shù);同時還定義了訂票客戶數(shù)組name namelist[50]、以及候票客戶數(shù)組wai wait[50];具體如下:</p>&
13、lt;p> struct airline //航班信息,</p><p><b> {</b></p><p> char destination[maxsize]; //終點站名</p><p> char flight[20]; //航班號</p><p> int num;
14、//飛機號</p><p> char time; //飛行日期(星期幾)</p><p> int sum; //乘員定額</p><p> int odd; //余票量</p><p> name namelist[50];//訂票客戶數(shù)組</p><p> wai wait[50];//候票
15、客戶數(shù)組</p><p> int waitno;//已經(jīng)有的候票客戶人數(shù)</p><p> }airplane;</p><p><b> 3 詳細設(shè)計和編碼</b></p><p><b> 3.1 查詢模塊</b></p><p> 進入訂票系統(tǒng),此時有四個功
16、能模塊供用戶選擇,此時是查詢功能,這是按目的地查詢,根據(jù)用戶所提供要到的目的地,當(dāng)所提供目的地與已經(jīng)錄入的航班信息所錄入的終點站名相同時,查找成功同時顯示所查詢的航班的信息,當(dāng)查找失敗是,系統(tǒng)會提示用戶輸入有誤,并要重新查詢。</p><p> 圖3-1查詢功能流程圖</p><p><b> 3.2 訂票模塊</b></p><p>
17、進入訂票模塊的時候,系統(tǒng)提示輸入終點站名,客戶姓名和所定票量,當(dāng)用戶要訂的票數(shù)小于所在航班的余票數(shù)時,直接給用戶訂票,并提示訂票成功。當(dāng)用戶要訂的票數(shù)大于所在航班的余票數(shù)時,系統(tǒng)會給出提示,詢問用戶目前余票量不足,是否進行候補,如果用戶選擇候補時,就先把現(xiàn)有的票訂下,并保存在已訂票客戶中,剩下的沒有訂的票就保存在候補客戶中。若沒有找到對應(yīng)的航班號,提示航班號錯誤,重新輸入。</p><p> 圖3-2訂票模塊流
18、程圖</p><p><b> 3.3 退票模塊</b></p><p> 進入退票模塊時,系統(tǒng)會先讓用戶輸入航班號,并利用同樣的查找思路對航班號進行查找,查找失敗則提示沒有您要找的航班號,查找成功時,然后輸入姓名,利用同樣的查找方法,查找失敗則提示沒有您要找的姓名,查找成功則輸入要退票的張數(shù),當(dāng)信息都輸入正確時,系統(tǒng)會提示退票成功。</p><
19、;p> 圖3-3退票模塊流程圖</p><p><b> 4.實驗結(jié)果</b></p><p> 該系統(tǒng)包括對航班信息的錄入creatlist(linklist *l),航班信息的查詢seek(linklist *l) ,訂票功能管理booking(linklist *l) ,以及退票功能模塊cancel(linklist *l) ,具體如下:</p
20、><p><b> 4.1航班信息錄入</b></p><p> 當(dāng)用戶選擇1.錄入航班信息時,系統(tǒng)會提示用戶輸入終點站名、航班號、飛機號、飛行日期,同時余票量也是手動輸入,并且在輸入完成后會顯示乘員定額,如圖4-1所示:</p><p> 圖4-1航班信息錄入圖</p><p><b> 4.2航班信息查
21、詢</b></p><p> 根據(jù)用戶提供的站名進行查找,當(dāng)查找失敗的時候提示用戶該航班不存在,否則,輸出航班號、飛機號、飛行日期,以及余票量,如圖4-2</p><p> 圖4-2查詢功能模塊圖</p><p><b> 4.3訂票模塊</b></p><p> 當(dāng)用戶選擇3.訂票功能管理時,系統(tǒng)提
22、示用戶輸入終點站,姓名、所定票量,該功能是根據(jù)終點站名查找訂票航班,當(dāng)訂票數(shù)大于余票數(shù)時,系統(tǒng)會詢問用戶是否進入候補狀態(tài),詢問是否排隊等候,當(dāng)有剩余票時,提示訂票成功,如圖4-4</p><p> 圖4-3訂票功能模塊圖</p><p> 圖4-4訂票功能模塊圖</p><p><b> 4.4退票管理</b></p>&l
23、t;p> 該功能主要是通過查找要退票的航班,查找到已定客戶名單和其詳細信息,實現(xiàn)了對于用戶已定票數(shù)以及用戶名的刪除,當(dāng)刪除成功的時候,提示用戶刪除失敗,如圖4-5</p><p> 圖4-5退票功能模塊圖</p><p><b> 5.體會</b></p><p> 航空客運訂票系統(tǒng)是對于航空公司訂票系統(tǒng)的一種小型模擬,它包括對航
24、班信息的錄入,客戶信息的查詢,訂票功能管理,以及取消訂票這四個功能模塊。</p><p> 這是繼開學(xué)來之后第二門課程設(shè)計,當(dāng)然在這之中還是有遇到很多困難。在做第一門學(xué)生信息管理系統(tǒng)的時候,我對于畫流程圖以及對算法的描述的時候,總是不簡潔,而且重點也沒說到,因此,在這次做課程設(shè)計的時候,對于畫流程圖和對算法的描述分析格外細心。不僅僅如此,這次的課程設(shè)計題目蘊含了對系統(tǒng)功能分析,即該系統(tǒng)包含哪些功能,怎么去實現(xiàn)它
25、,以及對于這學(xué)期所需知識的一個總結(jié)。</p><p> 通過這次課程設(shè)計,讓我對于結(jié)構(gòu)體的定義,單鏈表的定義、使用,以及循環(huán)語句的使用有了更深入的了解,同時對于做課程設(shè)計的第一步有了全新的認識,只要能將所需知識更好使用就可以做到想做的東西。</p><p><b> 6.參考文獻</b></p><p> [1]雷于生,胡成松.C語言程序
26、設(shè)計.北京:高等教育出版社,2009</p><p> [2]嚴蔚敏,吳偉江。數(shù)據(jù)結(jié)構(gòu)。北京:清華大學(xué)出版社,1997</p><p> [3]譚浩強編著.C語言程序設(shè)計.北京:清華大學(xué)出版社,1991</p><p> [4]譚浩強,張基溫,唐永炎編著.C語言程序設(shè)計教程.北京:高等教育出版社,1992</p><p> [5]黃揚
27、銘.數(shù)據(jù)結(jié)構(gòu).北京:科學(xué)出版社,2001</p><p><b> 7.源代碼清單</b></p><p> #include<iostream.h></p><p> #include<malloc.h></p><p> #include<string.h></p&g
28、t;<p> #include<stdlib.h></p><p> #define maxsize 50</p><p> typedef struct //已經(jīng)訂票的客戶名單</p><p><b> {</b></p><p> char name1[20]; //客戶姓
29、名</p><p> int reserve; //定票量</p><p><b> }name;</b></p><p> typedef struct //等候替補的客戶名單</p><p><b> {</b></p><p> char name[
30、20]; //客戶姓名</p><p> int necessary; //所需票量</p><p><b> }wai;</b></p><p> struct airline //航班信息,</p><p><b> {</b></p><p>
31、 char destination[maxsize]; //終點站名</p><p> char flight[20]; //航班號</p><p> int num; //飛機號</p><p> char time; //飛行日期(星期幾)</p><p> int sum; //乘員定額</p>
32、;<p> int odd; //余票量</p><p> name namelist[50];//訂票客戶數(shù)組</p><p> wai wait[50];//候票客戶數(shù)組</p><p> int waitno;//已經(jīng)有的候票客戶人數(shù)</p><p> }airplane;</p><p&
33、gt; typedef airline elemtype;</p><p> typedef struct lnode//建立單鏈表</p><p><b> {</b></p><p> elemtype data;</p><p> struct lnode *next;</p><p&
34、gt; }linklist;</p><p> void creatlist(linklist *&l);</p><p> void seek(linklist *l);</p><p> void booking(linklist *l);</p><p> void cancel(linklist *&l);&
35、lt;/p><p> /*-----------------------------------主菜單--------------------------*/</p><p> int menu()</p><p><b> {</b></p><p><b> int y;</b></p
36、><p> cout<<"\t-------------------------------------------------------------"<<endl;</p><p> cout<<"\t----------------------航空客運訂票系統(tǒng)---------------------"<
37、;<endl;</p><p> cout<<"\n\n\t\t\t1.錄 入 航 班 信 息"<<endl;</p><p> cout<<"\n\n\t\t\t2.查 詢 航 班 信 息"<<endl;</p><p> cout<<"\n\
38、n\t\t\t3.訂 票 功 能 管 理"<<endl;</p><p> cout<<"\n\n\t\t\t4.退 票 辦 理"<<endl;</p><p> cout<<"\n\n\t\t\t0.退 出"<<endl;</p><p> c
39、out<<"\n\t -------------------------------------------------"<<endl;</p><p> cout<<"\n\t ---------------------------------------------------"<<endl;</p>
40、<p><b> do</b></p><p><b> {</b></p><p> cout<<"\t 請正確選擇:";</p><p><b> cin>>y;</b></p><p> }w
41、hile(y<1||y>4);</p><p><b> return y;</b></p><p><b> }</b></p><p> /*----------------------------------尾插法建表----------------------*/</p><p
42、> void creatlist(linklist *&l)</p><p><b> {</b></p><p> int i,m,n,j;</p><p> linklist *s,*r;</p><p> l=(linklist*)malloc(sizeof(linklist));//創(chuàng)建頭
43、結(jié)點</p><p> r=l; //r始終指向尾結(jié)點,開始時指向頭結(jié)點</p><p> cout<<"請輸入航班數(shù)目:"<<endl;</p><p><b> cin>>m;</b></p><p> cout<
44、<"請輸入航班信息"<<endl;</p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> s=(linklist *)malloc(sizeof(linklist));</p><p> s->data.wai
45、tno=0;//侯票的人數(shù)默認為0</p><p> cout<<"請輸入終點站名: ";</p><p> cin>>s->data.destination;</p><p> cout<<"請輸入航班號: ";</p><p> cin>>
46、;s->data.flight;</p><p> cout<<"請輸入飛機號: ";</p><p> cin>>s->data.num;</p><p> cout<<"請輸入飛行日期: ";</p><p> cin>>s->
47、;data.time;</p><p> cout<<"請輸入余票量: ";</p><p> cin>>s->data.odd;</p><p> cout<<"請輸入已訂客戶數(shù): ";</p><p><b> cin>>n
48、;</b></p><p> //s->data.sum=0;</p><p> for(j=0;j<n;j++)</p><p><b> {</b></p><p> cout<<"客戶姓名: ";</p><p> cin&g
49、t;>s->data.namelist[j].name1;</p><p> cout<<"客戶訂票量: ";</p><p> cin>>s->data.namelist[j].reserve;</p><p> s->data.sum=s->data.namelist[j].rese
50、rve;//修改航班的已訂票客戶人數(shù)</p><p><b> } </b></p><p> cout<<"乘員定額: "<<s->data.sum;</p><p> r->next=s;</p><p><b> r=s;</b>
51、</p><p><b> }</b></p><p> r->next=NULL;</p><p><b> }</b></p><p> /*--------------------------------按終點站名查找-------------------------------
52、---*/</p><p> void seek(linklist *l)</p><p><b> {</b></p><p> linklist *p=l->next;//p指向第1個數(shù)據(jù)結(jié)點</p><p> char x[maxsize];</p><p> cout<
53、;<"請輸入要要查找的站名: ";</p><p> cin>>x; </p><p> while(p!=NULL&&strcmp(p->data.destination,x)!=0) //當(dāng)查詢的終點站名不存在</p><p> p=p->next;</p>
54、<p><b> //i++;</b></p><p> if(p==NULL)</p><p> cout<<"該航班不存在!"<<endl;</p><p><b> else</b></p><p><b> {&l
55、t;/b></p><p> cout<<"該航班信息如下:"<<endl;</p><p> cout<<"航班號為: "<<p->data.flight<<endl; //輸出航班號</p><p> cout<<"飛機
56、號為: "<<p->data.num<<endl; //輸出飛機號</p><p> cout<<"飛行日期為: "<<p->data.time<<endl; //顯示飛行日期</p><p> cout<<"余票量為: "<<
57、p->data.odd<<endl; //顯示余票量</p><p><b> }</b></p><p><b> }</b></p><p> /*------------------------------------訂票管理------------------------------
58、----*/</p><p> void booking(linklist *l)</p><p><b> {</b></p><p> linklist *p=l->next; //p指向第一個數(shù)據(jù)元素</p><p> char d[50],m[20],t;int ticket,j=0;</p
59、><p> cout<<"請輸入終點站名: "<<endl;</p><p><b> cin>>d;</b></p><p> cout<<"您的姓名:"<<endl;</p><p><b> cin&g
60、t;>m;</b></p><p> cout<<"您所定票量: "<<endl;</p><p> cin>>ticket;</p><p> while(p!=NULL&&strcmp(p->data.destination,d)!=0)//根據(jù)終點站名查找訂票
61、航班</p><p> p=p->next;</p><p><b> if(p)</b></p><p><b> {</b></p><p> if(p->data.odd<ticket) //當(dāng)余票量不足,詢問是否排隊等候</p><p>&
62、lt;b> {</b></p><p> cout<<"sorry,余票量不足,您是否排隊等候? Y/N"<<endl;</p><p><b> cin>>t;</b></p><p> if(t=='Y'||t=='y')&l
63、t;/p><p><b> {</b></p><p> while(p->data.wait[j].necessary!=0) //判斷候補乘客數(shù)組是否為空</p><p><b> j++;</b></p><p> strcpy(p->data.wait[j].name,m)
64、; //將輸入的人的名字存放到候補乘客中</p><p> p->data.wait[j].necessary=ticket-p->data.odd; //候補乘客所需票量等于乘客所需票量減去余票量</p><p> p->data.odd=0;</p><p><b> }</b></p><p
65、><b> else</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
66、;<p> while(p->data.wait[j].necessary!=0) //判斷已定票客戶訂票量是否為0</p><p><b> j++;</b></p><p> strcpy(p->data.wait[j].name,m);</p><p> p->data.wait[j].neces
67、sary=ticket;//候補客戶所需票量等于用于自己輸入票量</p><p> p->data.odd-=ticket;//余票量等于先得余票量減去客戶訂的票數(shù)</p><p><b> }</b></p><p><b> }</b></p><p> cout<<&
68、quot;訂票成功!"<<endl;</p><p><b> }</b></p><p> /*------------------------------ 取消訂票------------------------------------*/</p><p> void cancel(linklist *&
69、l)</p><p><b> {</b></p><p> linklist *p=l->next;</p><p> char name2[20],time1[20],flight1[20];</p><p> int i=0,j;</p><p> cout<<&
70、quot;請輸入退票客戶信息: "<<endl;</p><p> cout<<"您的姓名: ";</p><p> cin>>name2;</p><p> cout<<"您的飛行日期:";</p><p> cin>>ti
71、me1;</p><p> while(p!=NULL&&strcmp(p->data.flight,flight1)!=0)//查找退票航班</p><p> p=p->next;</p><p><b> if(p)</b></p><p><b> {</b>
72、;</p><p> while(strcmp(p->data.namelist[i].name1,name2))//查找具體的退票乘客信息</p><p><b> i++;</b></p><p> for(;!p->data.namelist[i].name1;i++)//從該航班的已訂票數(shù)組中刪除此乘客</p&g
73、t;<p><b> {</b></p><p> strcpy(p->data.namelist[i].name1,p->data.namelist[i+1].name1);</p><p> p->data.namelist[i].reserve=p->data.namelist[i+1].reserve;//刪除前一名
74、已定客戶名單</p><p> p->data.odd+=p->data.sum;//修改余票量</p><p><b> }</b></p><p> if(p->data.wait[0].name)//判斷候票乘客數(shù)組是否為空</p><p> for(j=0;p->data.odd&
75、gt;p->data.wait[j].necessary;j++)</p><p><b> {</b></p><p> strcpy(p->data.namelist[i+j].name1,p->data.wait[j].name);//將候補客戶名單復(fù)制給已定客戶名單</p><p> p->data.nam
76、elist[i+j].reserve=p->data.wait[j].necessary;//已定客戶票量等于候補客戶所需票量</p><p><b> }</b></p><p><b> }</b></p><p> cout<<"退票成功!";</p><
77、;p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> linklist *l;</p><p><b> for(;;)</b></p><p><b>
78、 {</b></p><p> switch(menu())</p><p><b> {</b></p><p> case 1:creatlist(l);break;</p><p> case 2:seek(l);break;</p><p> case 3:booki
79、ng(l);break;</p><p> case 4:cancel(l);break;</p><p> case 5:exit(0);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</
80、b></p><p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計</b></p><p><b> 成績評定</b></p><p> 成績評定: (百分制)</p><p> 指導(dǎo)教師簽字:
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空客運訂票系統(tǒng)課程設(shè)計(數(shù)據(jù)結(jié)構(gòu))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航空客運訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)航空航班課程設(shè)計--航空客運訂票系統(tǒng)
- 航空客運訂票系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計源代碼
- 航空客運訂票系統(tǒng)課程設(shè)計報告
- 課程設(shè)計---航空客運訂票系統(tǒng)
- 航空客運訂票系統(tǒng)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)航空訂票系統(tǒng)課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)
- 課程設(shè)計報告-航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---飛機訂票系統(tǒng)設(shè)計與實現(xiàn)
- 航空訂票系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計-- 航空訂票管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
評論
0/150
提交評論