版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目 錄目錄1摘要21 設(shè)計(jì)目的32 設(shè)計(jì)要求33 設(shè)計(jì)內(nèi)容43.1 預(yù)備知識(shí)43.2設(shè)計(jì)思路43.3 總體設(shè)計(jì)43.4各模塊部分53.4.1錄入航班信息模塊53.4.2 訂票模塊63.4.3 退票模塊83.4.4 航班信息查詢模塊93.5設(shè)計(jì)結(jié)果驗(yàn)證9總結(jié)與致謝13參考文獻(xiàn)14附錄15摘 要 隨著經(jīng)濟(jì)的快速發(fā)展以及生活水平的提高,飛機(jī)已經(jīng)成為了人們出行常用的交通工具之一,而作為航空公司,飛機(jī)訂票系統(tǒng)必不可少,為了適應(yīng)快速發(fā)展的需求,管理大量數(shù)據(jù),有效地穩(wěn)定的管理航空公司,我運(yùn)用所學(xué)知識(shí),編程開發(fā)了一套飛機(jī)訂票系統(tǒng),此系統(tǒng)雖然簡(jiǎn)單,卻可以完成基本功能。其具體工作流程為:首先我們可以錄入航班信息,
2、包括班號(hào)、飛機(jī)號(hào)、目的地、訂票數(shù)、余票數(shù)共5項(xiàng)。顧客到達(dá)營(yíng)業(yè)網(wǎng)點(diǎn)后向航空公司營(yíng)業(yè)員提供出姓名和航班號(hào),營(yíng)業(yè)員根據(jù)以上信息,操作軟件,查詢?cè)摵骄€的訂票情況, 若有余票, 則為客戶辦理訂票手續(xù), 分配給客戶一個(gè)座位號(hào), 然后將新客戶的信息添加, 并修改該航線的訂票數(shù)和余票數(shù)。若無余票, 則輸出客滿信息。當(dāng)航班信息改變時(shí)可以修改航班信息。進(jìn)一步可實(shí)現(xiàn)如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班信息??梢蕴峁┩似睒I(yè)務(wù)。本設(shè)計(jì)采用vc+6.0完成編程。關(guān)鍵詞:系統(tǒng);飛機(jī)訂票;退票;航班;1 設(shè)計(jì)目的本次課程設(shè)計(jì)的飛機(jī)訂票系統(tǒng),要求實(shí)現(xiàn)如下功能: 1) 錄入航線信息:每條航線信息包括航班號(hào)、飛機(jī)號(hào)、目的地、
3、訂票數(shù)、余票數(shù)共5項(xiàng)。假設(shè)現(xiàn)在有3條航線, 目的地分別是北京, 上海, 廣州, 飛機(jī)上可乘坐100人( 即初始訂票數(shù)為0, 余票數(shù)為100)。 2) 訂票業(yè)務(wù):客戶信息包括姓名, 航班號(hào), 座位號(hào)(初始為0)。有新客戶訂票時(shí), 先輸入客戶的姓名和他提出的航班號(hào), 查詢?cè)摵骄€的訂票情況, 若有余票, 則為客戶辦理訂票手續(xù), 分配給客戶一個(gè)座位號(hào), 然后將新客戶的信息添加, 并修改該航線的訂票數(shù)和余票數(shù)。若無余票, 則輸出客滿信息。進(jìn)一步可實(shí)現(xiàn)如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班信息。 3) 退票業(yè)務(wù):根據(jù)客戶提出的航班號(hào), 辦理退票,刪除該客戶的信息, 并修改文件相應(yīng)航線的訂票數(shù)和余票數(shù)。
4、 4) 修改航班信息:當(dāng)航班信息改變可以修改。2 設(shè)計(jì)要求1根據(jù)已知設(shè)計(jì)要求分析飛機(jī)訂票系統(tǒng)設(shè)計(jì)功能,確定實(shí)現(xiàn)飛機(jī)訂票系統(tǒng)設(shè)計(jì)的方法,畫出流程圖,編寫實(shí)現(xiàn)程序,并進(jìn)行調(diào)試,完成系統(tǒng)軟件設(shè)計(jì)。2基本教學(xué)要求:每人一臺(tái)計(jì)算機(jī),計(jì)算機(jī)安裝vc、visio等軟件。3 設(shè)計(jì)內(nèi)容3.1 預(yù)備知識(shí)線性鏈表的定義:航班的信息:航班的情況存儲(chǔ)結(jié)構(gòu)采用單鏈表,每個(gè)元素表示一個(gè)航班的情況,包括航班號(hào)、飛機(jī)號(hào)、目的地、訂票數(shù)、余票數(shù)五個(gè)數(shù)據(jù)項(xiàng):航班號(hào)飛機(jī)號(hào)目的地訂票數(shù)余票數(shù)字符串字符串字符串整數(shù)(int)整數(shù)(int)單鏈表如下: 每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域:數(shù)據(jù)域指針域3.2設(shè)計(jì)思路本系統(tǒng)設(shè)計(jì)主要采用線性鏈表的定義
5、、插入、刪除等基本操作。這是數(shù)據(jù)結(jié)構(gòu)里學(xué)到的內(nèi)容。當(dāng)然還需要編制初始化、建立數(shù)據(jù)文件、數(shù)據(jù)文件保存、增加航班信息、訂票、退票業(yè)務(wù)等內(nèi)容。包括錄入信息模塊,訂票模塊,退票模塊,查詢航班,修改航班模塊等。3.3 總體設(shè)計(jì) 本系統(tǒng)為完成設(shè)計(jì)要求的功能必須包括錄入,訂票,退票,修改航班信息業(yè)務(wù)。其總設(shè)計(jì)流程圖如下所示。圖1 總設(shè)計(jì)流程圖3.4各模塊部分 3.4.1錄入航班信息模塊該步驟在實(shí)際生活中主要內(nèi)容由航空公司完成,錄入航班信息,然后保存,以供顧客訂票,退票,查詢使用。錄入的信息包括每條航線信息包括航班號(hào)、飛機(jī)號(hào)、目的地、訂票數(shù)、余票數(shù)共5項(xiàng)。假設(shè)現(xiàn)在有3條航線, 目的地分別是北京, 上海, 廣州
6、, 飛機(jī)上可乘坐100人( 即初始訂票數(shù)為0, 余票數(shù)為100)。圖2 錄入航班信息具體定義程序:typedef struct flightnodechar flight_num10; /航班號(hào)char start_num10; /飛機(jī)號(hào)char aim_place10; /目的地char dingpiao20;/訂票數(shù)char yupiao20; /余票數(shù)struct flightnode *next;/指向下一個(gè)結(jié)點(diǎn)flightnode;/航班結(jié)點(diǎn)錄入航班信息即用到了線性鏈表的插入,鏈表的插入:void add_flight(flightnode *&h)調(diào)用void insert_fli
7、ght(flightnode *&h,char* flight_num,char* start_num, char* aim_place, char* dingpiao, char* yupiao)函數(shù),將新航班結(jié)點(diǎn)插入航班鏈表中。3.4.2 訂票模塊在這個(gè)函數(shù)中首先調(diào)用了search函數(shù)查找需要訂票的航班。運(yùn)用if語句實(shí)現(xiàn)訂票時(shí)的多種情況:訂票數(shù)輸入不正確、飛機(jī)票數(shù)不足等情況。訂票成功時(shí)運(yùn)用si.count=si.count-n;將已被訂的機(jī)票數(shù)減去,以顯示新的即時(shí)航班信息圖3 訂票模塊(1)客戶的資料:為了便于插入、刪除和修改,其采用單鏈表存儲(chǔ)結(jié)構(gòu),每個(gè)數(shù)據(jù)元素包括姓名、航班號(hào)和座位號(hào)三個(gè)
8、個(gè)數(shù)據(jù)項(xiàng):姓名航班號(hào)座位號(hào)字符串字符串整數(shù)(int)每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域:數(shù)據(jù)域指針域c語言描述如下:typedef struct passengernode/定義客戶資料結(jié)點(diǎn) char name20; /姓名char flight_num10;/航班號(hào) int id_place; /座位號(hào) struct passengernode *next;/指向下一個(gè)結(jié)點(diǎn)passengernode; (2)客戶鏈表:每個(gè)數(shù)據(jù)元素包括頭指針和尾指針兩個(gè)數(shù)據(jù)項(xiàng):每個(gè)結(jié)點(diǎn)包括兩個(gè)指針域:頭指針域尾指針域c語言描述如下:typedef struct passengerlist passengernode
9、*head; passengernode *rear;passengerlist; (3)鏈表的插入int book(flightnode *&h,passengerlist *&plist)函數(shù)調(diào)用int insert_passenger(passengernode *&h,char *name,char *id_num,char *flight_num, int id_place)函數(shù),將新客戶結(jié)點(diǎn)插入客戶鏈表中。3.4.3 退票模塊與訂票函數(shù)相類似,只做稍稍修改就行退票成功是用si.count=si.count+n; 將航班的剩余票數(shù)加上去以顯示即時(shí)航班信息。圖4 退票模塊線性鏈表的刪除
10、:void delete_flight(flightnode *&h,passengerlist *&plist)/目的要按照某個(gè)航班號(hào)刪除航班結(jié)點(diǎn)int delete_passenger(passengerlist *&plist,flightnode *&h,char *name,char *id_num)/目的是按照要退票的顧客的姓名查找該顧客結(jié)點(diǎn),進(jìn)行刪除操作3.4.4 航班信息查詢模塊即查詢所有航班信息3.5設(shè)計(jì)結(jié)果驗(yàn)證總結(jié)與致謝經(jīng)過此次的課程設(shè)計(jì),可以很明確的了解到自己哪些知識(shí)點(diǎn)掌握的比較好,哪些知識(shí)點(diǎn)運(yùn)用的還不夠熟練。通過此次課程設(shè)計(jì)也學(xué)會(huì)綜合運(yùn)用理論知識(shí)來分析和解決實(shí)際問題的能
11、力、養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和良好的程序設(shè)計(jì)習(xí)慣,實(shí)現(xiàn)由知識(shí)向智能的初步轉(zhuǎn)化;學(xué)會(huì)遵循軟件開發(fā)過程的基本規(guī)范,運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,按照課程設(shè)計(jì)的題目要求,并能夠完成設(shè)計(jì)、編寫、調(diào)試和測(cè)試應(yīng)用程序及編寫文檔的任務(wù)。 短暫的課程設(shè)計(jì)就要結(jié)束了,在此,感謝所有在學(xué)習(xí)和生活中給予我關(guān)心和幫助的人們。首先我要感謝楊紅娟、張君捧兩位位老師,本次課程設(shè)計(jì)設(shè)計(jì)的選題、課題調(diào)研與撰寫工作實(shí)在和老師的指導(dǎo)下完成的。和老師淵博的知識(shí)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、一絲不茍的工作作風(fēng)、和不厭其煩的精神對(duì)我影響至深,使我受益終生,在此我向和老師表示崇高的敬意和衷心的感謝。其次,在我的課程設(shè)計(jì)期間,同課題的同學(xué)都給予了我熱情的幫助和無
12、私的指導(dǎo),在此向這些同學(xué)們表示衷心的感謝。最后,向所有曾給予我關(guān)心和幫助的老師和同學(xué)們?cè)俅沃乱宰钪孕牡母兄x,向參加報(bào)告評(píng)審、答辯的老師表示衷心的感謝和崇高的敬意。參考文獻(xiàn)1 數(shù)據(jù)結(jié)構(gòu)及應(yīng)用算法教程,嚴(yán)蔚敏、陳文博,清華大學(xué)出版社,20112 數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)(影印版),(美)robert l.kruse,alexander j.ryba,高等教育出版社,20013數(shù)據(jù)結(jié)構(gòu)與算法分析,(美)mark allen weiss,機(jī)械工業(yè)出版社,20044數(shù)據(jù)結(jié)構(gòu)算法實(shí)現(xiàn)及解析,高一凡,西安電子科技大學(xué),20085計(jì)算機(jī)軟件技術(shù)基礎(chǔ)(第二版),徐士良、葛兵,清華大學(xué)出版社,20076計(jì)算機(jī)軟件技術(shù)基
13、礎(chǔ)(第三版),沈被娜、劉祖照、姚曉冬,清華大學(xué)出版社,20077軟件開發(fā)技術(shù)基礎(chǔ)(第2版),趙應(yīng)良,機(jī)械工業(yè)出版社,20048(美) h.m.deitel, p.j.deitel 著,薛萬鵬等譯, c 程序設(shè)計(jì)教程,北京:機(jī)械工業(yè)出版社,20009c語言程序設(shè)計(jì),譚浩強(qiáng)主編,清華大學(xué)出版社,201010 brian w. kernighan dennis m. ritchie, c programming language, 清華大學(xué)影印版 ,2001 年 6 月第 10 次印刷附錄#include #include #include #include typedef struct fligh
14、tnodechar flight_num10; /航班號(hào)char start_num10; /飛機(jī)號(hào)char aim_place10; /目的地char dingpiao20;/訂票數(shù)char yupiao20; /余票數(shù)struct flightnode *next;/指向下一個(gè)結(jié)點(diǎn)flightnode;/航班結(jié)點(diǎn)typedef struct passengernodechar name20; /姓名char id_num20; /證件號(hào)char flight_num10;/航班號(hào)int order_num; /訂單號(hào)int ticket_num; /訂票數(shù)量struct passenger
15、node *next;/指向下一個(gè)結(jié)點(diǎn)passengernode;/客戶結(jié)點(diǎn)typedef struct passengerlistpassengernode *head;passengernode *rear;passengerlist;void init_flight(flightnode *&h)/目的是要建立一個(gè)以h為頭結(jié)點(diǎn)的空鏈表,錄入航班信息和增加航班后將航班結(jié)點(diǎn)插入該鏈表h=(flightnode *)malloc(sizeof(flightnode);/申請(qǐng)頭結(jié)點(diǎn)的空間if(h=null) exit(0);h-next=null;/將頭結(jié)點(diǎn)h的指針域置為空void init_p
16、assengerlist(passengerlist *&plist)plist=(passengerlist *)malloc(sizeof(passengerlist);plist-head=(passengernode *)malloc(sizeof(passengernode);/創(chuàng)建頭結(jié)點(diǎn)plist-rear=plist-head;plist-rear-order_num=0;/訂單號(hào)從0開始計(jì)數(shù)plist-head-next=null;void save_passenger(passengerlist *plist)file* fp = fopen(passenger.dat,wb
17、);if(fp=null)return;passengernode *temp=plist-head-next;while(temp!=null)fwrite(temp,sizeof(passengernode),1,fp);temp = temp-next;fclose(fp);void load_passenger(passengerlist *plist)file* fp = fopen(passenger.dat,rb);if(fp=null)return;passengernode *q;int n;while(!feof(fp)q=(passengernode *)malloc(s
18、izeof(passengernode);n =fread(q,sizeof(passengernode),1,fp);if(n!=1)break;plist-rear-next=q;plist-rear=q;plist-rear-next=null;fclose(fp);void save_flight(flightnode *h)file* fp = fopen(flightlist.dat,wb);if(fp=null)return;flightnode *temp=h-next;while(temp!=null)fwrite(temp,sizeof(flightnode),1,fp);
19、temp = temp-next;fclose(fp);void load_flight(flightnode *&h)flightnode *pt=h;file* fp = fopen(flightlist.dat,rb);if(fp=null)return;flightnode *q;int n;while(!feof(fp)q=(flightnode *)malloc(sizeof(flightnode);n=fread(q,sizeof(flightnode),1,fp);if(n!=1)break;pt-next=q;pt=q;pt-next=null;fclose(fp);int
20、find_same_flight(flightnode *h,char *flight_num)flightnode *t=h-next,*p=h-next;int mark=0;printf(%-8s%-12s%-12s%-10s%-10sn,航班號(hào),飛機(jī)號(hào),目的地,訂票數(shù),余票數(shù));while(t!=null & strcmp(t-flight_num,flight_num)!=0) t=t-next;while(p!=null)if(strcmp(t-start_place,p-start_place)=0)&(strcmp(t-end_place,p-end_place)= 0)&(s
21、trcmp(t-flight_num,p-flight_num)!=0)printf(%-8s%-12s%-12s%-10s%-10s%-8.2f%-6.2f%-10d%-8dn,p-flight_num, p-start_place,p-end_place,p-start_time,p-end_time,p-price,p-price_discount,p-isfull,p-left);mark=1;p=p-next;if(mark=0)printf(tt抱歉,沒有可選的航班!n);return 0;return 1;void insert_flight(flightnode *&h,cha
22、r* flight_num,char* start_place,char* end_place,char* start_time,char* end_time,int left,float price,float price_discount,int isfull)/在錄入航班情況或增加新的航班后,將新的航班結(jié)點(diǎn)插入到航線鏈表中flightnode *q;/定義q為新增加的航班結(jié)點(diǎn)的指針的形參flightnode *p=h;q=(flightnode *)malloc(sizeof(flightnode);/為q結(jié)點(diǎn)申請(qǐng)空間strcpy(q-flight_num,flight_num);str
23、cpy(q-start_place,start_place);strcpy(q-end_place,end_place);strcpy(q-start_time,start_time);strcpy(q-end_time,end_time);q-left=left;q-price=price;q-price_discount=price_discount;q-isfull=isfull;/以上是用strcpy函數(shù)將新增加航班的各種信息復(fù)制到q結(jié)點(diǎn)中q-next=p-next;/將q結(jié)點(diǎn)的指針域置為空p-next=q;p=p-next;/將指針后移void insert_passengerlis
24、t(flightnode *&h,passengerlist *&plist,char *name,char *id_num,char *flight_num,int ticket_num)/客戶訂票后,將客戶結(jié)點(diǎn)插入客戶鏈表中,并修改相應(yīng)的航班信息。flightnode *p=h-next;for(;p!=null;p=p-next)if(strcmp(p-flight_num,flight_num)=0)p-left=p-left-ticket_num;if(p-left=0)p-isfull=1;passengernode *q=(passengernode *)malloc(sizeo
25、f(passengernode);/新建結(jié)點(diǎn),存放新的客戶訂單信息strcpy(q-name,name);strcpy(q-id_num,id_num);strcpy(q-flight_num,flight_num);q-ticket_num=ticket_num;q-next=null;/將新訂單連接到鏈表中plist-rear-next=q;q-order_num=plist-rear-order_num+1;/生成訂單號(hào)plist-rear=q;void delete_flight(flightnode *&h,passengerlist *&plist)/目的要按照某個(gè)航班號(hào)刪除航班結(jié)
26、點(diǎn)flightnode *p,*pr;passengernode *q,*qr;char flight_num10;int mark=1;qr=plist-head;/pr為顧客鏈表的頭結(jié)點(diǎn)q=qr-next;/用p作為中間指針對(duì)顧客鏈表中要?jiǎng)h除的顧客結(jié)點(diǎn)進(jìn)行查找pr=h;/pr為航線鏈表的頭結(jié)點(diǎn)p=pr-next;/用p作為指針對(duì)航線鏈表中要?jiǎng)h除的航班結(jié)點(diǎn)進(jìn)行查找printf(tt請(qǐng)輸入你要?jiǎng)h除的航班號(hào):);scanf(%s,flight_num);while(p!=null)/要?jiǎng)h除的航班存在,下面進(jìn)行刪除操作if(strcmp(flight_num,p-flight_num)=0)pr-
27、next=p-next;/移動(dòng)指針找著要?jiǎng)h除的航班結(jié)點(diǎn)free(p);/刪除操作printf(tt刪除%s航班成功!n,flight_num);mark=0;p=null;if(pr-next!=null)pr=pr-next;p=pr-next;if(mark=1)printf(tt無此航班,無法刪除!n);elsewhile(q!=null)/要?jiǎng)h除的顧客存在,下面進(jìn)行刪除操作if(strcmp(flight_num,q-flight_num)=0)qr-next=q-next;/移動(dòng)指針找著要?jiǎng)h除的顧客結(jié)點(diǎn)free(q);q=null;if(qr-next!=null)qr=qr-nex
28、t;q=qr-next;int delete_passenger(passengerlist *&plist,flightnode *&h,char *name,char *id_num)/目的是按照要退票的顧客的姓名查找該顧客結(jié)點(diǎn),進(jìn)行刪除操作passengernode *p,*pr=plist-head;/pr指向顧客鏈表的頭結(jié)點(diǎn)p=pr-next;while(p!=null)if(strcmp(name,p-name)=0&strcmp(id_num,p-id_num)=0)for(flightnode *f=h-next;f!=null;f=f-next)if(strcmp(p-fli
29、ght_num,f-flight_num)=0)f-left=f-left+p-ticket_num;f-isfull=0;break;pr-next=p-next;free(p);printf(tt顧客%s,%s退票成功!n,name,id_num);return 1;pr=pr-next;p=pr-next;printf(tt無此顧客,無法退票!n);return 0;void add_flight(flightnode *&h)/錄入航班信息后調(diào)用insert_flight函數(shù)增加航班flightnode *p=h;char flight_num10,start_time10,end_t
30、ime10,start_place20,end_place20;int left,isfull,mark=1;float price,price_discount;for(;p-next!=null;p=p-next)/移動(dòng)指針,找到最后一個(gè)結(jié)點(diǎn)while(mark=1)printf(tt請(qǐng)輸入你要增加的航班號(hào):);scanf(%s,flight_num);printf(tt請(qǐng)輸入飛機(jī)號(hào):);scanf(%s,start_num);printf(tt請(qǐng)輸入目的地:);scanf(%s,aim_place);printf(tt請(qǐng)輸入訂票數(shù):);scanf(%s,dingpiao);printf(
31、tt請(qǐng)輸入余票數(shù):);scanf(%s,yupiao);insert_flight(p,flight_num,start_num,aim_place,dingpiao,yupiao);printf(tt增加航班%s成功!n,flight_num);printf(tt是否繼續(xù)錄入航班信息(1表示繼續(xù)錄入;0表示停止錄入).n);printf(tt請(qǐng)輸入:);scanf(%d,&mark);int flight_num_check(flightnode *h,char *flight_num)/用航班號(hào)進(jìn)行查詢flightnode *p=h;printf(%-8s%-12s%-12s%-10s%-
32、10sn,航班號(hào),飛機(jī)號(hào),目的地,訂票數(shù),余票數(shù));for(;p!=null;p=p-next)if(strcmp(p-flight_num,flight_num)=0)printf(%-8s%-12s%-12s%-10s%-10sn,p-flight_num, p-start_num,p-aim_place,p-dingpiao,p-yupiao);return 1;printf(tt抱歉,沒有航班號(hào)為%s的航班信息!n,flight_num);return 0;int place_check(flightnode *h,char *start_place,char *end_place)/
33、用起飛抵達(dá)城市進(jìn)行查詢flightnode *p=h;int mark=0;printf(%-8s%-12s%-12s%-10s%-10sn,航班號(hào),飛機(jī)號(hào),目的地,訂票數(shù),余票數(shù));for(;p!=null;p=p-next)if(strcmp(p-start_place,start_place)=0&strcmp(p-end_place,end_place)=0)printf(%-8s%-12s%-12s%-10s%-10sn,p-flight_num, p-start_num,p-aim_place,p-dingpiao,p-yupiao);mark=1;if(mark=0)printf
34、(tt抱歉,沒有從%s到%s的航班信息!n,start_place,end_place);return 0;return 1;void check_all_flight(flightnode *h)flightnode *p=h;int m=0;printf(%-8s%-12s%-12s%-10s%-10sn,航班號(hào),飛機(jī)號(hào),目的地,訂票數(shù),余票數(shù));for(;p!=null;p=p-next)printf(%-8s%-12s%-12s%-10s%-10sn,p-flight_num, p-start_num,p-aim_place,p-dingpiao,p-yupiao);m=1;if(m=
35、0)printf(tt航班信息為空!n);void flight_check(flightnode *h)/選擇使用哪一個(gè)函數(shù)進(jìn)行查詢flightnode *p=h-next;char flight_num10,start_place20,end_place20;char a; printf(tt請(qǐng)選擇航班查詢方式:n);printf(tt1表示按航班號(hào)進(jìn)行查詢;n);printf(tt3表示瀏覽全部航班信息.ntt請(qǐng)選擇輸入:);a=getch();printf(%cn,a);if(a=1)printf(tt請(qǐng)輸入航班號(hào):);scanf(%s,flight_num);flight_num_c
36、heck(p,flight_num);else if(a=3)check_all_flight(p);elsereturn;int id_name_check(passengerlist *plist,char *name,char *id_num)passengernode *p=plist-head-next;int mark=0;printf(%-8s%-20s%-20s%-10s%-8s%n,訂單號(hào),姓名,證件號(hào),航班號(hào),訂票數(shù)量);for(;p!=null;p=p-next)if(strcmp(p-id_num,id_num)=0&strcmp(p-name,name)=0)prin
37、tf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-id_num, p-flight_num,p-ticket_num);mark=1;if(mark=0)printf(tt抱歉,沒有%s,%s的訂單信息!n,name,id_num);return 0;return 1;int order_num_check(passengerlist *plist,int order_num)passengernode *p=plist-head-next;printf(%-8s%-20s%-20s%-10s%-8s%n,訂單號(hào),姓名,證件號(hào),航班號(hào),訂票數(shù)量
38、);for(;p!=null;p=p-next)if(p-order_num=order_num)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-id_num, p-flight_num,p-ticket_num);return 1;printf(tt抱歉,沒有訂單號(hào)為%d的訂單信息!n,order_num);return 0;void check_all_passenger(passengerlist *plist)passengernode *p=plist-head-next;int m=0;printf(%-8s%-20s%-
39、20s%-10s%-8s%n,訂單號(hào),姓名,證件號(hào),航班號(hào),訂票數(shù)量);for(;p!=null;p=p-next)printf(%-8d%-20s%-20s%-10s%-8d%n,p-order_num,p-name,p-id_num, p-flight_num,p-ticket_num);m=1;if(m=0)printf(tt訂單信息為空!n);void passenger_check(passengerlist *plist)char name20,id_num15;int order_num;char a; printf(tt請(qǐng)選擇訂單查詢方式:n);printf(tt1表示按客戶姓
40、名和證件號(hào)進(jìn)行查詢;n);printf(tt2表示按訂單號(hào)進(jìn)行查詢;n);printf(tt3表示查看全部訂單信息.ntt請(qǐng)選擇輸入:);a=getch();printf(%cn,a);if(a=1)printf(tt請(qǐng)輸入客戶姓名:);scanf(%s,name);printf(tt請(qǐng)輸入證件號(hào):);scanf(%s,id_num);id_name_check(plist,name,id_num);else if(a=2)printf(tt請(qǐng)輸入訂單號(hào):);scanf(%d,&order_num);order_num_check(plist,order_num);else if(a=3)ch
41、eck_all_passenger(plist);elsereturn;void modify_flight(flightnode *&h,passengerlist *&plist)flightnode *p=h-next;char flight_num10,start_time10,end_time10;char a;printf(tt*航線信息修改*n);printf(tt*n);printf(tt* 增加航班-1 *n);printf(tt* 刪除航班-2 *n);printf(tt* 修改航班時(shí)間-3 *n);printf(tt*n);printf(tt請(qǐng)選擇:);a=getch()
42、;printf(%cn,a);if(a=1)add_flight(h);else if(a=2)delete_flight(h,plist);else if(a=3)printf(tt請(qǐng)輸入要修改的航班的航班號(hào):);scanf(%s,flight_num);if(flight_num_check(p,flight_num)=1)printf(tt請(qǐng)輸入修改后的起飛時(shí)間:);scanf(%s,start_time);printf(tt請(qǐng)輸入修改后的抵達(dá)時(shí)間:);scanf(%s,end_time);for(;p!=null;p=p-next)if(strcmp(flight_num,p-flig
43、ht_num)=0)strcpy(p-start_time,start_time);strcpy(p-end_time,end_time);printf(tt航班%s時(shí)間修改成功!n,flight_num);elsereturn;int book(flightnode *&h,passengerlist *&plist)char name20; /姓名char id_num20; /證件號(hào)char flight_num10; /航班號(hào)char start_place20;/起飛城市char end_place20; /抵達(dá)城市int ticket_num; /訂票數(shù)量int k;flightn
44、ode *p=h-next;printf(tt請(qǐng)輸入信息:n);printf(tt請(qǐng)輸入起飛城市:);scanf(%s,start_place);printf(tt請(qǐng)輸入抵達(dá)城市:);scanf(%s,end_place);if(place_check(h,start_place,end_place)=1)printf(tt航班號(hào):);scanf(%s,flight_num);while(flight_num=null)printf(航班號(hào)不能為空!n);printf(tt航班號(hào):);scanf(%s,flight_num);while(p!=null)if(strcmp(p-flight_n
45、um,flight_num)=0)printf(tt姓名:);scanf(%s,name);printf(tt證件號(hào)碼:);scanf(%s,id_num);printf(tt訂票數(shù)量:);scanf(%d,&ticket_num);while(name=null)printf(客戶姓名不能為空!n);printf(tt姓名:);scanf(%s,name);while(id_num=null)printf(客戶證件號(hào)碼不能為空!n);printf(tt證件號(hào)碼:);scanf(%s,id_num);while(ticket_num=0)printf(客戶訂票數(shù)量不能為空!n);printf(tt訂票數(shù)量:);scanf(%d,&ticket_num);if(p-left0&p-left=ticket_num)insert_passengerlist(h,plist,name,id_num,flight_num,tic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)旅居康養(yǎng)行業(yè)全國(guó)市場(chǎng)開拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)小家電行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)壓鑄行業(yè)營(yíng)銷創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)汽車經(jīng)銷行業(yè)并購(gòu)重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 網(wǎng)絡(luò)工程師工作總結(jié)5篇
- 建設(shè)項(xiàng)目環(huán)境設(shè)施竣工驗(yàn)收指南
- 面向智能網(wǎng)聯(lián)汽車的成熟駕駛模型白皮書 202311
- 家政培訓(xùn)師知識(shí)點(diǎn)課件
- 2023-2029年中國(guó)鐵路后行業(yè)發(fā)展監(jiān)測(cè)及市場(chǎng)發(fā)展?jié)摿︻A(yù)測(cè)報(bào)告
- 冷鏈物流園及配套基礎(chǔ)設(shè)施建設(shè)項(xiàng)目資金申請(qǐng)報(bào)告
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語文 Word版含答案
- 觸電與應(yīng)急知識(shí)培訓(xùn)總結(jié)
- 代理記賬機(jī)構(gòu)自查報(bào)告范文
- 項(xiàng)目貸款保證函書
- 新版標(biāo)準(zhǔn)日本語(初級(jí))上下冊(cè)單詞默寫表
- 面向5G網(wǎng)絡(luò)建設(shè)的站點(diǎn)供電技術(shù)應(yīng)用與發(fā)展
- 普通語文課程標(biāo)準(zhǔn)(2023年核心素養(yǎng)版)
- 洗滌劑常用原料
- 曼陀羅中毒課件
- (新版)焊工(初級(jí))理論知識(shí)考試200題及答案
- 滿堂腳手架計(jì)算書
評(píng)論
0/150
提交評(píng)論