(最新整理)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng)_第1頁
(最新整理)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng)_第2頁
(最新整理)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng)_第3頁
(最新整理)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng)_第4頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、(完整)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng)(完整)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng) 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內(nèi)容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內(nèi)容進行仔細校對,但是難免會有疏漏的地方,但是任然希望((完整)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng))的內(nèi)容能夠給您的工作和學(xué)習(xí)帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進步的源泉,前進的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進步,以下為(完整)數(shù)據(jù)結(jié)構(gòu)c語言課設(shè)報告航空客運訂票系統(tǒng)的全部內(nèi)容。 沈陽 理 工 大 學(xué)課 程

2、設(shè) 計課 程 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 題 目 航班客運訂票系統(tǒng) 院 系 信息工程與自動化學(xué)院 專業(yè)班級 通信工程102 姓 名 學(xué) 號 201210404225 指導(dǎo)教師 2015年12月30日目錄一、設(shè)計任務(wù)與要求11.1課程設(shè)計目的11。2課程設(shè)計題目11.3課程設(shè)計內(nèi)容11。4 實現(xiàn)提示1二、需求分析2三、概要設(shè)計23.1系統(tǒng)結(jié)構(gòu)圖23。2 算法設(shè)計43.3 存儲結(jié)構(gòu)設(shè)計4四、詳細設(shè)計64。1 數(shù)據(jù)類型定義64。2 函數(shù)定義74.3 函數(shù)流程圖74.4 程序的設(shè)計思想12五、調(diào)試分析125.1 程序測試125。2 時間復(fù)雜度分析135.3 算法的改進設(shè)想13六、問題分析及課程設(shè)計的心得體會14

3、七、源程序15一、設(shè)計任務(wù)與要求1.1 課程設(shè)計目的1數(shù)據(jù)結(jié)構(gòu)課程設(shè)計是綜合運用數(shù)據(jù)結(jié)構(gòu)課程中學(xué)到的幾種典型數(shù)據(jù)結(jié)構(gòu),以及程序設(shè)計語言(c語言),自行實現(xiàn)一個較為完整的應(yīng)用系統(tǒng)。2通過課程設(shè)計,自己通過系統(tǒng)分析、系統(tǒng)設(shè)計、編程調(diào)試,寫實驗報告等環(huán)節(jié),進一步掌握應(yīng)用系統(tǒng)設(shè)計的方法和步驟,靈活運用并深刻理解典型數(shù)據(jù)結(jié)構(gòu)在軟件開發(fā)中的應(yīng)用。3 學(xué)會將知識應(yīng)用于實際的方法,提高分析和解決問題的能力,增加綜合能力。(1)熟練掌握鏈表存儲結(jié)構(gòu)及其建立過程和常用操作;(2)熟練掌握隊列的建立過程和常用操作;(3)學(xué)會自己調(diào)試程序的方法并掌握一定的技巧。1.2課程設(shè)計題目1、 每條航線所涉及的信息有:終點站名

4、、航班號、飛機號、飛機周日(星期幾)、乘員定額、余票量、訂定票的客戶名單(包括姓名、訂票量、艙位等級1,2或3)以及等候替補的客戶名單(包括姓名和所需數(shù)量)。2、 系統(tǒng)能實現(xiàn)的操作和功能如下:1) 查詢航線:根據(jù)客戶提出的終點站名輸出如下信息:航班號、飛機號、星期幾飛行和余票額;2) 承辦訂票業(yè)務(wù):根據(jù)客戶提出的要求(航班號、訂票數(shù)額)查詢該航班票額情況,若有余票,則為客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票量少余訂票額,則需重新詢問客戶要求。若需要,可登記排隊候補;3) 承辦退票業(yè)務(wù):根據(jù)客戶提出的情況(日期、航班號),為客戶辦理退票手續(xù),然后查詢該航班是否有人排隊候補,首先詢問排在第一

