




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中南大學(xué)信息科學(xué)與工程學(xué)院 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)課題:民航航班信息查詢(xún)與 客票發(fā)售服務(wù)系統(tǒng) 專(zhuān)業(yè)班級(jí):電子信息1101班 學(xué)生姓名:BOSS 學(xué)生學(xué)號(hào):090911 指導(dǎo)老師:BOSS 完成時(shí)間:2013年5月23日目錄1 前言-22 問(wèn)題描述-23 需求分析-34 程序設(shè)計(jì)-55 調(diào)試分析-126 問(wèn)題分析及心得體會(huì)-157 參考文獻(xiàn)-168 附錄:程序源代碼-17一前言 上學(xué)期學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu),為了能熟練掌握及運(yùn)用數(shù)據(jù)結(jié)構(gòu)的知識(shí),并且提高同學(xué)們的編程能力,因此進(jìn)行此次課程設(shè)計(jì)作業(yè),能有效地提升學(xué)生對(duì)算法的應(yīng)用能力。民航航班查詢(xún)及信息查詢(xún)服務(wù)系統(tǒng)運(yùn)用C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)知識(shí),達(dá)到了其基
2、本要求,實(shí)現(xiàn)了基本功能,并對(duì)程序進(jìn)行了優(yōu)化,以達(dá)到最佳效果。在設(shè)計(jì)前制定一個(gè)設(shè)計(jì)方案,明確設(shè)計(jì)目標(biāo),方法和過(guò)程,參閱相關(guān)文獻(xiàn),咨詢(xún)老師和同學(xué),嚴(yán)格按照方案進(jìn)行課程設(shè)計(jì),最終解決問(wèn)題,完成設(shè)計(jì)任務(wù)要求。二問(wèn)題描述 1.問(wèn)題描述設(shè)民航售票處的計(jì)算機(jī)系統(tǒng)可以為客戶(hù)提供下列各項(xiàng)服務(wù):(1)查詢(xún)航線(xiàn):根據(jù)旅客提出的終點(diǎn)站名輸出下列信息:航班號(hào)、飛機(jī)號(hào)、星期幾飛行,最近一天航班的日期和余票額;(2)承辦訂票業(yè)務(wù):根據(jù)客戶(hù)提出的要求(航班號(hào)、訂票數(shù)額)查詢(xún)?cè)摵桨嗥鳖~情況,若尚有余票,則為客戶(hù)辦理訂票手續(xù),輸出座位號(hào);若已滿(mǎn)員或余票額少于訂票額,則需重新詢(xún)問(wèn)客戶(hù)要求。若需要,可預(yù)約登記排隊(duì)等候;(3)承辦退票
3、業(yè)務(wù):根據(jù)客戶(hù)提供的情況(日期、航班),為客戶(hù)辦理退票手續(xù),然后查詢(xún)?cè)摵桨嗍欠裼腥祟A(yù)約登記,首先詢(xún)問(wèn)排在第一的客戶(hù),若所退票額能滿(mǎn)足他的要求,則為他辦理訂票手續(xù),否則依次詢(xún)問(wèn)其他排隊(duì)預(yù)約的客戶(hù)。2.要求編制便于人機(jī)對(duì)話(huà)的程序,實(shí)現(xiàn)上述服務(wù)項(xiàng)目。測(cè)試數(shù)據(jù)自定3.實(shí)現(xiàn)提示每條航線(xiàn)應(yīng)包括的信息有:終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行日期(星期幾)、乘員定額、余票額、已訂票的客戶(hù)名單(包括姓名、訂票額、座位號(hào))和預(yù)約登記的客戶(hù)名單(包括姓名、所需票額)。這最后兩項(xiàng)顯然是一個(gè)線(xiàn)性表和一個(gè)隊(duì)列。為查找方便、已訂票客戶(hù)的線(xiàn)性表應(yīng)按客戶(hù)姓名有序,并且,為插入和刪除方便,應(yīng)以鏈表作存儲(chǔ)結(jié)構(gòu)。由于預(yù)約人數(shù)無(wú)法預(yù)計(jì),隊(duì)列
4、也應(yīng)以鏈表作存儲(chǔ)結(jié)構(gòu)。整個(gè)系統(tǒng)需匯總各條航線(xiàn)的情況登錄在一張線(xiàn)性表上,由于航線(xiàn)基本不變,可采用順序存儲(chǔ)結(jié)構(gòu),并按航班有序或按終點(diǎn)站名有序。每條航線(xiàn)是這張表上的一個(gè)記錄、包含上述八個(gè)域、其中乘員名單域?yàn)橹赶虺藛T名單鏈表的頭指針,預(yù)約登記客戶(hù)名單域?yàn)榉謩e指向隊(duì)頭和隊(duì)尾的指針。三需求分析 訂票系統(tǒng)能夠?qū)崿F(xiàn)全部航線(xiàn)信息的瀏覽功能、訂票客戶(hù)信息的查詢(xún)功能、單條航線(xiàn)查詢(xún)功能、訂票功能和退票功能 。 具體分析如下: a) 全部航線(xiàn)信息的瀏覽功能 瀏覽全部系統(tǒng)預(yù)設(shè)的航線(xiàn)信息,每條航線(xiàn)包含的信息有:終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行周日(星期幾飛行)、乘員定額和余票量。 b) 訂票客戶(hù)信息的查詢(xún)功能 根據(jù)輸入的航班
5、號(hào)查詢(xún)?cè)摵骄€(xiàn)所有訂票客戶(hù)的信息,包括客戶(hù)姓名、訂票數(shù)額和艙位等級(jí)。c) 單條航線(xiàn)查詢(xún)功能 根據(jù)客戶(hù)輸入的終點(diǎn)站名查看該航線(xiàn)上所涉及的信息。d) 訂票功能 根據(jù)客戶(hù)提出的要求(航班號(hào)、訂票數(shù)量)查詢(xún)?cè)摵桨嗥鳖~情況,若尚有余票,則為客戶(hù)辦理訂票手續(xù),輸出座位號(hào);若已滿(mǎn)員或余票額少于定票額,則詢(xún)問(wèn)客戶(hù)是否愿意排隊(duì)等候,若愿意,系統(tǒng)則自動(dòng)登記排隊(duì)候補(bǔ)。 e) 退票功能 根據(jù)客戶(hù)提供的情況(航班、姓名),詢(xún)問(wèn)退票張數(shù),后為客戶(hù)辦理退票手續(xù)。接著系統(tǒng)自動(dòng)查詢(xún)?cè)摵桨嗍欠裼腥伺抨?duì)候補(bǔ),首先詢(xún)問(wèn)排在第一的客戶(hù),若所退票額能滿(mǎn)足他的要求,則為他辦理訂票手續(xù),否則依次詢(xún)問(wèn)其他排隊(duì)候補(bǔ)的客戶(hù)。 4 程序設(shè)計(jì) 1.功能
6、模塊 此課程設(shè)計(jì)包含七大模塊,分別是主菜單、后臺(tái)控制、航線(xiàn)信息輸入、航線(xiàn)查詢(xún)、訂票服務(wù)、退票服務(wù)、訂票客戶(hù)名單。 2.模塊結(jié)構(gòu)圖航線(xiàn)查詢(xún) 主菜單訂票服務(wù)退票服務(wù)航線(xiàn)信息錄入航線(xiàn)查詢(xún)后臺(tái)操作已訂票客戶(hù)名單返回主界面 3.模塊算法說(shuō)明 <1>航線(xiàn)查詢(xún)模塊 void search() 根據(jù)終點(diǎn)站名輸出航線(xiàn)信息,struct airline *info;指向每個(gè)航班信息結(jié)構(gòu) <2>后臺(tái)操作 void displayb(void) 進(jìn)入后臺(tái)操作,進(jìn)行航線(xiàn)信息錄入、航線(xiàn)查詢(xún)、已訂票客戶(hù)名單查詢(xún)等操作 <3>航線(xiàn)信息錄入 int input(void) 航班信息輸入,錄入
7、每條航線(xiàn)基本信息,供程序后續(xù)使用 <4>航線(xiàn)信息顯示 void display(struct airline *info) 顯示單條航線(xiàn)信息 void list(void) 顯示所有航線(xiàn)信息 <5> 訂票服務(wù) void book(void) 查詢(xún)航線(xiàn)信息后,根據(jù)需求進(jìn)行訂票,以typedef struct ord_ros結(jié)構(gòu)體進(jìn)行存儲(chǔ) <6>退票服務(wù) refund() 輸入所要退票航班號(hào)以及票數(shù),進(jìn)行退票服務(wù)退票后若有排隊(duì)預(yù)約等候的客戶(hù),則自動(dòng)進(jìn)行定票 <7>已訂票客戶(hù)查詢(xún) void prtlink(void) 根據(jù)每個(gè)航班信息,查詢(xún)此航班已訂票
8、客戶(hù)信息 4.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) <1>航線(xiàn)結(jié)構(gòu)體 struct airline /定義航線(xiàn)結(jié)構(gòu)體 char flinum10; /航班號(hào) char begin12; /起始站 char end12; /終點(diǎn)站 char flynum12;/飛行號(hào) char flydate12;/飛行日期 char betime10; /起飛時(shí)間 char entime10; /到達(dá)時(shí)間 int price;/票價(jià) int total; /乘員定額 int residue; /余票 linklist *order;/*乘員名單域,指向乘員名單鏈表的頭指針*/ linkqueue wait;/*等候替補(bǔ)的
9、客戶(hù)名單域,分別指向排隊(duì)等候名單隊(duì)頭隊(duì)尾的指針*/;struct airline airMAX,*r; <2>已訂票結(jié)構(gòu)體 typedef struct ord_ros/已訂票客戶(hù) char name10;/客戶(hù)姓名 int ord_amt;/訂票量 int seat_num;/座位號(hào) struct ord_ros *next;linklist;<3>訂票客戶(hù)名單結(jié)構(gòu)體typedef struct wat_ros/隊(duì)列存儲(chǔ)結(jié)構(gòu) 訂票客戶(hù)名單 char name10;/姓名 int req_amt;/訂票量 struct wat_ros *next;qnode,*qptr
10、;<4>預(yù)約排隊(duì)等候客戶(hù)結(jié)構(gòu)體typedef struct pqueue /定義單鏈隊(duì)列 qptr front;/等候替補(bǔ)客戶(hù)名單域的頭指針 qptr rear;/等候替補(bǔ)客戶(hù)名單域的尾指針linkqueue; 5.數(shù)據(jù)結(jié)構(gòu)其他函數(shù) inklist *insertlink(linklist *head,int amount,char name) /增加訂票乘員名單域的客戶(hù)信息 linkqueue appendqueue(linkqueue q,char name,int amount) /增加排隊(duì)等候的客戶(hù)名單域 void display(struct airline *info)
11、 /打印每條航線(xiàn)的基本信息 6.部分函數(shù)流程圖(1)已訂票客戶(hù)信息 輸入航班號(hào) 調(diào)用find()函數(shù) P!=NULLN該航線(xiàn)沒(méi)有客戶(hù)信息!輸出客戶(hù)信息 結(jié)束 輸入終點(diǎn)站名 (2)查詢(xún)航線(xiàn)i<number !strcmp(name,info->end) info+,i+ 調(diào)用void serach(void)函數(shù)輸出 結(jié)束 開(kāi)始(3)辦理訂票業(yè)務(wù) 輸入航班號(hào) info=find() N Y 客戶(hù)訂票額不超過(guò) 乘員定額 客戶(hù)登記信息 Y在排隊(duì)等候乘員名單域中添加客戶(hù)信息 加到客戶(hù)名單域inklist *insertlink(linklist *head,int amount,char
12、name) 結(jié)束 開(kāi)始(5)辦理退票業(yè)務(wù) 輸入航班號(hào)是否找到N 輸入姓名Y是否找到N輸入退票張數(shù)Y退票成功,刪除客戶(hù)信息重新將航線(xiàn)名單域指向訂票單鏈表的頭指針,r指向排隊(duì)等候名單隊(duì)列的尾結(jié)點(diǎn),f指向排隊(duì)等候名單隊(duì)列的頭結(jié)點(diǎn),t=f滿(mǎn)足條件者為頭結(jié)點(diǎn)N將客戶(hù)信息插到訂票客戶(hù)名單鏈表t不為空Y將客戶(hù)信息插到訂票客戶(hù)名單鏈表中 結(jié)束5 調(diào)試分析 1.調(diào)試結(jié)果顯示 <1>主菜單 <2>后臺(tái)操作 <3>航線(xiàn)信息錄入<4> 航線(xiàn)信息查詢(xún)<6>訂票服務(wù)<7>航線(xiàn)查詢(xún)<8>退票服務(wù) <9>已訂票客戶(hù)名單 2.時(shí)間復(fù)
13、雜度分析 瀏覽遍歷整張航線(xiàn)線(xiàn)性表的時(shí)間復(fù)雜度:O(1); 線(xiàn)性表的插入和刪除操作的時(shí)間復(fù)雜度:O(n); 查詢(xún)?yōu)榫€(xiàn)性表的查找,時(shí)間復(fù)雜度:O(n); 訂票為線(xiàn)性表的查找,時(shí)間復(fù)雜度:O(n); 退票是查找兩張線(xiàn)性表,時(shí)間復(fù)雜度為:O(n*e),其中n為航班總數(shù),e為對(duì)應(yīng)航班已訂票人數(shù)。6 問(wèn)題分析及心得體會(huì)在此次課程設(shè)計(jì)過(guò)程中,遇到了很多困難,在自己查資料、思考、不懈努力和老師、同學(xué)的幫助下,最終解決所有問(wèn)題,完成了設(shè)計(jì)任務(wù),在此感謝老師和同學(xué)的指導(dǎo)。首先,怎樣進(jìn)行整體結(jié)構(gòu)的設(shè)計(jì),沒(méi)有模板,只能自己摸索。我將所需功能與要求列出來(lái),設(shè)計(jì)了主界面和后臺(tái)操作兩大主操作界面,每個(gè)操作界面具有各自的操作
14、功能。然后,怎樣進(jìn)行訂票服務(wù)和退票服務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),這是整個(gè)程序的關(guān)鍵所在。查詢(xún)了網(wǎng)絡(luò)和書(shū)籍資料,經(jīng)過(guò)數(shù)十次的修正與改進(jìn),將這兩個(gè)重要模塊設(shè)計(jì)出來(lái)了。接著,依據(jù)總體設(shè)計(jì)思想,分別設(shè)計(jì)了航線(xiàn)錄入、航線(xiàn)信息查詢(xún)、已訂票客戶(hù)名單等模塊。在設(shè)計(jì)的過(guò)程中,變量的定義,參數(shù)的傳遞,函數(shù)的調(diào)用等各方面大大小小的問(wèn)題層出不窮,為此,只有仔細(xì)認(rèn)真、不急不躁才能解決這些小問(wèn)題,經(jīng)過(guò)一番努力,整個(gè)程序設(shè)計(jì)出現(xiàn)的問(wèn)題全部解決,完成了課程設(shè)計(jì)要求。這次的課程設(shè)計(jì),是對(duì)計(jì)算機(jī)語(yǔ)言運(yùn)用能力的提高,并且將所學(xué)的數(shù)據(jù)結(jié)構(gòu)知識(shí)應(yīng)用在程序設(shè)計(jì)之中,提高了程序的使用效率,也可完成大功能設(shè)計(jì)要求。函數(shù)參數(shù)傳遞,必須要準(zhǔn)確地指向目標(biāo)結(jié)
15、構(gòu)體和變量,函數(shù)的聲明、定義、調(diào)用,函數(shù)類(lèi)型的對(duì)應(yīng)都要注意,盡量避免全局變量的使用。指針與數(shù)組的結(jié)合使用,注意數(shù)組類(lèi)型,指針指向。鏈表和隊(duì)列的建立,要注意頭結(jié)點(diǎn)、尾節(jié)點(diǎn),數(shù)據(jù)域、指針域的寫(xiě)法和傳遞。 經(jīng)過(guò)這次為期數(shù)周的課程實(shí)驗(yàn)設(shè)計(jì),我收獲了很多,不僅在語(yǔ)言上的進(jìn)步,還有設(shè)計(jì)思想的構(gòu)建,又一次對(duì)C語(yǔ)言有了新的認(rèn)識(shí),對(duì)數(shù)據(jù)結(jié)構(gòu)知識(shí)有了更深的掌握,并認(rèn)識(shí)到編程習(xí)慣的重要性。在遇到困難時(shí),我們應(yīng)該想著怎么去解決,而不是逃避。最大可能地利用各種資源,多思考,多動(dòng)手,冷靜沉著,不氣餒。7 參考文獻(xiàn) 1.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版) 嚴(yán)蔚敏 吳偉民 編著 清華大學(xué) 出版社 1997; 2.C語(yǔ)言程序設(shè)計(jì)(第二版)
16、李麗娟 馬淑萍 主編 中國(guó) 鐵道出版社 2009;八附錄:程序源代碼#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX 50typedef struct ord_ros/已訂票客戶(hù) char name10;/客戶(hù)姓名 int ord_amt;/訂票量 int seat_num;/座位號(hào) struct ord_ros *next;linklist;typedef struct wat_ros/隊(duì)列存儲(chǔ)結(jié)構(gòu) 訂票客戶(hù)名單 char name10;/姓名 int req_amt;/訂票量
17、 struct wat_ros *next;qnode,*qptr;typedef struct pqueue /定義單鏈隊(duì)列 qptr front;/等候替補(bǔ)客戶(hù)名單域的頭指針 qptr rear;/等候替補(bǔ)客戶(hù)名單域的尾指針linkqueue;struct airline /定義航線(xiàn)結(jié)構(gòu)體 char flinum10; /航班號(hào) char begin12; /起始站 char end12; /終點(diǎn)站 char flynum12;/飛行號(hào) char flydate12;/飛行日期 char betime10; /起飛時(shí)間 char entime10; /到達(dá)時(shí)間 int price;/票價(jià)
18、int total; /乘員定額 int residue; /余票 linklist *order;/乘員名單域,指向乘員名單鏈表的頭指針 linkqueue wait;/等候替補(bǔ)的客戶(hù)名單域,分別指向排隊(duì)等候名單隊(duì)頭隊(duì)尾的指針;void search(void);/航線(xiàn)查詢(xún)void book(void);/訂票void refund(void);/退票void displaya(void);/主界面顯示void displayb(void);/后臺(tái)界面顯示void display(struct airline *info);/航線(xiàn)信息顯示linkqueue appendqueue(linkq
19、ueue q,char name,int amount);linklist *insertlink(linklist *head,int amount,char name);void list(void);struct airline * find(void);void prtlink(void);int input(void);/航班信息輸入struct airline airMAX, * r;int j,number;int i=0;void displaya(void) for(;) int a; printf("民航航班信息查詢(xún)與客票發(fā)售服務(wù)系統(tǒng)n"); print
20、f("1.航線(xiàn)查詢(xún)n"); printf("2.訂票服務(wù)n"); printf("3.退票服務(wù)n"); printf("0.后臺(tái)操作n"); printf("請(qǐng)選擇功能項(xiàng):"); scanf("%d",&a); switch(a) case 1: system("cls"); search(); break; case 2: system("cls"); book(); break; case 3: system("c
21、ls"); refund(); break; case 0: system("cls"); displayb(); void displayb(void)system("cls");for(;) int a; printf("民航航班系統(tǒng)后臺(tái)操作n"); printf("1.航線(xiàn)錄入n"); printf("2.航線(xiàn)查詢(xún)n"); printf("3.已訂票客戶(hù)名單n"); printf("4.返回主界面 n"); printf("請(qǐng)選擇
22、功能項(xiàng):"); scanf("%d",&a); switch(a) case 1: system("cls"); input(); break; case 2: system("cls"); list(); break; case 3: system("cls"); prtlink(); break; case 4: system("cls"); displaya(); break; int input(void)/航班信息輸入 int j=0; char ch; do pri
23、ntf("請(qǐng)輸入航線(xiàn)信息n"); printf("航班號(hào) 起始站 終點(diǎn)站 飛行號(hào) 飛行日期 起飛時(shí)間 到達(dá)時(shí)間 票價(jià) 乘員定額 余票額 n"); scanf(" %s %s %s %s %s %s %s %d %d %d",&airj.flinum,&airj.begin,&airj.end,&airj.flynum, &airj.flydate,&airj.betime,&airj.entime,&airj.price,&airj.total,&airj
24、.residue);j+;fflush(stdin); printf("n是否繼續(xù)輸入?(Y/N)"); scanf("%c",&ch); while(ch='Y'|ch='y'); number=j;return 0;void display(struct airline *info)/打印每條航線(xiàn)的基本信息 printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8d%-8d%-8d%n", airi.flinum,airi.begin,airi.end,airi.fly
25、num, airi.flydate,airi.betime,airi.entime,airi.price,airi.total,airi.residue);void list(void)/打印全部航線(xiàn)信息 struct airline *info; info=r; printf("航班號(hào) 起點(diǎn)站 終點(diǎn)站 飛行號(hào) 飛行日期 起飛時(shí)間 到達(dá)時(shí)間 票價(jià) 乘員定額 余票額n"); while(i<number) display(info); info+; i+; printf("nn"); getch();void search(void)/根據(jù)終點(diǎn)站名輸
26、出航線(xiàn)信息 struct airline *info; char name10; int i=0; info=r; printf("請(qǐng)輸入終點(diǎn)站名:"); scanf("%s",name); while(i<number) if(!strcmp(name,info->begin) break; info+; i+; if(i>=number) printf("對(duì)不起,無(wú)此航線(xiàn)!n"); else printf("航班號(hào) 起始站 終點(diǎn)站 飛行號(hào) 飛行日期 起飛時(shí)間 到達(dá)時(shí)間 票價(jià) 乘員定額 余票額n"
27、;); display(info); struct airline *find(void)/航班號(hào)查詢(xún)并以指針形式返回 struct airline *info; char num10; int i=0; info=r; printf("請(qǐng)輸入航班號(hào):"); scanf("%s",num); while(i<number) if(!strcmp(num,info->flinum) return info; info+; i+; printf("對(duì)不起,無(wú)此航班!n"); return NULL;void prtlink(v
28、oid)/打印訂票乘員名單域的客戶(hù)名單信息 linklist *p; struct airline *info; info=find(); p=info->order; if(p!=NULL) printf("客戶(hù)姓名 訂票數(shù)額 n"); while(p) printf("%stt%dtn",p->name,p->ord_amt); p=p->next; else printf("此航線(xiàn)無(wú)客戶(hù)信息!n");linklist *insertlink(linklist *head,int amount,char n
29、ame)/增加訂票乘員名單域的客戶(hù)信息 linklist *p1,*NEW; p1=head; NEW=(linklist *)malloc(sizeof(linklist); if(!NEW) printf("nOut of memory!n");return NULL; strcpy(NEW->name,name); NEW->ord_amt=amount; NEW->next=NULL; if(head=NULL)/若原無(wú)訂票客戶(hù)信息 head=NEW;NEW->next=NULL; else head=NEW; NEW->next=p1
30、; return head;linkqueue appendqueue(linkqueue q,char name,int amount)/增加排隊(duì)等候的客戶(hù)名單域 qptr NEW; NEW=(qptr)malloc(sizeof(qnode); strcpy(NEW->name,name); NEW->req_amt=amount; NEW->next=NULL; if(q.front=NULL)/若原排隊(duì)等候客戶(hù)名單域?yàn)榭?q.front=NEW; else q.rear->next=NEW; q.rear=NEW; return q;void book(void
31、)/訂票業(yè)務(wù) struct airline *info; int amount; char name10; info=r; if(!(info=find() return;/根據(jù)客戶(hù)提供的航班號(hào)進(jìn)行查詢(xún),如為空,退出該模塊 printf("請(qǐng)輸入您訂票的數(shù)量:"); scanf("%d",&amount); if(amount>info->total)/若客戶(hù)訂票額超過(guò)乘員定票總額,退出 printf("n對(duì)不起,您輸入訂票的數(shù)量已經(jīng)超過(guò)乘員定額!"); return; if(amount<=info->
32、;residue)/若客戶(hù)訂票額末超過(guò)余票量,訂票成功并等記信息 int i; printf("請(qǐng)輸入您的姓名:"); scanf("%s",name); info->order=insertlink(info->order,amount,name);/在訂票乘員名單域中添加客戶(hù)信息 for(i=0;i<amount;i+)/依次輸出該訂票客戶(hù)的座位號(hào) printf("%s的座位號(hào)是:%dn",name,info->total-info->residue+i+1); info->residue-=a
33、mount;/該航線(xiàn)的余票量應(yīng)減掉該客戶(hù)的訂票量 printf("n訂票成功,祝您旅途愉快!n"); else /若滿(mǎn)員或余票額少于訂票額,詢(xún)問(wèn)客戶(hù)是否需要進(jìn)行排隊(duì)等候 char e; printf("n已經(jīng)沒(méi)有更多的票,您需要排隊(duì)等候嗎?(需要請(qǐng)按'Y',若不需要請(qǐng)按'N')"); fflush(stdin); scanf("%c", &e); if(e='Y'|e='y') printf("n請(qǐng)輸入您的姓名:"); scanf("
34、%s",name); info->wait=appendqueue(info->wait,name,amount);/在排隊(duì)等候乘員名單域中添加客戶(hù)信息 printf("n注冊(cè)成功!n"); else printf("n歡迎您再次使用!n"); void refund(void) /退票模塊 struct airline *info; qnode *t,*back,*f,*re; int num; linklist *p1,*p2,*head; char cusname10; if(!(info=find() return;/調(diào)用查
35、詢(xún)函數(shù),根據(jù)客戶(hù)提供的航線(xiàn)進(jìn)行搜索 head=info->order; p1=head; printf("請(qǐng)輸入您的姓名:"); scanf("%s",cusname); while(p1!=NULL) /根據(jù)客戶(hù)提供的姓名到訂票客戶(hù)名單域進(jìn)行查詢(xún) if(!strcmp(cusname,p1->name) break; p2=p1;p1=p1->next; if(p1=NULL) printf("對(duì)不起,您沒(méi)有訂過(guò)票!n");return;/若未找到,退出本模塊 else/若信息查詢(xún)成功,刪除訂票客戶(hù)名單域中的信息 printf("您的訂票量為:%dn",p1->ord_amt); printf("請(qǐng)輸入您的退票數(shù)量:"); scanf("%d",&num); if(p1=head) if(p1->ord_amt=num) head=p1->next;free(p1); else if(p1->ord_amt>num) head->ord_amt-=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外墻涂料購(gòu)銷(xiāo)合同書(shū)
- 2025年安徽財(cái)貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)附答案
- 市場(chǎng)營(yíng)銷(xiāo)策略實(shí)戰(zhàn)應(yīng)用作業(yè)指導(dǎo)書(shū)
- 項(xiàng)目策劃與管理操作手冊(cè)
- 2025年安徽城市管理職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)匯編
- 2025年內(nèi)蒙古貨運(yùn)車(chē)從業(yè)資格證考試內(nèi)容
- 建筑總承包合同書(shū)
- 建設(shè)工程施工承包協(xié)議書(shū)
- 招投標(biāo)管理論文
- 代理銷(xiāo)售指定產(chǎn)品合同書(shū)
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)1套
- 國(guó)網(wǎng)公司安全責(zé)任清單
- 2025屆高考百日誓師大會(huì)校長(zhǎng)發(fā)言稿
- 膀胱癌護(hù)理疑難病例討論
- 2025年春期六年級(jí)班主任工作計(jì)劃
- 2025年江西電力職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 譯林版小學(xué)英語(yǔ)四年級(jí)上冊(cè)單詞表(分單元含音標(biāo))
- 2025年江蘇無(wú)錫市屬?lài)?guó)有企業(yè)招聘筆試參考題庫(kù)含答案解析
- 2025新人教版語(yǔ)文七年級(jí)下冊(cè)《第四單元》大單元整體教學(xué)設(shè)計(jì)2022課標(biāo)
- 2024年非高危行業(yè)生產(chǎn)經(jīng)營(yíng)單位主要負(fù)責(zé)人及安全管理人員安全生產(chǎn)知識(shí)和管理能力試題庫(kù)附答案
- 《慢性腎臟病相關(guān)心肌病綜合管理中國(guó)專(zhuān)家共識(shí)(2024版)》解讀
評(píng)論
0/150
提交評(píng)論