版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精品文檔歡迎下載X XX XX XX XX XX XX XX XX X計計算算機機技技術(shù)術(shù)系系工程名稱: 航空客運訂票系統(tǒng) 學生姓名: XX 學 號: 班 級: 10801 指導教師: 年 月 日精品文檔歡迎下載目目 錄錄1.1.系統(tǒng)需求分析系統(tǒng)需求分析.31.1 問題分析.31.2 任務(wù)意義.32.2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明.43.3. 詳細設(shè)計和編碼詳細設(shè)計和編碼.53.1.主菜單.53.2.錄入航空信息.53.3 輸出航空信息.63.4 訂票.73.5 退票.74.4. 實驗結(jié)果實驗結(jié)果.94.1 菜單函數(shù)的功能測試.94.2 錄入函數(shù)的功能測試.94.3 查詢航
2、班函數(shù)的功能測試.114.4 訂票功能地測試.12致謝致謝.17參考文獻參考文獻.18附錄:源程序清單附錄:源程序清單.19精品文檔歡迎下載1.1.系統(tǒng)需求分析系統(tǒng)需求分析1.1 問題分析這次的課程設(shè)計是設(shè)計一個航空系統(tǒng)。由于存儲的數(shù)量較大且不固定,因此選擇用鏈表來保存根本信息:終點站名、航班號、飛機號、飛行時間、乘員定額、余票量、已經(jīng)訂票的客戶名單(包括姓名、訂票量)、等候替補的客戶名單(包括姓名、所需票量)等等。由于在航線這個主鏈表上,每個航班上的已經(jīng)訂票名單這個鏈表和等候替補的名單這個鏈表隊列,所以建立一個十字交叉鏈表,在縱行上開辟一個鏈表存儲所有航班的根本信息,再在各個航班節(jié)點橫向展開
3、一個鏈表和一個鏈表隊列,展開的鏈表存儲已經(jīng)訂票的客戶名單,展開的鏈表隊列存儲等候替補的客戶名單。同時,由于預約人數(shù)無法預計,隊列也應(yīng)以鏈表作存儲結(jié)構(gòu)。系統(tǒng)主要實現(xiàn)的操作和功能是:添加航線、查詢航線、訂票功能、退票功能。要實現(xiàn)這些功能,首先要使程序能實現(xiàn)查找功能,在查找出到有效信息的前提之下,通過鏈表的賦值,更新信息和刪除退票人信息,滿足客戶的要求。1.2 任務(wù)意義飛機場每天要接受大量的訂票退票效勞,對于這些數(shù)量巨大的數(shù)據(jù),需要一個專門的軟件來進行管理和操作。軟件至少需要具備的根本功能包括:接受訂票,處理退票,查詢航班信息等等。面對這些實際問題,航空客運系統(tǒng)的制作無疑要全面的考察一個學生的知識及
4、能力。在全面理解客戶的需求下面,來進行設(shè)計出最能夠滿足客戶的程序出來,并且能夠根據(jù)不同的要求來將其進行改動,最能考察到對代碼活用的程度。精品文檔歡迎下載2.2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明 數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu),中間縱列,為各個航班的根本信息,用一鏈表存儲,其中一個節(jié)點為一個航班,其中包括終點站名、航班號、飛機號、飛行時間、乘員定額、余票量、已經(jīng)訂票的客戶名單(包括姓名、訂票量)、等候替補的客戶名單(包括姓名、所需票量)等等。橫向是各個航班的情況,即從該指定的航班中用鏈表的形式橫向存儲這個航班的根本信息,縱向為已經(jīng)訂票了的客戶信息和藥等候替補的客戶的信息,其中包括客戶姓名和相應(yīng)
5、的需票量。相應(yīng)的存儲結(jié)構(gòu)如下struct Passenger char name20;int bnum; /bnum 記錄某人買的票數(shù)struct Passenger *next;typedef struct Air /記錄飛機信息int ticket; /飛機票數(shù)char des20; /des 記錄飛機的終點char flight8; /flight 記錄航班號int num; /記錄飛機號Passenger *wait;Passenger *book;Time time;struct Air *next;AirPlane;精品文檔歡迎下載3.3. 詳細設(shè)計和編碼詳細設(shè)計和編碼3.1.主菜
6、單進入主菜單,必須先錄入航班信息,客戶可以根據(jù)自己需要選擇,選擇自己想要的航班,然后進行一系列自己選擇的操作,具體菜單流程圖如下所示航空系統(tǒng)錄入信息查詢信息訂票退票 圖 3-1 主菜單功能模塊圖3.2.錄入航空信息錄入航空信息包括終點站名、航班號、飛機號、飛行時間、乘員定額,根據(jù)用戶的需要選擇航班,輸出航班信息,如果可以再進行訂票操作,錄入航空信息的流程圖如下圖 3-2 錄入航空信息流程圖精品文檔歡迎下載3.3 輸出航空信息客戶可以根據(jù)自己的需要選擇是按目的地查詢還是按航班查詢,如果按航班查詢,必須要知道航班號,如果按目的地查詢,只需輸入終點站,如果一個終點站有多個航班,客戶可以根據(jù)自己的需要
7、選擇一個航班進行操作,具體流程圖如下。圖 3-3 按航班輸出信息的流程圖精品文檔歡迎下載圖 3-4 按目的輸出航空信息的流程圖3.4 訂票在客戶訂票前需要先查詢航班是否存在,所以在訂票的模塊中會要求客戶輸入航班信息,再調(diào)用航班查詢的函數(shù),查詢是否存在這個航班,如果存在這個航班,那么客戶可以訂票,客戶在訂票的時候,如果所需票量超過剩余票數(shù),那么會提示客戶是否需要排隊候票,如果不排隊候票,那么選擇要么重新輸入所需票量,要么退出訂票。訂票流程圖如下圖 3-5 訂票流程圖3.5 退票客戶在退票操作時,也是要先輸入是否存在那個航班,如果存在,就查詢這個航班是否存在這個客戶,如果不存在,就退票失敗,如果存
8、在,那么可以退票,退票后,再查看是否滿足候票數(shù),如果滿足那么把票補給候票人,如果不滿足,就繼續(xù)排隊候補。退票流程圖如下精品文檔歡迎下載圖 3-6 退票流程圖精品文檔歡迎下載4.4. 實驗結(jié)果實驗結(jié)果4.1 菜單函數(shù)的功能測試系統(tǒng)運行后就會自動顯示菜單 1.錄入航班,2.查詢航班,3.訂票,4,退票,當用戶選擇相應(yīng)的代號就進入相應(yīng)的功能模塊 圖 4-1 菜單函數(shù)的截圖4.2 錄入函數(shù)的功能測試進入當這個錄入模塊,用戶需要先錄入航班的信息,包括航班號,總的票數(shù),目的地,起飛時間,和飛機號,當錄入一個航班信息,會提示是否繼續(xù)錄入精品文檔歡迎下載 圖 4-2 錄入航空信息的截圖精品文檔歡迎下載4.3
9、查詢航班函數(shù)的功能測試用戶可以選擇是按目的地查詢信息或者是按航班查詢信息,一個目的地可能有幾個不同的航班,但是一個航班只能到一個目的地 圖 4-3 查詢航班的截圖精品文檔歡迎下載4.4 訂票功能地測試用戶在訂票時需要輸入航班,然后再查詢是否存在這個航班,如果存在,那么可以訂票,否那么不能訂票,在訂票的時候如果余票足夠,那么可以成功訂票,否那么提示用戶是否需要排隊候補如圖 4-4,訂票成功可以將客戶信息輸出,圖 4-5,是余票缺乏,提示用戶是否需要排隊候補,圖 4-6,客戶選擇候補,那么會將客戶信息輸出 圖 4-4 訂票成功的截圖精品文檔歡迎下載 圖 4-5 余票缺乏的截圖 圖 4-6 候補成功
10、的截圖精品文檔歡迎下載4.5 退票函數(shù)的功能測試用戶在退票的時候需要輸入航班,查找這個航班是否存在,如果存在,再查看退票信息是否正確,輸出客戶信息,退票后查詢這個航班的剩余票數(shù)是否變化,是否足夠候補人所需要的票數(shù) 圖 4-7 是查詢這個航班的客戶信息,圖 4-8 是找到要退票的客戶且輸出客戶信息,圖 4-9 退票后查詢這個航班,是否退票成功 圖 4-7 查詢客戶的截圖精品文檔歡迎下載圖 4-8 找到要退票的客戶的信息圖 4-9 查詢是否退票成功的截圖精品文檔歡迎下載5.5.體會體會這次課程設(shè)計我用鏈表設(shè)計的,我之前的想法是用一個結(jié)構(gòu)體存儲航班信息,再用一個結(jié)構(gòu)體存儲已經(jīng)訂票的客戶信息,再用一個
11、結(jié)構(gòu)體存儲候補的客戶信息,然后在已經(jīng)訂票的客戶信息中定義一個指針存儲已經(jīng)訂票的客戶的航班,在候補的客戶中定義一個指針存儲已經(jīng)排隊候補的客戶的航班,用這個指針和航班信息聯(lián)系起來,再進行操作,可是在退票中鏈表就出現(xiàn)問題了,只要有人候補,那么已經(jīng)訂票的客戶信息就輸不出來,好不容易把候補搞好了,可是訂票模塊就出現(xiàn)問題了,總的來說是結(jié)構(gòu)的問題,所以我就重新寫了,用了十字鏈表的思想,不過在退票后,把退票給候補的客戶有問題,就沒有寫這個了。這次課程設(shè)計寫完后,我發(fā)現(xiàn)我對于指針是越來越糊涂了,原來在寫作業(yè)的時候還有點清楚指針的指向,現(xiàn)在時越來越不清楚了。所以在存儲空間上總是出現(xiàn)問題,叫同學幫我改了指針的指向,
12、才會好的,所以這次放假一定要把指針弄清楚,然后進一步完善這個程序。精品文檔歡迎下載致謝致謝感謝 XX 老師的耐心指導,感謝 XXX 老師的悉心教導,感謝 XXX 同學的幫助。感謝在課程設(shè)計中對我?guī)椭^得同學,謝謝你們對我的幫助,讓我感受到到同學的友誼和老師對我的關(guān)愛精品文檔歡迎下載參考文獻1嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)C 語言版.北京:清華大學出版社,1997.2劉大有,唐海鷹,等.數(shù)據(jù)結(jié)構(gòu).北京:高等教育出版社,2001.3黃揚銘.數(shù)據(jù)結(jié)構(gòu).北京:科學出版社,2001.4黃劉生.數(shù)據(jù)結(jié)構(gòu).北京:科學經(jīng)濟出版社,2000.精品文檔歡迎下載附錄:源程序清單#include#include#inclu
13、de#include#include#includestruct Time /定義飛機的起飛時間char year8,month8,day8,hour8,minute8,second8;void InputDate(Time &time) /輸入飛機的起飛時間coutPlease input the date(year month day hour minute):time.yeartime.monthtime.daytime.hourtime.minutetime.second;void PrintDate(const Time time) /輸出飛機的起飛時間couttime.ye
14、ar.time.month.time.day.time.hour:time.minute:name,s-name);void PrintPassenger(const Passenger *p)cout*endl;cout姓名 訂票量endl;cout*endl;coutname bnumendl;typedef struct Air /記錄飛機信息int ticket; /飛機票數(shù)char des20; /des 記錄飛機的終點char flight8; /flight 記錄航班號int num; /記錄飛機號精品文檔歡迎下載Passenger *wait;Passenger *book;T
15、ime time;struct Air *next;AirPlane;void Waitticket(Passenger *&p) /輸入候補乘客的信息Passenger *w=p;Passenger *s=new Passenger;couts-name;couts-bnum;void DisplayWait(Passenger *passenger) /輸出要候補的乘客的信息Passenger *q=passenger-next;if(!q)return;while(q)coutName BNumendl;coutsetiosflags(ios:left)setw(10)names
16、etw(10)bnumnext;精品文檔歡迎下載int InputPassenger(Passenger *&passenger,AirPlane *flight) /輸入訂票的乘客的信息Passenger *p=passenger;Passenger *q=new Passenger;Passenger *s=flight-wait;Passenger *w;int chioce;coutq-name;coutq-bnum;if(q-bnumflight-ticket)cout現(xiàn)在航班中還有:ticket張票!ticket)cout請選擇:1.將差票轉(zhuǎn)為候補票 2.只定剩余票 3.取
17、消訂票chioce;if(chioce=1)w=new Passenger;q-next=p-next;精品文檔歡迎下載p-next=q;PassengerCpy(w,q);w-next=s-next;s-next=w;w-bnum=q-bnum-flight-ticket;q-bnum=flight-ticket;flight-ticket=0;else if(chioce=2)q-next=p-next;p-next=q;q-bnum=flight-ticket;flight-ticket=0;elsereturn NULL;elseq-next=s-next;s-next=q;精品文檔歡
18、迎下載elseq-next=p-next;p-next=q;flight-ticket-=q-bnum;void DisplayClient(Passenger *p) /輸出已經(jīng)訂票的乘客信息Passenger *q=p-next;if(!q)return;while(q)coutName BNumendl;coutsetiosflags(ios:left)setw(10)namesetw(10)bnumnext;void CreatFlight(AirPlane *&flight) /創(chuàng)立一個空的結(jié)點AirPlane *s=new AirPlane;s-next=NULL;精品文檔
19、歡迎下載flight=s;Passenger *p=new Passenger;p-next=NULL;flight-book=p;Passenger *w=new Passenger;w-next=NULL;flight-wait=w;AirPlane* Displayflight(AirPlane *flight,char f) /按航線輸出航班AirPlane *p=flight-next;int flag=0;while(p)if(strcmp(p-flight,f)=0)system(cls);cout*endl;coutNum Destination Flight Ticket T
20、ime endl;coutsetiosflags(ios:left)setw(10)numsetw(10)dessetw(10)flightsetw(10)ticket;PrintDate(p-time);精品文檔歡迎下載coutn*endl;cout*已定乘客*book);cout*候補乘客*wait);return p;p=p-next;return NULL;void Displaydes(AirPlane *flight,char d) /按目的地輸出航班AirPlane *p=new AirPlane;p=flight;int flag=0;while(p)if(strcmp(p-d
21、es,d)=0)flag=1;coutNum Destination Flight Ticket Time endl;coutsetiosflags(ios:left)setw(10)numsetw(10)des精品文檔歡迎下載setw(10)flightsetw(10)ticket;PrintDate(p-time);coutnext;if(flag=0)coutSorry!not find the information!next=NULL;w-next=NULL;p-book=b;p-wait=w;精品文檔歡迎下載system(cls);coutp-flight;coutp-ticket
22、;coutp-des;InputDate(p-time);coutp-num;coutif continue,please choose(y/Y),if not,please input choose(N/n):ch;system(pause);p-next=s-next;s-next=p;while(ch=y|ch=Y);void Display(AirPlane *flight) /輸出航線int n;cout1.按終點查詢 2.按航班查詢endl;coutn;精品文檔歡迎下載if(n=1)char d20;coutplease input the destination you woul
23、d look up:d;Displaydes(flight,d);else if(n=2)coutf;Displayflight(flight,f);elsecoutinput is error!null);void Book(AirPlane *&flight) /訂票AirPlane *p=new AirPlane,*f=NULL;char line20;coutline;精品文檔歡迎下載system(cls);f=Displayflight(flight,line); /查找乘客要訂的航班是否存在if(f)InputPassenger(f-book,f);Displayflight(flight,line);elsecoutSorry! Not find the flight!endl;void ReturnTicket(AirPlane *&flight) /退票AirPlane *p=new AirPlane,*f=NULL;char line20;char name20;coutline;f=Displayflight(flight,line);if(f)Passenger *p=f-book-next;P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度沉井施工風險評估與管理協(xié)議模板下載4篇
- 二零二五版離婚協(xié)議書關(guān)于子女監(jiān)護權(quán)轉(zhuǎn)移協(xié)議范本新3篇
- 二零二五年度住宅小區(qū)電梯安裝與保養(yǎng)服務(wù)協(xié)議3篇
- 二零二五年股權(quán)代持法律風險防范合同范本3篇
- 2025年度美發(fā)設(shè)備租賃及維護服務(wù)合同4篇
- 2025年度農(nóng)業(yè)機械設(shè)備產(chǎn)品置換服務(wù)合同范本4篇
- 二零二五年度存量房屋買賣合同(帶房產(chǎn)交易稅費咨詢)3篇
- 2025年度大清包園林綠化工程施工合同范本(生態(tài)修復)4篇
- 2025年度出口合同履行中的支付結(jié)算與信用證操作合同4篇
- 2025年度汽車租賃合同電子版范本6篇
- 信訪維穩(wěn)工作應(yīng)急預案范文(精選3篇)
- 應(yīng)用文全套ppt課件(完整版)
- 2022年《飲食消費心理學》教案
- 貸款申請表(標準模版)
- DB11-T 641-2018 住宅工程質(zhì)量保修規(guī)程
- (完整版)壞死性筋膜炎PPT資料課件
- 談基層稅務(wù)干部隊伍建設(shè)難點及應(yīng)對經(jīng)驗
- 衛(wèi)星的坐標計算
- 外國人來華工作許可申請表
- DVPR設(shè)計驗證計劃和報告
- 濕式電除塵器使用說明書
評論
0/150
提交評論