5、的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其它排隊候補的客戶。1.3 課程設(shè)計內(nèi)容 航空客運訂票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)訂和辦理退票等。設(shè)計一個航空客運訂票系統(tǒng),以使上述業(yè)務(wù)可以借助計算機來完成。 1.4 實現(xiàn)提示 兩個客戶名單分別由線性表和隊列實現(xiàn)。為查找方便,已訂票客戶的線性表應(yīng)按客戶姓名有序,并且,為了插入和刪除方便,以鏈表作為存儲結(jié)構(gòu).由于預(yù)約人數(shù)無法預(yù)計,隊列也用鏈表作為存儲結(jié)構(gòu)。整個系統(tǒng)需匯總各條航線的情況登錄在一張線性表上,由于航線不變,可采用順序存儲結(jié)構(gòu),并按航班有序或終點站名有序。每條航線是這張表上的一個記錄,包含上述8個域,其中乘員名單域為指

6、向成員名單鏈表的頭指針,等候替補的客戶名單域為分別指向?qū)︻^和隊尾的指針。二、需求分析 本訂票系統(tǒng)能夠?qū)崿F(xiàn)全部航線信息的瀏覽功能、訂票客戶信息的查詢功能、單條航線查詢功能、訂票功能和退票功能 .具體分析如下: a) 全部航線信息的瀏覽功能 瀏覽全部系統(tǒng)預(yù)設(shè)的航線信息,每條航線包含的信息有:終點站名、航班號、飛機號、飛行周日(星期幾飛行)、乘員定額和余票量. b) 訂票客戶信息的查詢功能根據(jù)輸入的航班號查詢該航線所有訂票客戶的信息,包括客戶姓名、訂票數(shù)額和艙位等級。c) 單條航線查詢功能 根據(jù)客戶輸入的終點站名查看該航線上所涉及的信息。d) 訂票功能根據(jù)客戶提出的要求(航班號、訂票數(shù)量)查詢該航班

7、票額情況,若尚有余票,則為客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票額少于定票額,則詢問客戶是否愿意排隊等候,若愿意,系統(tǒng)則自動登記排隊候補。 e) 退票功能 根據(jù)客戶提供的情況(航班、姓名),詢問退票張數(shù),然后為客戶辦理退票手續(xù)。接著系統(tǒng)自動查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其他排隊候補的客戶。 三、概要設(shè)計3.1 系統(tǒng)結(jié)構(gòu)圖(功能模塊圖) 航空訂票系統(tǒng) 退 出 系 統(tǒng) 瀏 覽 航 線 信 息 瀏 覽 訂 票 客 戶 信 息 辦 理 退 票 業(yè) 務(wù) 辦 理 訂 票 業(yè) 務(wù) 查 詢 航 線圖31航空訂票系統(tǒng)系統(tǒng)結(jié)構(gòu)圖

8、- 32 -3.2 算法設(shè)計(每個模塊的算法設(shè)計說明) (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)信息,訂票成功, 否則失敗. (5) 退

9、票模塊: 輸入要退票的乘客姓名,查找乘客資料的鏈表中是否有這位乘客,有則刪去此節(jié)點,并在空位上加1,無則退票失敗。如果此時余票額大于等于候補客戶的訂票數(shù)量,那么候補客戶訂票成功。3.3 存儲結(jié)構(gòu)設(shè)計 (1) 航班的信息:為了便于查找,航班情況的存儲結(jié)構(gòu)采用單鏈表,每個元素表示一個航班的情況,包括終點站名、航班號、飛機號、星期幾、乘員定額和余票量,共六個數(shù)據(jù)項:終點站名航班號飛機號星期幾乘員定額余票量 單鏈表如下:d3d2d1h 每個節(jié)點包含數(shù)據(jù)域和指針域:指針域數(shù)據(jù)域 圖3-2 航班的存儲結(jié)構(gòu)c語言描述如下: struct airline char ter_name10;/*終點站名 / ch

10、ar 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ù)元素包括姓名、訂票量和艙位等級三個數(shù)據(jù)項: 乘客姓名 訂票量 余票量 ptrptrpt

11、rptr圖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è)置的密碼訂票數(shù)量自身指針*next訂票信息結(jié)點(message)圖34結(jié)點類型4、 詳細設(shè)計4.1 數(shù)據(jù)類型定義 (1)已訂票客戶的結(jié)點: typedef struct ord_ros char n

12、ame10;/客戶姓名*/ 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;/等候替補客戶名單域的尾指針*/linkqueue; (3)航班結(jié)點: struct a

