




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 沈陽 理 工 大 學課 程 設 計課 程 數(shù)據(jù)結(jié)構(gòu)課程設計 題 目 航班客運訂票系統(tǒng) 院 系 信息工程與自動化學院 專業(yè)班級 通信工程102 姓 名 學 號 201210404225 指導教師 2015年12月30日目錄一、設計任務與要求11.1課程設計目的11.2課程設計題目11.3課程設計內(nèi)容11.4 實現(xiàn)提示1二、需求分析2三、概要設計23.1系統(tǒng)結(jié)構(gòu)圖23.2 算法設計43.3 存儲結(jié)構(gòu)設計4四、詳細設計64.1 數(shù)據(jù)類型定義64.2 函數(shù)定義74.3 函數(shù)流程圖74.4 程序的設計思想12五、調(diào)試分析125.1 程序測試125.2 時間復雜度分析135.3 算法的改進設想13六、問
2、題分析及課程設計的心得體會14七、源程序15一、設計任務與要求1.1 課程設計目的1數(shù)據(jù)結(jié)構(gòu)課程設計是綜合運用數(shù)據(jù)結(jié)構(gòu)課程中學到的幾種典型數(shù)據(jù)結(jié)構(gòu),以及程序設計語言(C語言),自行實現(xiàn)一個較為完整的應用系統(tǒng)。2通過課程設計,自己通過系統(tǒng)分析、系統(tǒng)設計、編程調(diào)試,寫實驗報告等環(huán)節(jié),進一步掌握應用系統(tǒng)設計的方法和步驟,靈活運用并深刻理解典型數(shù)據(jù)結(jié)構(gòu)在軟件開發(fā)中的應用。3 學會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能力。(1)熟練掌握鏈表存儲結(jié)構(gòu)及其建立過程和常用操作;(2)熟練掌握隊列的建立過程和常用操作;(3)學會自己調(diào)試程序的方法并掌握一定的技巧。1.2課程設計題目1、 每
3、條航線所涉及的信息有:終點站名、航班號、飛機號、飛機周日(星期幾)、乘員定額、余票量、訂定票的客戶名單(包括姓名、訂票量、艙位等級1,2或3)以及等候替補的客戶名單(包括姓名和所需數(shù)量)。2、 系統(tǒng)能實現(xiàn)的操作和功能如下:1) 查詢航線:根據(jù)客戶提出的終點站名輸出如下信息:航班號、飛機號、星期幾飛行和余票額;2) 承辦訂票業(yè)務:根據(jù)客戶提出的要求(航班號、訂票數(shù)額)查詢該航班票額情況,若有余票,則為客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票量少余訂票額,則需重新詢問客戶要求。若需要,可登記排隊候補;3) 承辦退票業(yè)務:根據(jù)客戶提出的情況(日期、航班號),為客戶辦理退票手續(xù),然后查詢該航班是否
4、有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其它排隊候補的客戶。1.3 課程設計內(nèi)容 航空客運訂票的業(yè)務活動包括:查詢航線、客票預訂和辦理退票等。設計一個航空客運訂票系統(tǒng),以使上述業(yè)務可以借助計算機來完成。 1.4 實現(xiàn)提示 兩個客戶名單分別由線性表和隊列實現(xiàn)。為查找方便,已訂票客戶的線性表應按客戶姓名有序,并且,為了插入和刪除方便,以鏈表作為存儲結(jié)構(gòu)。由于預約人數(shù)無法預計,隊列也用鏈表作為存儲結(jié)構(gòu)。整個系統(tǒng)需匯總各條航線的情況登錄在一張線性表上,由于航線不變,可采用順序存儲結(jié)構(gòu),并按航班有序或終點站名有序。每條航線是這張表上的一個記錄,包含
5、上述8個域,其中乘員名單域為指向成員名單鏈表的頭指針,等候替補的客戶名單域為分別指向?qū)︻^和隊尾的指針。二、需求分析 本訂票系統(tǒng)能夠?qū)崿F(xiàn)全部航線信息的瀏覽功能、訂票客戶信息的查詢功能、單條航線查詢功能、訂票功能和退票功能 。具體分析如下: a) 全部航線信息的瀏覽功能 瀏覽全部系統(tǒng)預設的航線信息,每條航線包含的信息有:終點站名、航班號、飛機號、飛行周日(星期幾飛行)、乘員定額和余票量。 b) 訂票客戶信息的查詢功能根據(jù)輸入的航班號查詢該航線所有訂票客戶的信息,包括客戶姓名、訂票數(shù)額和艙位等級。c) 單條航線查詢功能 根據(jù)客戶輸入的終點站名查看該航線上所涉及的信息。d) 訂票功能根據(jù)客戶提出的要求
6、(航班號、訂票數(shù)量)查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票額少于定票額,則詢問客戶是否愿意排隊等候,若愿意,系統(tǒng)則自動登記排隊候補。 e) 退票功能 根據(jù)客戶提供的情況(航班、姓名),詢問退票張數(shù),然后為客戶辦理退票手續(xù)。接著系統(tǒng)自動查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其他排隊候補的客戶。 三、概要設計3.1 系統(tǒng)結(jié)構(gòu)圖(功能模塊圖) 航空訂票系統(tǒng) 退 出 系 統(tǒng) 瀏 覽 航 線 信 息 瀏 覽 訂 票 客 戶 信 息 辦 理 退 票 業(yè) 務 辦 理 訂 票 業(yè) 務 查 詢 航
7、線圖3-1航空訂票系統(tǒng)系統(tǒng)結(jié)構(gòu)圖- 21 -3.2 算法設計(每個模塊的算法設計說明) (1) 瀏覽航線模塊: 定義void display( struct airline *info),用info指向結(jié)構(gòu)體struct airline中的每一個成員;調(diào)用list()函數(shù)輸出全部航線信息。 (2) 瀏覽訂票客戶信息模塊: 定義訂票客戶信息的結(jié)構(gòu)體ord_ros,根據(jù)輸入航班號調(diào)用find()函數(shù)尋找客戶信息。 (3) 查詢航線模塊: 順著單鏈表查找,如果與航班號(航線)一致,輸出相關(guān)信息,否則,查詢不成功。 (4) 訂票模塊: 查找乘客要訂的航班號,判斷此航班是否有空位,有則輸入乘客有關(guān)信息,
8、訂票成功, 否則失敗。 (5) 退票模塊: 輸入要退票的乘客姓名,查找乘客資料的鏈表中是否有這位乘客,有則刪去此節(jié)點,并在空位上加1,無則退票失敗。如果此時余票額大于等于候補客戶的訂票數(shù)量,那么候補客戶訂票成功。3.3 存儲結(jié)構(gòu)設計 (1) 航班的信息:為了便于查找,航班情況的存儲結(jié)構(gòu)采用單鏈表,每個元素表示一個航班的情況,包括終點站名、航班號、飛機號、星期幾、乘員定額和余票量,共六個數(shù)據(jù)項:終點站名航班號飛機號星期幾乘員定額余票量 單鏈表如下:D3D2D1h 每個節(jié)點包含數(shù)據(jù)域和指針域:指針域數(shù)據(jù)域 圖3-2 航班的存儲結(jié)構(gòu)C語言描述如下: struct airline char ter_n
9、ame10;/*終點站名 */ char air_num10;/*航班號*/ char plane_num10;/*飛機號*/ char day7;/*飛行周日(星期幾)*/ int tkt_amt;/*乘員定額*/ int tkt_sur;/*余票量*/ linklist *order;/*乘員名單域,指向乘員名單鏈表的頭指針*/ linkqueue wait;/*等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針*/lineinfo;struct airline *start; (2)訂票乘客的資料:為了便于插入和刪除,同樣采用單鏈表存儲結(jié)構(gòu),每個數(shù)據(jù)元素包括姓名、訂票量和艙位等級三
10、個數(shù)據(jù)項: 乘客姓名 訂票量 余票量 PtrPtrPtrPtr圖3-3訂票結(jié)點的創(chuàng)建C語言描述如下:typedef struct ord_ros char name10;/*客戶姓名*/ int ord_amt;/*訂票量*/ int grade;/*艙位等級*/ struct ord_ros *next;linklist;起飛城市抵達城市起飛時間抵達時間航班號票價剩余票量訂票信息的指針*ptr自身指針*next航班信息結(jié)點(Airplane)客戶姓名身份證號設置的密碼訂票數(shù)量自身指針*next訂票信息結(jié)點(message)圖3-4結(jié)點類型4、 詳細設計4.1 數(shù)據(jù)類型定義 (1)已訂票客戶的
11、結(jié)點: typedef struct ord_ros char name10;/*客戶姓名*/ int ord_amt;/*訂票量*/ int grade;/*艙位等級*/ struct ord_ros *next;linklist; (2)候補客戶的結(jié)點: typedef struct wat_ros char name10;/*姓名*/ int req_amt;/*訂票量*/ struct wat_ros *next;qnode,*qptr;typedef struct pqueue /*定義單鏈隊列*/ qptr front;/*等候替補客戶名單域的頭指針*/ qptr rear;/*等
12、候替補客戶名單域的尾指針*/linkqueue; (3)航班結(jié)點: struct airline char ter_name10;/*終點站名 */ char air_num10;/*航班號*/ char plane_num10;/*飛機號*/ char day7;/*飛行周日(星期幾)*/ int tkt_amt;/*乘員定額*/ int tkt_sur;/*余票量*/ linklist *order;/*乘員名單域,指向乘員名單鏈表的頭指針*/ linkqueue wait;/*等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針*/lineinfo;struct airline *s
13、tart;4.2 函數(shù)定義 (1)航線輸出函數(shù) 函數(shù)名:void list() 操作結(jié)果:輸出全部航線信息 (2)航線查詢函數(shù) 函數(shù)名:void search() 操作結(jié)果:進行航班查詢 (3)候補結(jié)點隊列函數(shù) 函數(shù)名:linkqueue appendqueue(linkqueue q,char name,int amount) 操作結(jié)果:增加候補客戶名單域 入隊 出隊 判空 (4)客戶訂票函數(shù) 函數(shù)名:void order() 操作結(jié)果:進行客戶訂票操作 (5)客戶退票函數(shù) 函數(shù)名:void return_tkt() 操作如果:進行客戶退票操作 (6)訂票客戶查詢函數(shù) 函數(shù)名:void pr
14、tlink() 操作結(jié)果:進行訂票客戶信息查詢操作 (7)主菜單控制函數(shù) 函數(shù)名:int menu_select() 操作結(jié)果:a) 瀏覽航線信息 b) 瀏覽已訂票客戶信息 c) 查詢航線 d) 辦理訂票業(yè)務 e) 辦理退票業(yè)務 f)退出系統(tǒng)4.3 函數(shù)流程圖(1)瀏覽已訂票客戶信息 輸入航班號 結(jié)束輸出客戶信息 P!=NULL 調(diào)用find()函數(shù)N該航線沒有客戶信息!Y 輸入終點站名(2 ) 查詢航線 i<MAXSIZE 該航線 未找到 結(jié)束 調(diào)用display(info)函數(shù)輸出i>=MAXSIZE info+,i+!strcmp(name,info->ter_name
15、)YN(3)辦理訂票業(yè)務在排隊等候乘員名單域中添加客戶信息 結(jié)束 加到客戶名單域(info->order=insertlink(info->order,amount,name,grade);) 客戶訂票額不超過 乘員定額 info=find() 初始化 開始N 客戶登記信息YNY 開始(4)辦理退票業(yè)務 結(jié)束將客戶信息插到訂票客戶名單鏈表中t不為空滿足條件者為頭結(jié)點重新將航線名單域指向訂票單鏈表的頭指針,r指向排隊等候名單隊列的尾結(jié)點,f指向排隊等候名單隊列的頭結(jié)點,t=f退票成功,刪除客戶信息輸入退票張數(shù)是否找到 輸入姓名是否找到 輸入航班號NYN將客戶信息插到訂票客戶名單鏈表Y
16、NY4.4 程序的設計思想 訂票客戶由線性表實現(xiàn),鏈表作為其存儲結(jié)構(gòu);為了插入和刪除方便,候補客戶由隊列實現(xiàn),隊列也用鏈表做為存儲結(jié)構(gòu)。增刪操作只需修改指針,這樣系統(tǒng)運行效率有了很大提高。五調(diào)試分析5.1程序測試(1) 主菜單 (2) 瀏覽航線信息(3) 辦理訂票業(yè)務(4) 瀏覽已訂票客戶信息(5) 查詢航班(6) 辦理退票業(yè)務(7)再次瀏覽航線信息5.2 時間復雜度分析 瀏覽遍歷整張航線線性表的時間復雜度:O(1); 線性表的插入和刪除操作的時間復雜度:O(n); 查詢?yōu)榫€性表的查找,時間復雜度:O(n); 訂票為線性表的查找,時間復雜度:O(n);退票是查找兩張線性表,時間復雜度為:O(n
17、*e),其中n為航班總數(shù),e 為對應航班已訂票人數(shù)。5.3 算法的改進設想 (1)在算法效率上,由于此課程設計所用的是線性表的建立、查找、插入、刪除、和隊列的建立、插入、刪除,所涉及的是查找和排序問題,所以在建立插入時按照客戶姓名進行有序,查找時采用分塊查找,因此對訂票客戶信息的存儲應采用指針數(shù)組存儲。 (2)在函數(shù)重組,把處理不同問題相同算法思想(如線性表的插入、刪除、查找等等)寫在一個函數(shù)中,其它函數(shù)要用到這種操作時只需調(diào)用這些函數(shù),這樣會減少整個程序的代碼量,方便理解、閱讀和使用。六問題分析及課程設計的心得體會 總體體會:看著簡單,做著難,不過嘗試,努力付出還真有蠻多收獲。(1)學與做:
18、做了這次課程設計,我覺得課程設計這種形式真的是我們需要的,可以讓我們學到很多,包括書上的、書外的。理論永遠不等于實際。 我在調(diào)試時出現(xiàn)了很多的問題,下面列舉幾個:程序中定義了一個字符串“new”,但在C-Free中“new"不是以未定義的形式存在,所以把“new”改寫成“NEW”就可以了;C-Free中“getchar”表示讀取下一個字符的含義,而“getch”不表示,出現(xiàn)“getch”時系統(tǒng)會報錯;在編寫退票模塊的代碼時,設計先輸入退票數(shù)然后進行退票,調(diào)試時發(fā)現(xiàn)艙位等級的輸出出現(xiàn)了混亂,后來經(jīng)仔細分析才知道,原來“grade=p1->grade;”放在了if()大循環(huán)的后面,
19、而在if循環(huán)里p1已經(jīng)釋放,所以把“grade=p1->grade;”放在第一個“free(p1);”之前就可以了。真正會了這些算法,理論和實際永遠 差那么一點,不去做是體會不出來的。坐在電腦前才真正知道自己會不會,眼高手低是要不得的。(2)C與算法描述: 在學數(shù)據(jù)結(jié)構(gòu)的時候總是分不清算法與C語言的區(qū)別,總覺得算法就是程序了,通過這兩周的課程設計總算是把它們之間的關(guān)系搞透徹了。其實算法是解決問題的步驟;程序是算法的代碼實現(xiàn);算法要依靠程序來完成功能;程序需要算法作為靈魂。兩者是相互聯(lián)系密不可分的。(3)小收獲:摸索著做完課程設計,增強了自己的自學能力,這應該是最有用的吧,語言會過時,學習
20、的能力卻不會過時。構(gòu)造結(jié)構(gòu)體;定義清晰明確的各種變量;主函數(shù)、子函數(shù)的聲明及定義。另外:對函數(shù)調(diào)用,參數(shù)傳遞很有體會。(4)遇到的問題與感受:這次課程設計面臨的大問題就是選擇的余地太大,頭腦不好受。連續(xù)幾天的思考,我都不能決定攻克哪個,好幾個都是考慮了一部分又放棄了,以至前功盡棄。這使我認識到認定干一件事就必須將它干到底,以使自己的思想連續(xù)。我也開始考慮當事情有重疊時,如何去應對,雖然最后的抉擇不一定是對的。我也在這段時間內(nèi)好好地看了一遍書,對書中的算法思想有一個更深的了解,雖然在應用中顯得不是很自如,可我通過這次課設體驗到可視化編程的樂趣。這也給我以后編程莫大的激勵,因為我認為所謂算法通過老
21、師的傳授每個人都會一點點,而課外的東西則是通過自己的學習獲得的。寫程序是一種樂趣,特別是當我看到程序運行成功時,我會感到無比的喜悅。而數(shù)據(jù)結(jié)構(gòu)是任何程序的基礎(chǔ),沒有數(shù)據(jù)結(jié)構(gòu)的支持,就沒有程序的存在,至少說不會存在有價值的程序。有了數(shù)據(jù)結(jié)構(gòu)的知識,再加上程序設計技術(shù),這對以后的深入學習應該會有很大的幫助 七源程序#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 3 /*定義航線量的最大值*/typedef struct wat_ros char name10;/*姓名
22、*/ int req_amt;/*訂票量*/ struct wat_ros *next;qnode,*qptr;typedef struct pqueue /*定義單鏈隊列*/ qptr front;/*等候替補客戶名單域的頭指針*/ qptr rear;/*等候替補客戶名單域的尾指針*/linkqueue;typedef struct ord_ros char name10;/*客戶姓名*/ int ord_amt;/*訂票量*/ int grade;/*艙位等級*/ struct ord_ros *next;linklist;struct airline char ter_name10;/
23、*終點站名 */ char air_num10;/*航班號*/ char plane_num10;/*飛機號*/ char day7;/*飛行周日(星期幾)*/ int tkt_amt;/*乘員定額*/ int tkt_sur;/*余票量*/ linklist *order;/*乘員名單域,指向乘員名單鏈表的頭指針*/ linkqueue wait;/*等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針*/lineinfo;struct airline *start;void display(struct airline *info)/*打印每條航線的基本信息*/printf("
24、;%8st%3st%st%4stt%3dt%10dn",info->ter_name,info->air_num,info->plane_num,info->day,info->tkt_amt,info->tkt_sur);void list()/*打印全部航線信息*/ struct airline *info; int i=0; info=start; printf("終點站名t航班號t飛機號t飛行周日t乘員定額t余票量n"); while(i<MAXSIZE) display(info); info+; i+; pri
25、ntf("nn");void search()/*根據(jù)客戶提出的終點站名輸出航線信息*/ struct airline *info,*find(); char name10; int i=0; info=start; printf("請輸入終點站名:"); scanf("%s",name); while(i<MAXSIZE) if(!strcmp(name,info->ter_name) break; info+; i+; if(i>=MAXSIZE) printf("對不起,該航線未找到!n")
26、; else printf("終點站名t航班號t飛機號t飛行周日t乘員定額t余票量n"); display(info); struct airline *find()/*根據(jù)系統(tǒng)提出的航班號查詢并以指針形式返回*/ struct airline *info; char number10; int i=0; info=start; printf("請輸入航班號:"); scanf("%s",number); while(i<MAXSIZE) if(!strcmp(number,info->air_num) return in
27、fo; info+; i+; printf("對不起,該航線末找到!n"); return NULL;void prtlink()/*打印訂票乘員名單域的客戶名單信息*/ linklist *p; struct airline *info; info=find(); p=info->order; if(p!=NULL) printf("客戶姓名 訂票數(shù)額 艙位等級n"); while(p) printf("%stt%dt%dn",p->name,p->ord_amt,p->grade); p=p->nex
28、t; else printf("該航線沒有客戶信息!n");linklist *insertlink(linklist *head,int amount,char name,int grade)/*增加訂票乘員名單域的客戶信息*/ 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=amo
29、unt; NEW->grade=grade; NEW->next=NULL; if(head=NULL)/*若原無訂票客戶信息*/ head=NEW;NEW->next=NULL; else head=NEW; NEW->next=p1; return head;linkqueue appendqueue(linkqueue q,char name,int amount)/*增加排隊等候的客戶名單域*/ qptr NEW; NEW=(qptr)malloc(sizeof(qnode); strcpy(NEW->name,name); NEW->req_amt
30、=amount; NEW->next=NULL; if(q.front=NULL)/*若原排隊等候客戶名單域為空*/ q.front=NEW; else q.rear->next=NEW; q.rear=NEW; return q;void order()/*辦理訂票業(yè)務*/ struct airline *info; int amount,grade; char name10; info=start; if(!(info=find() return;/*根據(jù)客戶提供的航班號進行查詢,如為空,退出該模塊*/ printf("請輸入您訂票的數(shù)量:"); scanf
31、("%d",&amount); if(amount>info->tkt_amt)/*若客戶訂票額超過乘員定票總額,退出*/ printf("n對不起,您輸入訂票的數(shù)量已經(jīng)超過乘員定額!"); return; if(amount<=info->tkt_sur)/*若客戶訂票額末超過余票量,訂票成功并等記信息*/ int i; printf("請輸入您的姓名(訂票客戶):"); scanf("%s",name); printf("請輸入%s票的艙位等級:",name)
32、; scanf("%d",&grade); info->order=insertlink(info->order,amount,name,grade);/*在訂票乘員名單域中添加客戶信息*/ for(i=0;i<amount;i+)/*依次輸出該訂票客戶的座位號*/ printf("%s的座位號是:%dn",name,info->tkt_amt-info->tkt_sur+i+1); info->tkt_sur-=amount;/*該航線的余票量應減掉該客戶的訂票量*/ printf("n訂票成功,祝
33、您旅途愉快!n"); else /*若滿員或余票額少于訂票額,詢問客戶是否需要進行排隊等候*/ char r; printf("n已經(jīng)沒有更多的票,您需要排隊等候嗎?(需要請按'Y',若不需要請按'N')"); fflush(stdin); scanf("%c", &r); if(r='Y'|r='y') printf("n請輸入您的姓名(排隊訂票客戶):"); scanf("%s",name); info->wait=appe
34、ndqueue(info->wait,name,amount);/*在排隊等候乘員名單域中添加客戶信息*/ printf("n注冊成功!n"); else printf("n歡迎您下次再次訂購!n"); void return_tkt()/*退票模塊*/ struct airline *info; qnode *t,*back,*f,*r; int grade,num; linklist *p1,*p2,*head; char cusname10; if(!(info=find() return;/*調(diào)用查詢函數(shù),根據(jù)客戶提供的航線進行搜索*/ h
35、ead=info->order; p1=head; printf("請輸入你的姓名(退票客戶):"); scanf("%s",cusname); while(p1!=NULL) /*根據(jù)客戶提供的姓名到訂票客戶名單域進行查詢*/ if(!strcmp(cusname,p1->name) break; p2=p1;p1=p1->next; if(p1=NULL) printf("對不起,你沒有訂過票!n");return;/*若未找到,退出本模塊*/ else/*若信息查詢成功,刪除訂票客戶名單域中的信息*/ prin
36、tf("您的訂票量為:%dn",p1->ord_amt); printf("請輸入您的退票數(shù)量:"); scanf("%d",&num); if(p1=head) grade=p1->grade; if(p1->ord_amt=num) head=p1->next;free(p1); else if(p1->ord_amt>num) head->ord_amt-=num; else if(p1->ord_amt=num) p2->next=p1->next;free(
37、p1); else if(p1->ord_amt>num) p1->ord_amt-=num; info->tkt_sur+=num; printf("n成功退票!n"); info->order=head;/*重新將航線名單域指向訂票單鏈表的頭指針 */ f=(info->wait).front;/*f指向排隊等候名單隊列的頭結(jié)點*/ r=(info->wait).rear;/*r指向排隊等候名單隊列的尾結(jié)點*/ t=f;/*t為當前滿點條件的排隊候補名單域*/ while(t) if(info->tkt_sur>=i
38、nfo->wait.front->req_amt)/*若滿足條件者為頭結(jié)點*/ int i; info->wait.front=t->next; printf("%s訂票成功!n",t->name); for(i=0;i<t->req_amt;i+)/*輸出座位號*/ printf("%s的座位號是:%dn",t->name,(info->tkt_sur)-i); info->tkt_sur-=t->req_amt; info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到訂票客戶名單鏈表中*/ free(t); break; back=t;t=t->next; if(info->tkt_sur)>=(t->req_amt)&&t!=NULL)/*若滿足條件者不為頭結(jié)點*/ int i; back->next=t->next;
溫馨提示
- 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年兒童教育游戲化:游戲內(nèi)容與教學目標的融合策略
- 2025年動漫產(chǎn)業(yè)鏈協(xié)同創(chuàng)新發(fā)展報告:動漫產(chǎn)業(yè)鏈產(chǎn)業(yè)鏈協(xié)同創(chuàng)新模式研究
- 內(nèi)蒙古通遼歷年中考作文題(2015-2020)
- 柴油銷售業(yè)績考核合同
- 車位產(chǎn)權(quán)轉(zhuǎn)讓及配套設施建設與維護協(xié)議
- 房地產(chǎn)中介服務公司股權(quán)分割與重點條款保障
- 拆遷戶房屋買賣合同糾紛調(diào)解與履約保障合同
- 車輛抵押權(quán)轉(zhuǎn)讓及租賃合同范本
- 滄州旅游民宿租賃與推廣合同
- 2024屆廣東省惠州市博羅縣中考適應性考試數(shù)學試題含解析
- 設備采購 投標方案(技術(shù)方案)
- 清華人工骨成人顱骨修補首選課件
- 電力行業(yè)安全檢查表(文檔-)(正式版)
- 影視動畫創(chuàng)作研究
- “雙減”與“五項管理”(課件)主題班會
- 招標代理機構(gòu)入圍服務 投標方案(技術(shù)標)
- 區(qū)塊鏈金融 課件全套 第1-11章 區(qū)塊鏈導論- 區(qū)塊鏈金融的監(jiān)管
- (完整版)一年級數(shù)獨100題
- 臟腑辨證表格完美打印版
- 部編版初中語文七年級下冊期末閱讀理解之說明文閱讀訓練(含答案)
- 2023年護理考試-內(nèi)科護理(副高)考試歷年真題集錦附帶答案
評論
0/150
提交評論