版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 設(shè)計(jì)目的………………………………………………………1</p><p> 總體設(shè)計(jì)………………………………………………………1</p><p> 詳細(xì)設(shè)計(jì)………………………………………………………3</p><p> 調(diào)試與測(cè)試…………………………
2、…………………………4</p><p> 源程序代碼……………………………………………4</p><p> 程序運(yùn)行截圖…………………………………………16</p><p> 仍存在的問(wèn)題…………………………………………18</p><p> 心得體會(huì)………………………………………………………18</p><p&g
3、t; 設(shè)計(jì)進(jìn)度表……………………………………………………19</p><p> 參考文獻(xiàn)………………………………………………………20</p><p><b> 正文</b></p><p><b> 設(shè)計(jì)目的:</b></p><p> 假定民航機(jī)場(chǎng)共有n個(gè)航班,每個(gè)航班有一航班號(hào)、確定
4、的航線(起始站、終點(diǎn)站)、確定的飛行時(shí)間(星期幾)和一定的成員訂額。設(shè)計(jì)一飛機(jī)訂票系統(tǒng),使之能提供下列服務(wù):</p><p> 1、航班信息錄入功能(航班信息用文件保存) </p><p> 包括航班號(hào)、起始站、終點(diǎn)站、機(jī)票總數(shù)、已售機(jī)票數(shù);</p><p> 2、航班信息瀏覽功能</p><p> 3、查詢航線:按航班號(hào)查詢、按終點(diǎn)
5、站查詢、按航線查詢</p><p> 4、承辦訂票和退票業(yè)務(wù)(可選項(xiàng))</p><p><b> 5、修改航班信息</b></p><p><b> 6、刪除航班信息</b></p><p><b> 總體設(shè)計(jì):</b></p><p> 編寫(xiě)
6、一個(gè)飛機(jī)訂票系統(tǒng)的程序,使該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)航班信息的錄入、瀏覽、查詢、修改、刪除以及訂票、退票的功能。根據(jù)題目要求,首先要制作一個(gè)主菜單顯示出各個(gè)操作的提示可供用戶選擇,進(jìn)而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進(jìn)一步編制具體操作的函數(shù),各個(gè)功能均用專(zhuān)門(mén)編制的函數(shù)來(lái)完成。這就是看到題目后的最初的思路。</p><p> 因?yàn)轱w機(jī)票管理系統(tǒng)含有各航班的各項(xiàng)信息,如航班號(hào)、航線、飛行時(shí)間、機(jī)票數(shù)目等必要信息,綜合考慮
7、決定用結(jié)構(gòu)體數(shù)組比較合適,根據(jù)題目要求定義如下結(jié)構(gòu)體類(lèi)型:</p><p> 頭文件包含、全局變量定義和結(jié)構(gòu)體定義源代碼:</p><p> #include<stdio.h>//標(biāo)準(zhǔn)輸入、輸出頭文件</p><p> #include<string.h>//包含字符串函數(shù)處理頭文件</p><p> #inc
8、lude<stdlib.h></p><p> #define N 1000 //定義最多的航班數(shù)</p><p> #define PRT "%-d%12s %12s %10s %12d %12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].selled /
9、/定義輸出格式</p><p> #define LB " 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(shù) 已售票數(shù) \n"//定義打印列表格式</p><p> struct air</p><p><b> {int num;</b></p&
10、gt;<p> char start[20];</p><p> char over[20];</p><p> char time[10];</p><p> int count;//機(jī)票總數(shù)</p><p> int selled;//已預(yù)定機(jī)票總數(shù)</p><p><b> }
11、s[N];</b></p><p> int i,m=0;//定義全局變量,記錄下航班信息的數(shù)量</p><p> char ii[10];//用來(lái)選擇是否繼續(xù)的變量</p><p><b> 大概思路就是這樣!</b></p><p> 詳細(xì)設(shè)計(jì)(定義的每個(gè)函數(shù)均作介紹):</p
12、><p> 初始化界面函數(shù)(face函數(shù))</p><p> 在程序開(kāi)始執(zhí)行時(shí)調(diào)用該函數(shù),在屏幕上打印出初始界面!并選擇要執(zhí)行的操作!</p><p> 2)信息輸入函數(shù)(input函數(shù))</p><p> 該函數(shù)里面調(diào)用for循環(huán)控制,該函數(shù)中用到一個(gè)全局變量k,用來(lái)控制該函數(shù)被再次調(diào)用時(shí)可以在已存放信息結(jié)構(gòu)體后面繼續(xù)輸入數(shù)據(jù),每當(dāng)一個(gè)
13、完整的航班信息輸入完畢后,會(huì)提示是否輸入下一個(gè)信息!按"0"j結(jié)束輸入!然后調(diào)用下面要介紹的信息保存函數(shù)(save函數(shù))!保存完畢后退回到主菜單!</p><p> 信息保存函數(shù)(save函數(shù))</p><p> 由于本程序設(shè)計(jì)時(shí)當(dāng)輸入機(jī)票總數(shù)不是正數(shù)時(shí)就會(huì)結(jié)束保存航班信息,所以進(jìn)入save函數(shù)時(shí)首先判斷機(jī)票總數(shù)是否大于0,大于0時(shí)候開(kāi)始進(jìn)入主體部分執(zhí)行!主要過(guò)程是
14、先打開(kāi)文件,文件打開(kāi)成功后調(diào)用文件格式輸出函數(shù)(fprinf函數(shù))將信息保存到文件中區(qū)!</p><p> 文件讀取函數(shù)(read函數(shù))</p><p> 該函數(shù)首先打開(kāi)保存飛機(jī)票信息的文件,然后將保存的信息寫(xiě)到飛機(jī)信息的結(jié)構(gòu)體數(shù)組里面去(調(diào)用格式輸入函數(shù)fscanf),并將航班信息輸出到屏幕上!輸入完畢后關(guān)閉文件!</p><p> 信息打印函數(shù)(print
15、函數(shù))</p><p> 該函數(shù)只是負(fù)責(zé)把調(diào)用read函數(shù),并打印出航班信息輸出事的一些輔助信息!</p><p> 6)航班信息查找函數(shù)</p><p> 本函數(shù)用do.....while 循環(huán)控制結(jié)構(gòu),進(jìn)入函數(shù)后選擇查詢方式(可以按航班號(hào)、終點(diǎn)站、航線查詢),方式選擇后用switch語(yǔ)句飛機(jī)的航班號(hào)(或者起始站、終點(diǎn)站)!從switch語(yǔ)句出來(lái)后,首先調(diào)用
16、文件讀取函數(shù)(read函數(shù)),輸出所有航班信息到屏幕上,然后在if語(yǔ)句中判斷剛才所輸入飛機(jī)的航班號(hào)(或者起始站、終點(diǎn)站)與數(shù)組中那個(gè)航班信息符合,找到后打印出來(lái)!循環(huán)結(jié)束后,輸入“yes”(“no”),while判斷輸入的條件繼續(xù)(終止查找)!選擇終止查找后返回主菜單!</p><p> 7)航班信息刪除函數(shù)(Delete)</p><p> 航班刪除模塊與查找函數(shù)類(lèi)似,也是用的do.
17、....while 循環(huán)控制結(jié)構(gòu),不同時(shí)要先輸入密碼才能進(jìn)入函數(shù)!進(jìn)入函數(shù)后要選擇刪除方式(按航班號(hào)、航線)刪除,輸入要?jiǎng)h除的航班號(hào)(航線)后,比如說(shuō)選擇按航班號(hào)刪除,找到要?jiǎng)h除的航班數(shù)組下標(biāo)i后,用for(int j=i;j<m;j++) { s[j]=s[j+1]; }方式實(shí)現(xiàn)刪除,</p><p> 刪除完畢后打印出刪除過(guò)的航班信息列表,然后選擇“no”結(jié)束該函數(shù),返回到主菜單!&l
18、t;/p><p> 訂票函數(shù)(Book函數(shù))</p><p> 首先調(diào)用查詢函數(shù)(search函數(shù)),找到要預(yù)訂機(jī)票的航班,然后輸入要頂?shù)臋C(jī)票數(shù)目,根據(jù)輸入的機(jī)票書(shū)修改已售機(jī)票書(shū)數(shù)值!然后保存信息!</p><p> 退票函數(shù)(Refund()函數(shù)</p><p> 與訂票函數(shù)類(lèi)似,首先調(diào)用查詢函數(shù)(search函數(shù)),找到要預(yù)訂機(jī)票的航
19、班,然后輸入要退的機(jī)票數(shù)目,根據(jù)輸入的機(jī)票書(shū)修改已售機(jī)票書(shū)數(shù)值!然后保存信息!</p><p> 修改函數(shù)(Modify函數(shù))</p><p> 該函數(shù)與輸入函數(shù)類(lèi)似,把數(shù)組里面的信息重新輸入一遍達(dá)到修改航班信息的功能!</p><p><b> main函數(shù)</b></p><p> 輸入密碼后進(jìn)入main函數(shù)
20、,然后main函數(shù)負(fù)責(zé)調(diào)用以上程序就行了!</p><p><b> 源程序代碼:</b></p><p> #include<stdio.h></p><p> #include<string.h></p><p> #include<stdlib.h></p>
21、<p> #define N 200</p><p> struct air</p><p><b> {int num;</b></p><p> char start[20];</p><p> char over[20];</p><p> char time[10]
22、;</p><p> int count;//機(jī)票總數(shù)</p><p> int selled;//已預(yù)定機(jī)票總數(shù)</p><p><b> }s[N];</b></p><p> #define PRT "%-d%12s %12s %10s %12d %12d\n",s[i]
23、.num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].selled //定義輸出格式</p><p> #define LB " 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(shù) 已售票數(shù) \n"//定義打印列表格式</p><p> void fa
24、ce();</p><p> void input();</p><p> void print();</p><p> void search();</p><p> void Delete();</p><p> void Booking();</p><p> void Mod
25、ify();</p><p> void Refund();</p><p> void save();</p><p> void read();</p><p> int i,m=0,k=0;</p><p> void face()</p><p> {system("
26、;color 0E");</p><p> puts(" ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"); </p><p> puts(" ★* 飛機(jī)票管理系統(tǒng)歡迎您
27、 *★");</p><p> puts(" ★********************************************************★");</p><p> puts(" ★* 你可以選擇下面的操作: *★"
28、;);</p><p> puts(" ★* 1.輸入航班信息 *★");</p><p> puts(" ★* 2.瀏覽航班信息 *★");</p&
29、gt;<p> puts(" ★* 3.查詢航班信息 *★");</p><p> puts(" ★* 4.刪除航班信息 *★");</p><p
30、> puts(" ★* 5.訂票信息 *★");</p><p> puts(" ★* 6.修改信息 *★");</p><p>
31、puts(" ★* 7.退票信息 *★");</p><p> puts(" ★* 0.退出 *★");</p><p> puts
32、(" ★********************************************************★");</p><p> puts(" ★* 制作人:##### 學(xué)號(hào):111111111111 *★");</p><p> puts(&qu
33、ot; ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★");</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> //delay(1000);</p>
34、<p> system("color a0");//設(shè)置背景和字體顏色</p><p> //system("color 100");//yanse</p><p><b> int j;</b></p><p> char f[]="1111111111";
35、 //設(shè)置密碼</p><p><b> int y;</b></p><p> printf(" 飛 機(jī) 票 管 理 系 統(tǒng)\n\n");</p><p><b> while(1){</b></p><p> p
36、rintf(" 請(qǐng) 輸 入 密 碼 進(jìn) 入 系 統(tǒng):\n ");</p><p> scanf("%s",f); //讀取密碼</p><p> if(strcmp(f,"1111111111")==0)</p><p><b&
37、gt; {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> system("cls");</p><p><b> face();</b></p>&l
38、t;p> printf("請(qǐng)?jiān)?-7中選擇以回車(chē)鍵結(jié)束: ");</p><p> scanf("%d",&j);</p><p> system("cls");</p><p><b> switch(j)</b></p><p><
39、;b> {</b></p><p> case 1: input();//調(diào)用輸入模塊</p><p><b> break;</b></p><p> case 2:print();//調(diào)用打印模塊</p><p><b> break;</b></p>
40、<p> case 3:search();//調(diào)用查詢模塊</p><p><b> break;</b></p><p> case 4:Delete();//調(diào)用刪除模塊</p><p><b> break;</b></p><p> case 5:Booking();//
41、調(diào)用訂票模塊</p><p><b> break;</b></p><p> case 6:Modify();//調(diào)用修改模塊</p><p><b> break;</b></p><p> case 7:Refund();//調(diào)用退票模塊</p><p><
42、;b> break;</b></p><p> case 0:goto end;</p><p><b> }</b></p><p> printf("\n按任意鍵繼續(xù)......");</p><p><b> }</b></p>&
43、lt;p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> int yy;</b></p><p> printf("
44、 輸入密碼錯(cuò)誤!請(qǐng)檢查您的密碼是否正確! \n\n");</p><p> printf(" 是否繼續(xù)輸密碼?按任意鍵繼續(xù),0結(jié)束!\n",m);</p><p> scanf("%d",&y);//在此需輸入任意一個(gè)整數(shù)值數(shù)值,程序才能繼續(xù)執(zhí)行</p><
45、p><b> if(y==0)</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> end:printf("
46、 (=^ ^=) 歡 迎 再 次 回 來(lái) (=^ ^=)\n");</p><p> printf(" 任意鍵退出系統(tǒng)!\n");</p><p><b> int hp2;</b></p><p> scanf("%d&
47、quot;,&hp2);</p><p><b> }</b></p><p> void input()</p><p><b> {</b></p><p> system("color 8f");</p><p> printf(&
48、quot;請(qǐng)依次輸入航班信息(機(jī)票總數(shù)為0結(jié)束輸入): "</p><p> "完成輸入信息請(qǐng)鍵入w以回車(chē)鍵結(jié)束 \n"); //打印提示信息</p><p> printf("-------------------------------------------------------------------------- \n&qu
49、ot;);</p><p><b> int y;</b></p><p> for(i=k;i<N;i++)</p><p><b> {</b></p><p> printf("請(qǐng)輸入航班號(hào): "); </p><p> scanf
50、("%d",&s[i].num); //讀取航班號(hào)</p><p> printf("請(qǐng)輸入起始站: ");</p><p> scanf("%s",s[i].start);//讀取起始站</p><p> printf("請(qǐng)輸入終點(diǎn)站: ");</p>
51、<p> scanf("%s",s[i].over);//讀取終點(diǎn)站</p><p> printf("請(qǐng)輸入時(shí)間(星期): ");</p><p> scanf("%s",s[i].time);//讀取時(shí)間</p><p> printf("請(qǐng)輸入總機(jī)票數(shù)(0結(jié)束): &q
52、uot;);</p><p> scanf("%d",&s[i].count);//讀取機(jī)票數(shù)</p><p> printf("請(qǐng)輸入已售機(jī)票數(shù): ");</p><p> scanf("%d",&s[i].selled);//讀取機(jī)票數(shù)</p><p>
53、m++;//飛機(jī)信息錄入計(jì)數(shù)</p><p><b> k++;</b></p><p> printf(" 第%d個(gè)信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù)(0結(jié)束)\n",m);</p><p> scanf("%d",&y);//在此需輸入任意一個(gè)整數(shù)值數(shù)值,程
54、序才能繼續(xù)執(zhí)行</p><p><b> if(y==0)</b></p><p><b> {</b></p><p> save();//保持輸入數(shù)據(jù)</p><p><b> break;</b></p><p><b> }&
55、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p> void save()//保存模塊程序</p><p><b> { </b></p><p> if(s[0].count&g
56、t;0)</p><p><b> {</b></p><p> system("color 78"); </p><p> FILE *fp;//定義文件指針</p><p> if((fp=fopen("D:\\飛機(jī)票系統(tǒng)數(shù)據(jù)保存.txt","w+"
57、))==NULL)//打開(kāi)文件并判斷是否出錯(cuò) </p><p><b> {</b></p><p> printf("文件打開(kāi)失敗! ");//打印出錯(cuò)提示</p><p><b> }</b></p><p><b> else</b><
58、/p><p><b> {</b></p><p> fprintf( fp,LB);</p><p> fprintf( fp,"============================================================\n ");</p><p> for(i
59、=0;i<m&&s[i].count>0;i++)</p><p><b> {</b></p><p> fprintf(fp,PRT);</p><p><b> }</b></p><p><b> }</b></p>&
60、lt;p> fclose(fp);//關(guān)閉文件</p><p><b> int hp;</b></p><p> printf(" 信息保存到文件成功!任意鍵返回主菜單!\n\n");</p><p> scanf("%d",&hp);&l
61、t;/p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> int k;</b></p><p> printf("飛機(jī)票總數(shù)為
62、零!輸入結(jié)束!\n");</p><p> printf(" 任意鍵返回主菜單!\n\n");</p><p> scanf("%d",&k);</p><p><b> }</b></p><p>&
63、lt;b> }</b></p><p> void read()//從文件讀取信息模塊</p><p><b> {</b></p><p> system("color E0");</p><p> FILE *fp;//定義文件指針</p><p&g
64、t; if((fp=fopen("D://飛機(jī)票系統(tǒng)數(shù)據(jù)保存.txt","r"))==NULL)//打開(kāi)文件,并判斷是否出錯(cuò)</p><p> printf("創(chuàng)建文件失敗! ");//打印出錯(cuò)提示</p><p><b> else</b></p><p> for(i=0;
65、i<m;i++)</p><p><b> {</b></p><p> fscanf(fp,"%-d%12s%12s%10s%12d%12d\n ",&s[i].num,s[i].start,s[i].over,s[i].time,&s[i].count,&s[i].selled );</p>&l
66、t;p> printf(PRT);</p><p><b> }</b></p><p> fclose(fp);//關(guān)閉文件</p><p><b> }</b></p><p> void print()//打印模塊</p><p><b>
67、{</b></p><p> system("color 97");</p><p> char w[10]; </p><p> printf("\n 所有航班信息如下\n");</p><p> printf(LB);&
68、lt;/p><p> read();//調(diào)用讀取文件函數(shù)</p><p> printf("\n\n 按任意鍵回車(chē)鍵結(jié)束返回上層菜單: \n\n");</p><p> scanf("%s",w);</p><p><b> }</b>
69、;</p><p> void search()//查詢模塊</p><p><b> {</b></p><p> system("color 5E");</p><p> char name1[20];</p><p> char name2[20];</p
70、><p> char ii[10];</p><p> int n,no,flag=0;</p><p><b> do</b></p><p><b> {</b></p><p> printf("請(qǐng)選擇查找方式:\n ");//打印查詢方式菜單
71、</p><p> printf("1.按航班號(hào)查找\n "</p><p> "2.按終點(diǎn)站查找\n "</p><p> "3.按航線查找 \n"</p><p> " 0.返回 \n");</p><p> printf(&
72、quot;請(qǐng)?jiān)?-3中選擇:\n "</p><p> "\n\n 按其他鍵以回車(chē)鍵結(jié)束返回主菜單:\n ");</p><p> scanf("%d",&n);//讀取查找方式</p><p><b> if(n==0)</b></
73、p><p><b> break;</b></p><p><b> switch(n)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> printf(&quo
74、t;請(qǐng)輸入航班號(hào): ");</p><p> scanf("%d",&no);//航班號(hào)</p><p><b> break;</b></p><p><b> case 2:</b></p><p> printf("請(qǐng)輸入終點(diǎn)站名稱: &
75、quot;);</p><p> scanf("%s",name2);//讀取終點(diǎn)站</p><p><b> break;</b></p><p><b> case 3:</b></p><p> printf("請(qǐng)輸入起始站名稱: ");<
76、/p><p> scanf("%s",name1);//讀取起始站</p><p> printf("請(qǐng)輸入終點(diǎn)站名稱: ");</p><p> scanf("%s",name2);//終點(diǎn)站</p><p><b> break;</b></p&g
77、t;<p><b> default:</b></p><p><b> break;</b></p><p><b> }</b></p><p> printf("\n 已經(jīng)存在的航班如下\n\n"
78、);</p><p> printf(LB);</p><p> read();//調(diào)用讀取函數(shù)</p><p> for(i=0;i<m;i++)</p><p><b> { </b></p><p> if(strcmp(s[i].over,name1)==0&
79、&strcmp(s[i].over,name2)==0)//按終點(diǎn)站起始站判斷輸出條件</p><p><b> {</b></p><p> //printf("\n 查找航班信息成功!\n\n");</p><p> printf("\n
80、 下面是你要查找的航班信息\n\n ");</p><p><b> flag=1;</b></p><p> printf(LB);</p><p> printf(PRT);//打印信息</p><p><b> break;</b></p>
81、;<p><b> }</b></p><p> if(strcmp(s[i].over,name2)==0)</p><p><b> {</b></p><p> printf("\n 下面是你要查找的航班信息\n\n "
82、;);</p><p><b> flag=1;</b></p><p> printf(LB);</p><p> printf(PRT);//打印信息</p><p><b> break;</b></p><p><b> }</b>&l
83、t;/p><p> if(s[i].num==no)//按航班號(hào)判斷輸出條件</p><p><b> { </b></p><p> printf("\n 下面是你要查找的航班信息\n\n ");</p><p><b> f
84、lag=1;</b></p><p> printf(LB);</p><p> printf(PRT);//打印信息</p><p><b> break;</b></p><p><b> } </b></p><p><b> }<
85、/b></p><p> no=0;//將航班號(hào)賦值為0</p><p><b> if(flag)</b></p><p> {printf("\n 您需要的信息查找完畢:\n "</p><p> "
86、 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n ");</p><p> scanf("%s",ii);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b
87、></p><p> printf("\n 沒(méi)有您需要的信息:\n "</p><p> " 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n ");</p><p> scanf("%s",ii)
88、;</p><p><b> }</b></p><p><b> }</b></p><p> while(strcmp(ii,"yes")==0);//判斷結(jié)束</p><p> while(strcmp(ii,"no")==0)</p>
89、;<p><b> break;</b></p><p><b> }</b></p><p> void Delete()//刪除模塊</p><p><b> {</b></p><p> system("color 1E");&
90、lt;/p><p> char name1[20];</p><p> char name2[20];</p><p> char ii[10];</p><p> char f[]="2010146104";//設(shè)置密碼</p><p> int no,n,flag=0; </p>
91、;<p> printf("請(qǐng)輸入密碼并以回車(chē)鍵結(jié)束: \n");</p><p> scanf("%s",f);//讀取密碼</p><p> if(strcmp(f,"2010146104")==0) //判斷密碼是否正確</p><p><b> {</b&
92、gt;</p><p><b> do </b></p><p><b> {</b></p><p> printf("請(qǐng)選擇刪除以方式回車(chē)鍵結(jié)束:\n ");//打印刪除方式菜單</p><p> printf("*1.按航班號(hào)刪除 \n"<
93、/p><p> " *2.按航線刪除\n "</p><p> "*0.返回\n ");</p><p> printf("\n\n 請(qǐng)?jiān)?-2中選擇以回車(chē)鍵結(jié)束: \n");</p><p> scanf("%d&quo
94、t;,&n);//讀取刪除方式</p><p><b> if(n==0)</b></p><p> break; //跳出循環(huán)</p><p><b> switch(n)</b></p><p><b> {</b></p><p&
95、gt;<b> case 1:</b></p><p> printf("請(qǐng)輸入航班號(hào): ");</p><p> scanf("%d",&no);//讀取航班號(hào)</p><p> printf("\n 已經(jīng)存在的航班如下
96、\n\n");</p><p> read();//調(diào)用讀取函數(shù)</p><p> break;//跳出循環(huán)</p><p><b> case 2:</b></p><p> printf("請(qǐng)輸入起始站 名稱: "); </p><p> scanf(&
97、quot;%s",name1);//讀取起始站</p><p> printf("請(qǐng)輸入終點(diǎn)站名稱: ");</p><p> scanf("%s",name2);//讀取終點(diǎn)站</p><p> printf("\n 已經(jīng)存在的航班如下\n\
98、n");</p><p> read();//調(diào)用讀取函數(shù)</p><p> break;//跳出循環(huán)</p><p><b> }</b></p><p> printf("\n 刪除后的航班如下\n\n");//</
99、p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> if(s[i].num==no)//按航班號(hào)刪除</p><p><b> {</b></p><p> printf(LB);</p><
100、p><b> flag=1;</b></p><p> for(int j=i;j<m;j++)</p><p><b> {</b></p><p> s[j]=s[j+1]; </p><p><b> }</b></p><p&g
101、t;<b> m--;</b></p><p> for(int i=0;i<m;i++)</p><p><b> {</b></p><p> printf(PRT);</p><p><b> }</b></p><p><b
102、> }</b></p><p> if(strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)</p><p><b> {</b></p><p><b> flag=1;</b></p><p>
103、 printf(LB);</p><p> for(int k=i;k<m;k++)</p><p><b> {</b></p><p> s[k]=s[k+1]; </p><p><b> }</b></p><p><b> m--;&
104、lt;/b></p><p> for(int i=0;i<m;i++)</p><p><b> {</b></p><p> printf(PRT);</p><p><b> }</b></p><p><b> }</b>&
105、lt;/p><p><b> }</b></p><p><b> if(flag)</b></p><p> {printf("\n 您需要的信息查找完畢:\n "</p><p> "
106、 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n ");</p><p> scanf("%s",ii);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b&g
107、t;</p><p> printf("\n 沒(méi)有您需要的信息:\n "</p><p> " 是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束\n ");</p><p> scanf("%s",ii);&
108、lt;/p><p><b> }</b></p><p><b> }</b></p><p> while(strcmp(ii,"yes")==0); //判斷結(jié)束</p><p> while(strcmp(ii,"no")==0)</p>
109、;<p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("\n 對(duì)不起密碼錯(cuò)誤!您不是管理員,不能使用此項(xiàng)功能!\n ");&l
110、t;/p><p><b> int q;</b></p><p> scanf("%d",&q);</p><p><b> }</b></p><p> void Booking()//訂票模塊</p><p><b> {<
111、;/b></p><p> system("color 0E");</p><p><b> int n;</b></p><p> char a[10];</p><p><b> do</b></p><p><b> {&l
112、t;/b></p><p> search();//調(diào)用查詢模塊</p><p> printf("請(qǐng)輸入您要訂的機(jī)票數(shù)以回車(chē)鍵結(jié)束:\n ");</p><p> scanf("%d",&n);//讀取所訂機(jī)票數(shù)</p><p> if(n<0||s[i].count<
113、;n)</p><p><b> {</b></p><p> printf("請(qǐng)輸入有效的機(jī)票數(shù)! ");//判斷機(jī)票數(shù)是否出錯(cuò)</p><p><b> }</b></p><p> if(s[i].count!=0&&s[i].count>=n
114、)//判斷是否出錯(cuò)</p><p><b> {</b></p><p> s[i].selled=s[i].selled+n;</p><p> save();//調(diào)用保存函數(shù)</p><p> printf("訂票成功!\n\n ");</p><p><b&
115、gt; }</b></p><p> printf(" 是否繼續(xù)? 請(qǐng)輸入yes或no以回車(chē)鍵結(jié)束: \n");//判斷是否繼續(xù)訂票</p><p> scanf("%s",a);</p><p> }while(!strcmp(a,"yes"));/
116、/判斷結(jié)束</p><p> while(!strcmp(a,"no"))</p><p> break;//判斷結(jié)束</p><p><b> }</b></p><p> void Refund()//退票模塊</p><p><b> {</b&
117、gt;</p><p> system("color F0");</p><p><b> int n;</b></p><p> char a[10];</p><p><b> do</b></p><p><b> {</b
118、></p><p> search();//調(diào)用查詢模塊</p><p> printf("請(qǐng)輸入您要退的機(jī)票數(shù)目: ");</p><p> scanf("%d",&n);//輸入所退票數(shù)</p><p> if(n<0) //判斷票數(shù)是否有效</p><
119、;p> printf("請(qǐng)輸入有效的機(jī)票數(shù)! ");</p><p><b> else{</b></p><p> s[i].selled=s[i].selled-n;</p><p> save(); //調(diào)用保存模塊</p><p> printf("退票成功! &qu
120、ot;);</p><p><b> }</b></p><p> printf("是否繼續(xù)? 請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束: ");//判斷是否繼續(xù)退票</p><p> scanf("%s",a);</p><p> }while(!strcmp(a,"ye
121、s"));//判斷并跳出循環(huán)</p><p><b> }</b></p><p> void Modify() //修改模塊</p><p><b> {</b></p><p> system("color 4E");</p><p&
122、gt; struct modify //定義結(jié)構(gòu)體 </p><p><b> {</b></p><p><b> int mo;</b></p><p> char start1[20];</p><p> char over1[20];</p><p>
123、 char time1[20];</p><p> int count1;</p><p> int selled1;</p><p><b> }M[1];</b></p><p> char j[10];</p><p> char f[]="2010146104&quo
124、t;;//設(shè)置密碼</p><p><b> int n;</b></p><p> printf("請(qǐng)輸入密碼并以回車(chē)鍵結(jié)束: ");</p><p> scanf("%s",f);//讀取密碼</p><p> if(strcmp(f,"2010146104&
125、quot;)==0)//判斷是否出錯(cuò)</p><p><b> {</b></p><p> printf(LB);</p><p> read();//調(diào)用讀取模塊</p><p><b> do</b></p><p><b> {</b>
126、</p><p> printf( "請(qǐng)選擇修改方式:\n "</p><p> "*1:按航班號(hào)修改: \n"</p><p> " *2:按航線修改:\n ");</p><p> printf("請(qǐng)?jiān)?---2中修改以回車(chē)鍵結(jié)束: \n");<
127、/p><p> scanf("%d",&n);//讀取修改方式</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1:printf("請(qǐng)輸入航班號(hào): ");</p>
128、<p> scanf("%d",&M[0].mo);//讀取航班號(hào)</p><p><b> break;</b></p><p> case 2:printf("請(qǐng)輸入起始站: ");</p><p> scanf("%s",M[0].start1);//
129、讀取起始站</p><p> printf("請(qǐng)輸入終點(diǎn)站: ");</p><p> scanf("%s",M[0].over1);//讀取終點(diǎn)站</p><p><b> break;</b></p><p><b> }</b></p>
130、;<p> for(int i=0;i<m;i++)</p><p><b> { </b></p><p> if(strcmp(s[i].start,M[0].start1)==0&&strcmp(s[i].over,M[0].over1)==0)//判斷輸出條件</p><p><b&
131、gt; {</b></p><p> printf(" 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(shù) 已售票數(shù) \n");</p><p> printf(PRT);</p><p><b> break;</b></p>&
132、lt;p><b> }</b></p><p> if(s[i].num==M[0].mo)//判斷輸出條件</p><p><b> { </b></p><p> printf(" 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(shù)
133、已售票數(shù) \n");</p><p> printf(PRT);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> M[0].mo=0;
134、 //將結(jié)構(gòu)體中的號(hào)為零</p><p> printf("\n 請(qǐng)輸入新航班號(hào)、起始站、終點(diǎn)站、時(shí)間(星期幾)、機(jī)票總數(shù)、已售票數(shù):\n ");</p><p> printf(" 航班號(hào) 起始站 終點(diǎn)站 時(shí) 間 機(jī)票總數(shù) 已售票數(shù) \n");&
135、lt;/p><p> scanf("%d\t%s\t%s\t%s\t%d%d",&M[0].mo,M[0].start1,M[0].over1,M[0].time1,&M[0].count1,&M[0].selled1); //定義輸入格式</p><p> s[i].num=M[0].mo;//替換航班號(hào)</p><p&g
136、t; strcpy(s[i].start,M[0].start1);//替換其始站</p><p> strcpy(s[i].over,M[0].over1);//替換終點(diǎn)站</p><p> strcpy(s[i].time,M[0].time1);//替換時(shí)間</p><p> s[i].count=M[0].count1;//替換機(jī)票數(shù)</p&g
137、t;<p> s[i].selled=M[0].selled1;//替換機(jī)票數(shù)</p><p> save();//調(diào)用保存模塊</p><p> printf("是否繼續(xù)?請(qǐng)鍵入yes或no以回車(chē)鍵結(jié)束:\n ");</p><p> scanf("%s",j);</p><p>
138、; }while(strcmp(j,"yes")==0||strcmp(j,"no")==0); //判斷結(jié)束</p><p><b> }</b></p><p><b> else</b></p><p> printf("\n
139、 對(duì)不起密碼錯(cuò)誤!您不是管理員,不能使用此項(xiàng)功能!\n\n ");</p><p><b> int q;</b></p><p> scanf("%d",&q);</p><p><b> }</b></p><p> 以上即為我的源程代碼。</
140、p><p><b> 執(zhí)行結(jié)果:</b></p><p> 程序最終運(yùn)行情況如所貼圖表。</p><p> 第一次運(yùn)行程序(輸入初始數(shù)據(jù))</p><p> 首次進(jìn)入程序要求輸入密碼方能進(jìn)入系統(tǒng)!密碼錯(cuò)誤后可以選擇是否繼續(xù)輸入密碼!進(jìn)入成功后!界面提示輸入原始數(shù)據(jù):選擇操作1→請(qǐng)輸入航班號(hào)→請(qǐng)輸入起始站→請(qǐng)輸入終點(diǎn)站
141、→請(qǐng)輸入飛行時(shí)間→請(qǐng)輸入機(jī)票數(shù)→請(qǐng)輸入已售機(jī)票數(shù)。我按照提示一次輸入了4個(gè)航班信息后按提示輸入“0”則不再繼續(xù)輸入,系統(tǒng)顯示出了主菜單界面。接著按0退出程序,顯示“歡迎再次回來(lái)!?!?lt;/p><p> 圖表 1—主菜單界面</p><p><b> 航班信息的瀏覽</b></p><p> 退到主菜單后在提示中輸入“2” →瀏覽航班信息。
142、輸出如下航班信息(如圖表2)!</p><p> 圖表 2—顯示航班信息</p><p><b> 查詢航班信息</b></p><p> 在主菜單界面輸入3→選擇查詢方式1→輸入“20101461” →顯示出所查找的信息(如圖表3)</p><p> 圖表 3—查詢航班信息</p><p&g
143、t;<b> 航班刪除</b></p><p> 在主菜單界面輸入4→按照提示輸入“2”(按航班號(hào)從大到小排序)→顯示出排序后的航班信息(如圖表4)</p><p><b> 圖表 4—航班排序</b></p><p><b> 訂票業(yè)務(wù)</b></p><p> 在
144、主菜單輸入5→提示輸入航班號(hào)→選擇查詢方式1→輸入航班號(hào)20101462→顯示出已有航班信息和查找的航班信息→輸入“no”結(jié)束查詢進(jìn)入訂票選擇并提示輸入訂票數(shù):輸入3→“訂票成功” (如圖表5)</p><p> 圖表 5—訂票業(yè)務(wù)1</p><p><b> 仍存在的問(wèn)題:</b></p><p> 系統(tǒng)中有的地方并不完善,有的地方存在
145、漏洞,程序中過(guò)多的使用宏定義的字符,是程序在有的地方不夠直觀!</p><p><b> 心得體會(huì):</b></p><p> 通過(guò)這次課程設(shè)計(jì),使我了解到自己對(duì)知識(shí)的掌握和綜合運(yùn)用情況,養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的程序設(shè)計(jì)習(xí)慣,也使我認(rèn)識(shí)到自己的知識(shí)缺陷。雖然在設(shè)計(jì)的時(shí)候遇到過(guò)很多問(wèn)題,但都一一克服了。學(xué)到了要運(yùn)用綜合知識(shí)來(lái)分析、解決實(shí)際問(wèn)題。這也提高了自己對(duì)學(xué)習(xí)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)說(shuō)明書(shū)
- c語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---飛機(jī)訂票系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--飛機(jī)訂票系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)
- c語(yǔ)言飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
- 飛機(jī)訂票系統(tǒng)c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)
- c課程設(shè)計(jì)報(bào)告飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---民航飛機(jī)票訂票系統(tǒng)設(shè)計(jì)
- c語(yǔ)言飛機(jī)訂票系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告--飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---飛機(jī)訂票系統(tǒng)
- 軟件課程設(shè)計(jì)--c語(yǔ)言程序之飛機(jī)票訂票系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---飛機(jī)訂票系統(tǒng)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論