13、irline char ter_name10;/*終點站名 / char air_num10;/航班號*/ char plane_num10;/*飛機號/ char day7;/飛行周日(星期幾)/ int tkt_amt;/*乘員定額*/ int tkt_sur;/余票量*/ linklist order;/乘員名單域,指向乘員名單鏈表的頭指針/ linkqueue wait;/等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針*/lineinfo;struct airline start;4。2 函數(shù)定義 (1)航線輸出函數(shù) 函數(shù)名:void list() 操作結(jié)果:輸出全部航線信息

14、 (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 prtlink() 操作結(jié)果:進行訂票客戶信息查詢操作 (7)主菜單控制函數(shù) 函數(shù)名:int menu_sel

15、ect() 操作結(jié)果:a) 瀏覽航線信息 b) 瀏覽已訂票客戶信息 c) 查詢航線 d) 辦理訂票業(yè)務(wù) e) 辦理退票業(yè)務(wù) f)退出系統(tǒng)4.3 函數(shù)流程圖(1)瀏覽已訂票客戶信息 輸入航班號 結(jié)束輸出客戶信息 p!=null 調(diào)用find()函數(shù)n該航線沒有客戶信息!y 輸入終點站名(2 ) 查詢航線 i=maxsize info+,i+!strcmp(name,info-ter_name)yn(3)辦理訂票業(yè)務(wù)在排隊等候乘員名單域中添加客戶信息 結(jié)束 加到客戶名單域(info-order=insertlink(info-order,amount,name,grade);) 客戶訂票額不超過

16、乘員定額 info=find() 初始化 開始n 客戶登記信息yny 開始(4)辦理退票業(yè)務(wù) 結(jié)束將客戶信息插到訂票客戶名單鏈表中t不為空滿足條件者為頭結(jié)點重新將航線名單域指向訂票單鏈表的頭指針,r指向排隊等候名單隊列的尾結(jié)點,f指向排隊等候名單隊列的頭結(jié)點,t=f退票成功,刪除客戶信息輸入退票張數(shù)是否找到 輸入姓名是否找到 輸入航班號nyn將客戶信息插到訂票客戶名單鏈表yny4。4 程序的設(shè)計思想 訂票客戶由線性表實現(xiàn),鏈表作為其存儲結(jié)構(gòu);為了插入和刪除方便,候補客戶由隊列實現(xiàn),隊列也用鏈表做為存儲結(jié)構(gòu).增刪操作只需修改指針,這樣系統(tǒng)運行效率有了很大提高.五調(diào)試分析5.1程序測試(1) 主菜

17、單 (2) 瀏覽航線信息(3) 辦理訂票業(yè)務(wù)(4) 瀏覽已訂票客戶信息(5) 查詢航班(6) 辦理退票業(yè)務(wù)(7)再次瀏覽航線信息5.2 時間復(fù)雜度分析 瀏覽遍歷整張航線線性表的時間復(fù)雜度:o(1); 線性表的插入和刪除操作的時間復(fù)雜度:o(n); 查詢?yōu)榫€性表的查找,時間復(fù)雜度:o(n); 訂票為線性表的查找,時間復(fù)雜度:o(n);退票是查找兩張線性表,時間復(fù)雜度為:o(ne),其中n為航班總數(shù),e 為對應(yīng)航班已訂票人數(shù).5。3 算法的改進設(shè)想 (1)在算法效率上,由于此課程設(shè)計所用的是線性表的建立、查找、插入、刪除、和隊列的建立、插入、刪除,所涉及的是查找和排序問題,所以在建立插入時按照客戶

18、姓名進行有序,查找時采用分塊查找,因此對訂票客戶信息的存儲應(yīng)采用指針數(shù)組存儲。 (2)在函數(shù)重組,把處理不同問題相同算法思想(如線性表的插入、刪除、查找等等)寫在一個函數(shù)中,其它函數(shù)要用到這種操作時只需調(diào)用這些函數(shù),這樣會減少整個程序的代碼量,方便理解、閱讀和使用。六問題分析及課程設(shè)計的心得體會 總體體會:看著簡單,做著難,不過嘗試,努力付出還真有蠻多收獲.(1)學(xué)與做:做了這次課程設(shè)計,我覺得課程設(shè)計這種形式真的是我們需要的,可以讓我們學(xué)到很多,包括書上的、書外的。理論永遠不等于實際。 我在調(diào)試時出現(xiàn)了很多的問題,下面列舉幾個:程序中定義了一個字符串“new”,但在c-free中“new不是

