




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、設計題目航空訂票系統任務:航空客運定票的業務活動包括:查詢航線、客票預定和辦理退票等。試設計一個航空客運定票系統,以使上述業務可以借助計算機來完成。功能要求:(1)錄入:可以錄入航班情況(2)查詢:可以查詢某個航線的情況(如輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;( 3)訂票: (訂票情況可以存在一個數據文件中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班;(4)退票:可退票,退票后修改相關數據文件;(5)客戶資料:有姓名,證件號,訂票數量及航班情況,訂單要有編號;(6)修改航班信息:當航班信
2、息改變可以修改航班數據文件。需求分析本演示程序中,由用戶錄入或修改航班情況,進行查詢,預定及辦理退票等業務,用戶在菜單中進行各個不同功能的選擇,有“輸入航班信息”、 “列出航班“按出發到達城市查詢航班信息”信息” 、 “按航班號查詢航班信息”“退票” 、 “修改航班信息”、 “退出程序”八個功能。概要設計typedef structdouble number;/ 訂單編號char name20;/ 姓名char id20;/ 身份證號int count;/ 數量char p20;/ 航班號GUEST;typedef structchar num20;/ 航班號char depart30;/ 出
3、發城市char arrive30;/ 到達城市char start20;/ 起飛時間char end20;/ 到達時間int price;/ 價格int discount;/ 折扣率(%)int total;/ 總票數int rest;/ 剩余票數int t;/訂單數GUEST guest20;/ 乘客PLANE;PLANE plane20;int n;/n 為航班數void inputplane()/ 輸入航班void list()/ 顯示void search1()/ 按航班號查詢void search2()/ 按起飛抵達城市查詢void book()/ 訂票void quit()/ 退票
4、void change()/ 修改程序調用關系如下:開始12345678輸入航班信息列出航班信息按航班號查詢航班信息按出發到達城市查詢航班信息訂票退票 修改航班 退出信息詳細設計#include<stdio.h> #include<stdlib.h> #include<string.h>typedef structdouble number;/訂單編號char name20;/ 姓名 char id20;/ 身份證號 int count;/ 數量 char p20;/ 航班號 GUEST;typedef structchar num20;/ 航班號char
5、depart30;/出發城市char arrive30;/ 到達城市char start20;/ 起飛時間char end20;/ 到達時間int price;/ 價格int discount;/ 折扣率(%)int total;/ 總票數int rest;/ 剩余票數int t;/ 訂單數GUEST guest20;/ 乘客PLANE;PLANE plane20;int n;/n 為航班數void inputplane()/ 輸入航班int i;printf(" 輸入總航班數:");scanf("%d",&n);printf(" 輸入
6、航班信息:n");printf(" 航班號出發城市到達城市起飛時間到達時間價格 折扣率總票數剩余票數n");for(i=0;i<n;i+)scanf("%s %s %s %s %s %d %d %d %d",planei.num,planei.depart,planei.arrive,planei.s tart,planei.end,&planei.price,&planei.discount,&planei.total,&planei.rest);void list()/ 顯示int i;printf(&
7、quot; 航班號出發城市到達城市起飛時間到達時間價格 折扣率總票數剩余票數n");for(i=0;i<n;i+)printf("%s %s%s%s t%st%d%dt%dt%dn",planei.num,planei.depart,planei.arrive,planei.start,planei.end,planei.price,planei .discount,planei.total,planei.rest);void search1()/ 按航班號查詢int i;char num20;printf(" 輸入你查詢的航班號:");
8、scanf("%s",num);for(i=0;i<n;i+)if(strcmp(num,planei.num)=0) %dt%d剩余票數%dt%dprintf(" 航班號出發城市到達城市起飛時間到達時間價格 折扣率總票數剩余票數n");printf("%s %s%s%s t%st%dt%dn",planei.num,planei.depart,planei.arrive,planei.start,planei.end,planei.price,planei .discount,planei.total,planei.rest)
9、;break;if(i=n) printf(" 沒有此航班!n");void search2()/ 按起飛抵達城市查詢int i;char a50,b50;printf(" 輸入起飛城市和到達城市:");scanf("%s %s",a,b);printf(" 航班號出發城市到達城市起飛時間到達時間價格 折扣率總票數n");for(i=0;i<n;i+)if(strcmp(a,planei.depart)=0)&&(strcmp(b,planei.arrive)=0)printf("%
10、s %s%s%s t%st%dt%dn",planei.num,planei.depart,planei.arrive,planei.start,planei.end,planei.price,planei .discount,planei.total,planei.rest);printf("n");for(i=0;i<n;i+)if(strcmp(a,planei.depart)=0)&&(strcmp(b,planei.arrive)=0) break;if(i=n) printf(" 沒有此航班!n");void
11、book()/ 訂票char name20,p20,id20;double number;int i,j,k,y,count;for(i=0;i<n;i+)planei.t=0;doprintf(" 輸入訂單信息:n");printf(" 訂單編號姓名 身份證號訂票數航班號 n");scanf("%d %s %s %d %s",&number,name,id,&count,p);for(i=0;i<n;i+)if(strcmp(p,planei.num)=0)break;if(i=n)printf(&quo
12、t; 沒有此航班n");elseif(planei.rest>=count)j=planei.t;planei.guestj.number=number;strcpy(,name);strcpy(planei.guestj.id,id);planei.guestj.count=count;strcpy(planei.guestj.p,p);planei.rest-=count;planei.t+;elseprintf(" 很抱歉,該航班剩余票數為%d 張 n",planei.rest);for(k=0;k<n;k+)
13、if(strcmp(planei.depart,planek.depart)=0)&&(strcmp(planei.depart,planek.depart)=0)break;if(k=n)printf(" 沒有其他從%s 到 %s 的航班 n",planei.depart,planei.arrive);elseprintf(" 從 %s 到 %s 還 有%s 航 班nn",planek.depart,planek.arrive,planek.num);printf(" 航班號出發城市到達城市起飛時間到達時間價格 折扣率 總票數
14、剩余票數n");printf("%s %s%s%s t%st%d%dt%dt%dn",planek.num,planek.depart,planek.arrive,planek.start,planek.end,planek.price,pla nek.discount,planek.total,planek.rest);printf(" 是否繼續訂票, “是”輸入 1 , “否”輸入0n");scanf("%d",&y);while(y);void quit() / 退票double number;char id2
15、0;int i,j,temp,k,y;temp=0;printf(" 請輸入您的訂單編號:n");scanf("%d",&number);printf(" 請輸入您的身份證:n");scanf("%s",id);for(i=0;i<n;i+)for(j=0;j<planei.t;j+)if(number=planei.guestj.number&&(strcmp(id,planei.guestj.id)=0) temp=1;break;if(temp=1)break;if(i=n
16、)printf(" 沒有此訂單!n");elseprintf(" 訂單編號姓名身份證號訂票數航班號 n");printf("%d",planei.guestj.number);printf("%s",);printf(" %s",planei.guestj.id);printf("%d",planei.guestj.count);printf("%sn",planei.guestj.p);printf(" 您是
17、否確認刪除(1/0)n");scanf("%d",&y);if(y=1)planei.rest+=planei.guestj.count;for(k=j+1;k<planei.t;k+) planei.guestk-1.number=planei.guestk.number;strcpy(,);strcpy(planei.guestk-1.id,planei.guestk.id);planei.guestk-1.count=planei.guestk.count;strcpy
18、(planei.guestk-1.p,planei.guestk.p);planei.t-;printf(" 退票成功!n");void change()/ 修改char a20;int i;printf(" 請輸入你要修改的航班號:");scanf("%s",a);for(i=0;i<n;i+) if(strcmp(a,planei.num)=0) break;if(i=n)printf(" 沒有此航班!n");elseprintf(" 原信息 :n");剩余票%dt%d剩余票數prin
19、tf(" 航班號出發城市到達城市起飛時間到達時間價格 折扣率總票數數 n"); printf("%s %s%s%s t%st%dt%dn",planei.num,planei.depart,planei.arrive,planei.start,planei.end,planei.price,planei .discount,planei.total,planei.rest);printf(" 請輸入修改后的信息:n");printf(" 航班號出發城市到達城市起飛時間到達時間價格 折扣率總票數n");scanf(&
20、quot;%s %s %s %s %s %d %d %d %d",planei.num,planei.depart,planei.arrive,planei.start, planei.end,&planei.price,&planei.discount,&planei.total,&planei.rest);void main()int a,b;dosystem("cls");for(a=0;a<50;a+)printf("*");printf("n");printf("tt
21、1:輸入航班信息n");printf("tt2:列出航班信息n");printf("tt3 : 按航班號查詢航班信息n");n");printf("tt4:按出發到達城市查詢航班信息printf("tt5:訂票n");printf("tt6:退票n");printf("tt7:修改航班信息n");printf("tt8 : 退出程序n");for(a=0;a<50;a+)printf("*");printf("
22、n");printf(" 請輸入功能選項1-8) : n");scanf("%d",&b);switch(b)case 1:inputplane();system("pause");break;case 2:list();system("pause");break;case 3:search1();system("pause");break;case 4:search2();system("pause");break;case 5:book();system
23、("pause");break;case 6:quit();system("pause");break;case 7:change();system("pause");break;case 8:break;while(1);調試分析a.在做“退票”函數(即void quit ()時,系統總是顯示沒有此訂票,最后 發現沒有跳出其中的一個這個雙層for循環,現在通過調試,解決了這個問題。b.調試后程序會自動判斷輸入的數字的有效性。用戶手冊(1)演示程序的運行環境為 Windows Vista 系統,Microsoft Visual Stu
24、dio 6.0中的Microsoft Visual C+ 6.0中運行。執行文件為:航空訂票系統 .exe(2)進入演示程序后即顯示DOS形式的界面:* 半* *1;輸入航班信息2:列出航班信息3:按航班號查詢航班信息41按出發到達城市查詢航班信息5:訂票%退票7;修改航班信息上退出程序 *二*4:*4:* *布* 請輸入功能選項1-R):(3)輸入航班信息。(4)由用戶在菜單頁面選擇需要執行的功能,系統會顯示相關信息測試結果(1)輸入航班信息h輸入航班信息2.列出航班信息九按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6;退票7 .修改航班信息Sr退出程序* * *木*本*請輸入
25、功能選項1-幻:1輸入總航班勘5輸入航班信息;航班號出發城市到達城市起飛時間到達時間價格折扣率息票數剩余票越MU5103 上海虹搟 北京 7:00 9:20 1063 94 20 2CA1590 上箱虹橋 北京 8:55 11:15 364 75 20 0FH93O7 上海虹柝廣州10:3012; 5060S4S205HQ1241 上港浦東青島19:5021:2041S562011列8964 上潔浦東成部15:4519:0592257201請按任意鍵繼續. .(2)列出航班信息1:輸入航班信息2.列出航班信息也按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6:退票7:修改航班信息3
26、;退出程序請輸入褊誕項*航班號上二發城市到達城市起飛時間到達時間價格MU5103 二海虹搟7:009:201063CA1590 _二海虹楙8:5511:15864FH9307 .二海虹柝10:3012:50608H01241 .上海浦東19:5。21:204183US964 J15:4519:05922請按任意鍵繼續.1(3)按航班號查詢航班信息折扣率9475485657五nro o o- o O, 算 2 2 2 2 2 總剩余票數2051111:輸入航班信息露列出航班信息3:按航班號查詢航班信息事按出發到達城市查詢航班信息5:訂票6:退票7:修改航班信息以退出程序*二*:4c*:|
27、3;*:|£|£*:1:*:!聿請輸入功能選項卜g):3輸入你查詢的航班號;123沒有此航班!請按任意鍵繼續.(4)按出發到達城市查詢航班信息1:輸入航班信息2.列出航班信息5按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6:退票7:修改航班信息a:退出程序請輸入功能選項1得):4輸入起飛城市和到達城市:上海虹橋北京航朝母出發城市到達城市起飛時間到達時間價格折扣率總票數剩余票數MU5103 上海虹橋北京 7:009; 20106394202第1590上海虹橋北京 8:5511:1586475200請按任意鍵繼續. . .(5)訂票1,輸入航班信息21列出航班信息
28、3;按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6;退票7,修改航班信息8i退出程序* * 木本木4:米率*木 木木*請輸入功能選項1-8):5輸入訂單信息:訂單編號姓名身榜證號訂票數航班號1 張三豐 31000012 1 3U3964是否g瞄訂票,"是"輸入L "否“輸入01輸入訂單信息:訂單編號姓名身份證號訂票數航班號2 張翠山 31000025 1 FI9307是否繼續訂票,"是"輸入1, “否”輸入01輸入訂單信息:訂單編號姓名身份證號訂票數航班號3 張無忌 31000033 1 IU5103是否繼續訂票."是&
29、quot;輸入1."否”輸入00請按任意鍵繼續. . .顯示退票后航班信息:1:揄入航班信息3列出航班信息3?按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6:退票7:修改航班信息3:退出程序請輸入3能選項卜幻,#*航班號上匕發城市到二起飛時間到達時間於格MU5103 二海虹橋二7:009:201063CA159O _二海虹搟 二8:5511;15864FM9307 .二海虹橋J10:3012:50608H01241 .E海浦東 1島19:5。21:204183US964 J 請按任意令上海浦東 f建繼續.戊都15:4519:05922折剩余票數104110(6)退票1:
30、輸入航班信息2=列出航班信息3:按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6:退票7;修改航班信息8:退出程序請輸入功能選項1點):6請輸入您的訂單編號:2請輸入您的身份證:31000025訂單編號姓名身份證號訂票數航班號2 張翠山 310000251FM9307您是否確認刪除(1/0)1退票成功!請按任意鍵繼續.顯示退票后航班信息:1:輸入航班信息九列出航班信息3.按航班號查詢航班信息4:按出發到達城市查詢航班信息5:訂票6:退票7;修改航班信息小退出程序請輸入功能選項卜3臬2航班號出發城市到達城市起飛時間到達時間價格折扣率總票數剩余票數MU5103_二海虹橋T 卜X Li7
31、:009:20106394201CA1590二海虹橋(打t8; 5511:1586475200FM9307二海虹柝廣州10:3012:506084820HO 1241lz海浦東青島19:5021:204135620113US9641成都15:4519:059225720一一一 k y -.a I 1114r '請按任意鍵繼續.(7)修改:h揄入航班信息2i列出航班信息3.按航班號查詢航班信息事按出發到達城市查詢航班信息5:訂票6:退票7:修改航班信息需退出程序請輸入%能選項卜8),*7請輸入你要修改的航班號:3U8964厚信息,鏡雄事出發城市到達城市起飛時間到達時間價格折扣率總票數剩余票數3U3%4 上海浦東成都 15:4519;。592257200請輸入修改后的信息:航班號出發城市到達城市起飛時間到達時間價格折扣率息票數剜除票數 3US964 上海浦東成都 15:45 19:05 922 57
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年藥劑師考試試題及答案
- 2025年學生心理健康與教育知識考試試卷及答案
- 2025年信息管理與信息系統專業綜合測試試題及答案
- 2025年現代化農業與農村發展職業資格考試試卷及答案
- 2025年金融市場與投資分析知識測試試卷及答案
- 2025年電子技術與通信工程師職業資格考試試卷及答案
- 2025年環境地質學與資源勘探實驗考試卷及答案
- 2025年公共衛生與流行病學基礎考試試題及答案
- 2025年非營利組織管理與領導力考試試題及答案
- 寫景作文美麗的落日250字10篇范文
- 《機械設計基礎》試題庫(主觀題及答案)
- JGJ100-2015 車庫建筑設計規范
- 2024年承包建設工程合同
- 2024年江蘇省無錫市中考地理試卷(附真題答案)
- 河南省鄭州市金水區2023-2024學年七年級(下)期末數學試卷(含答案)
- DBJ∕T 15-120-2017 城市軌道交通既有結構保護技術規范
- 免拆底模鋼筋桁架樓承板應用技術規程
- 文化墻設計制作安裝合同范本版
- 安恒信息:2024體育賽事網絡安全保障實踐藍皮書
- 擴大基礎重力式橋臺綜合標準施工核心技術專業方案修改
- 大學生安全教育(共31張課件)
評論
0/150
提交評論