19、以未定義的形式存在,所以把“new”改寫成“new”就可以了;c-free中“getchar”表示讀取下一個字符的含義,而“getch”不表示,出現(xiàn)“getch”時系統(tǒng)會報錯;在編寫退票模塊的代碼時,設(shè)計先輸入退票數(shù)然后進行退票,調(diào)試時發(fā)現(xiàn)艙位等級的輸出出現(xiàn)了混亂,后來經(jīng)仔細分析才知道,原來“grade=p1-grade;”放在了if()大循環(huán)的后面,而在if循環(huán)里p1已經(jīng)釋放,所以把“grade=p1-grade;”放在第一個“free(p1);”之前就可以了。真正會了這些算法,理論和實際永遠 差那么一點,不去做是體會不出來的。坐在電腦前才真正知道自己會不會,眼高手低是要不得的.(2)c與算

20、法描述: 在學(xué)數(shù)據(jù)結(jié)構(gòu)的時候總是分不清算法與c語言的區(qū)別,總覺得算法就是程序了,通過這兩周的課程設(shè)計總算是把它們之間的關(guān)系搞透徹了。其實算法是解決問題的步驟;程序是算法的代碼實現(xiàn);算法要依靠程序來完成功能;程序需要算法作為靈魂。兩者是相互聯(lián)系密不可分的。(3)小收獲:摸索著做完課程設(shè)計,增強了自己的自學(xué)能力,這應(yīng)該是最有用的吧,語言會過時,學(xué)習(xí)的能力卻不會過時.構(gòu)造結(jié)構(gòu)體;定義清晰明確的各種變量;主函數(shù)、子函數(shù)的聲明及定義.另外:對函數(shù)調(diào)用,參數(shù)傳遞很有體會。(4)遇到的問題與感受:這次課程設(shè)計面臨的大問題就是選擇的余地太大,頭腦不好受。連續(xù)幾天的思考,我都不能決定攻克哪個,好幾個都是考慮了一

21、部分又放棄了,以至前功盡棄。這使我認識到認定干一件事就必須將它干到底,以使自己的思想連續(xù)。我也開始考慮當(dāng)事情有重疊時,如何去應(yīng)對,雖然最后的抉擇不一定是對的。我也在這段時間內(nèi)好好地看了一遍書,對書中的算法思想有一個更深的了解,雖然在應(yīng)用中顯得不是很自如,可我通過這次課設(shè)體驗到可視化編程的樂趣。這也給我以后編程莫大的激勵,因為我認為所謂算法通過老師的傳授每個人都會一點點,而課外的東西則是通過自己的學(xué)習(xí)獲得的.寫程序是一種樂趣,特別是當(dāng)我看到程序運行成功時,我會感到無比的喜悅。而數(shù)據(jù)結(jié)構(gòu)是任何程序的基礎(chǔ),沒有數(shù)據(jù)結(jié)構(gòu)的支持,就沒有程序的存在,至少說不會存在有價值的程序。有了數(shù)據(jù)結(jié)構(gòu)的知識,再加上程

22、序設(shè)計技術(shù),這對以后的深入學(xué)習(xí)應(yīng)該會有很大的幫助 七源程序include stdio.h#include stdlib。h#include string.hdefine maxsize 3 /*定義航線量的最大值*/typedef struct wat_ros char name10;/*姓名/ int req_amt;/*訂票量*/ struct wat_ros next;qnode,qptr;typedef struct pqueue /*定義單鏈隊列*/ qptr front;/*等候替補客戶名單域的頭指針*/ qptr rear;/*等候替補客戶名單域的尾指針*/linkqueue;t

23、ypedef struct ord_ros char name10;/*客戶姓名/ int ord_amt;/*訂票量*/ int grade;/*艙位等級*/ struct ord_ros next;linklist;struct airline char ter_name10;/*終點站名 */ char air_num10;/航班號*/ char plane_num10;/*飛機號/ char day7;/飛行周日(星期幾)/ int tkt_amt;/*乘員定額/ int tkt_sur;/*余票量/ linklist *order;/*乘員名單域,指向乘員名單鏈表的頭指針*/ lin

24、kqueue wait;/等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針*/lineinfo;struct airline start;void display(struct airline info)/打印每條航線的基本信息*/printf(%8st%3st%st4stt3dt10dn”,info-ter_name,info-air_num,infoplane_num,infoday,info-tkt_amt,info-tkt_sur);void list()/打印全部航線信息*/ struct airline info; int i=0; info=start; printf(”

25、終點站名t航班號t飛機號t飛行周日t乘員定額t余票量n”); while(imaxsize) display(info); info+; i+; printf(nn”);void search()/根據(jù)客戶提出的終點站名輸出航線信息/ struct airline info,find(); char name10; int i=0; info=start; printf(”請輸入終點站名:”); scanf(”%s”,name); while(i=maxsize) printf(對不起,該航線未找到!n); else printf(”終點站名t航班號t飛機號t飛行周日t乘員定額t余票量n);

26、display(info); struct airline find()/*根據(jù)系統(tǒng)提出的航班號查詢并以指針形式返回/ struct airline info; char number10; int i=0; info=start; printf(請輸入航班號:); scanf(”s”,number); while(iord_amt,p-grade); p=pnext; else printf(”該航線沒有客戶信息!n”);linklist insertlink(linklist head,int amount,char name,int grade)/增加訂票乘員名單域的客戶信息*/ lin

27、klist p1,new; p1=head; new=(linklist *)malloc(sizeof(linklist); if(!new) printf(nout of memory!n”);return null; strcpy(new-name,name); neword_amt=amount; newgrade=grade; new-next=null; if(head=null)/若原無訂票客戶信息/ head=new;newnext=null; else head=new; newnext=p1; return head;linkqueue appendqueue(linkqu

28、eue q,char name,int amount)/增加排隊等候的客戶名單域*/ qptr new; new=(qptr)malloc(sizeof(qnode)); strcpy(newname,name); new-req_amt=amount; new-next=null; if(q.front=null)/若原排隊等候客戶名單域為空/ q。front=new; else q.rear-next=new; q.rear=new; return q;void order()/辦理訂票業(yè)務(wù)/ struct airline *info; int amount,grade; char nam

29、e10; info=start; if(!(info=find() return;/*根據(jù)客戶提供的航班號進行查詢,如為空,退出該模塊*/ printf(請輸入您訂票的數(shù)量:); scanf(%d,&amount); if(amountinfo-tkt_amt)/若客戶訂票額超過乘員定票總額,退出*/ printf(n對不起,您輸入訂票的數(shù)量已經(jīng)超過乘員定額!”); return; if(amountorder,amount,name,grade);/在訂票乘員名單域中添加客戶信息/ for(i=0;itkt_amt-info-tkt_sur+i+1); infotkt_sur=amount;

30、/*該航線的余票量應(yīng)減掉該客戶的訂票量/ printf(”n訂票成功,祝您旅途愉快!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); infowait=appendqueue(info-wait,name,amount);/在排隊等候乘員名單域中添加客戶信息/ printf(”n注冊成

31、功!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ù)客戶提供的航線進行搜索*/ head=infoorder; p1=head; printf(”請輸入你的姓名(退票客戶):”); scanf(s,cusname); while(p1!=null) /根據(jù)客戶提供的姓

32、名到訂票客戶名單域進行查詢/ if(!strcmp(cusname,p1name)) break; p2=p1;p1=p1next; if(p1=null) printf(對不起,你沒有訂過票!n”);return;/*若未找到,退出本模塊/ else/若信息查詢成功,刪除訂票客戶名單域中的信息/ printf(”您的訂票量為:%dn,p1-ord_amt); printf(”請輸入您的退票數(shù)量:”); scanf(d,&num); if(p1=head) grade=p1grade; if(p1-ord_amt=num) head=p1-next;free(p1); else if(p1-o

33、rd_amtnum) headord_amt-=num; else if(p1-ord_amt=num) p2-next=p1-next;free(p1); else if(p1-ord_amtnum) p1ord_amt-=num; infotkt_sur+=num; printf(”n成功退票!n); info-order=head;/*重新將航線名單域指向訂票單鏈表的頭指針 */ f=(info-wait).front;/*f指向排隊等候名單隊列的頭結(jié)點*/ r=(info-wait)。rear;/*r指向排隊等候名單隊列的尾結(jié)點*/ t=f;/t為當(dāng)前滿點條件的排隊候補名單域/ while(t) if(info-tkt_sur=info-wait.frontreq_amt)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論