2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告撰寫(xiě)要求</p><p> ?。ㄒ唬┘垙埮c頁(yè)面要求</p><p>  1.采用國(guó)際標(biāo)準(zhǔn)A4型打印紙或復(fù)印紙,縱向打印。</p><p>  2.封頁(yè)和頁(yè)面按照下面模板書(shū)寫(xiě)(正文為:小四宋體1.5倍行距)。</p><p>  3.圖表及圖表標(biāo)題按照模板中的表示書(shū)寫(xiě)。 </p><

2、p>  (二) 課設(shè)報(bào)告書(shū)的內(nèi)容應(yīng)包括以下各個(gè)部分:(按照以下順序裝訂)</p><p>  1.封頁(yè)(見(jiàn)課設(shè)模版)</p><p>  2.任務(wù)書(shū)(學(xué)生教師均要簽字,信息填寫(xiě)完整)</p><p><b>  3.目錄</b></p><p>  4.正文一般應(yīng)包括以下內(nèi)容: </p><p&

3、gt;  (1)題目介紹和功能要求(或描述)</p><p>  課程設(shè)計(jì)任務(wù)的詳細(xì)描述(注意不能直接抄任務(wù)書(shū)),將內(nèi)容做更詳細(xì)的具體的分析與描述;</p><p>  (2) 系統(tǒng)功能模塊結(jié)構(gòu)圖</p><p>  繪制系統(tǒng)功能結(jié)構(gòu)框圖及主要模塊的功能說(shuō)明; </p><p> ?。?) 使用的數(shù)據(jù)結(jié)構(gòu)的描述: 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說(shuō)明;&l

4、t;/p><p> ?。?) 涉及到的函數(shù)的描述 ; </p><p> ?。?) 主要算法描述( 程序流程圖)</p><p> ?。?) 給出程序測(cè)試/運(yùn)行的結(jié)果</p><p>  設(shè)計(jì)多組數(shù)據(jù)加以描述(包括輸入數(shù)據(jù)和輸出結(jié)果) </p><p> ?。?) 課程設(shè)計(jì)的總結(jié)及體會(huì)</p>

5、<p><b> ?。?) 參考文獻(xiàn)</b></p><p>  格式要求:[1]作者,等. 書(shū)名.出版地:出版社,出版年</p><p>  5.附錄:程序清單 (應(yīng)帶有必要的注釋)</p><p>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程設(shè)計(jì)名稱(chēng):數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)</p>&l

6、t;p>  課程設(shè)計(jì)題目: 火車(chē)售票系統(tǒng)的實(shí)現(xiàn)</p><p>  院(系):計(jì)算機(jī)學(xué)院</p><p>  專(zhuān) 業(yè):網(wǎng)絡(luò)工程</p><p><b>  班 級(jí): </b></p><p><b>  學(xué) 號(hào): </b></p><p><b

7、>  姓 名: </b></p><p><b>  指導(dǎo)教師: </b></p><p><b>  目 錄</b></p><p><b>  1 需求分析1</b></p><p>  1.1 問(wèn)題描述1</p><

8、p>  1.2 問(wèn)題理解1</p><p><b>  2 系統(tǒng)設(shè)計(jì)3</b></p><p>  2.1 總體方案設(shè)計(jì)3</p><p>  2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)3</p><p>  2.3 函數(shù)設(shè)計(jì)4</p><p>  2.4 關(guān)鍵流程5</p><

9、p>  2.4.1 系統(tǒng)主流程5</p><p>  2.4.2 void add()函數(shù)流程6</p><p>  2.4.3 void search()函數(shù)流程8</p><p>  2.4.4 void order()函數(shù)流程9</p><p>  2.4.5void return_tkt()函數(shù)流程9</p>

10、;<p>  3 調(diào)試分析11</p><p>  4 測(cè)試及運(yùn)行結(jié)果12</p><p><b>  1 需求分析</b></p><p><b>  1.1 問(wèn)題描述</b></p><p>  火車(chē)成為越來(lái)越受歡迎的交通工具,隨著愈來(lái)愈多的人選擇火車(chē)成為出行的交通工具,

11、火車(chē)站需要管理的信息量也越來(lái)越多,這種情況下,利用計(jì)算機(jī)來(lái)管理和存儲(chǔ)火車(chē),客戶(hù)信息就會(huì)很有效率?;疖?chē)售票系統(tǒng)要求通過(guò)鏈表實(shí)現(xiàn)列車(chē)的基本信息管理,即輸入火車(chē),路線所涉及的基本信息,包括終點(diǎn)站,車(chē)次號(hào),車(chē)廂號(hào),開(kāi)車(chē)周日,乘員定額,余票量,已訂票的客戶(hù)名單。通過(guò)查找功能實(shí)現(xiàn)列車(chē)的三種基本信息查詢(xún)方式。并實(shí)現(xiàn)訂票和退票功能。選擇車(chē)站售票系統(tǒng)作為課程設(shè)計(jì)的課題,就車(chē)站的售票流程等進(jìn)一步了解車(chē)站售票系統(tǒng)的原理。</p><p&g

12、t;<b>  1.2 問(wèn)題理解</b></p><p>  本題主要通過(guò)鏈表和函數(shù)實(shí)現(xiàn)火車(chē)售票系統(tǒng)的各種功能,首先要利用定義各種函數(shù)來(lái)分別實(shí)現(xiàn)每一個(gè)功能模塊,包括信息插入函數(shù)來(lái)增加列車(chē)的基本信息,然后設(shè)計(jì)打印函數(shù)輸出路線的基本信息,再定義查找函數(shù)實(shí)現(xiàn)列車(chē)基本信息查找功能,按照要求設(shè)置三種查找方式,設(shè)計(jì)訂票函數(shù)讀取乘客信息,通過(guò)指針實(shí)現(xiàn)訂票乘客的信息查找功能,定義退票函數(shù),實(shí)現(xiàn)退票功能。最后

13、通過(guò)主函數(shù)將各個(gè)功能函數(shù)連接起來(lái)。</p><p>  上圖為簡(jiǎn)易結(jié)構(gòu)圖,首先設(shè)計(jì)一個(gè)簡(jiǎn)單明了的菜單,讓用戶(hù)可以一目了然的找到自己想要實(shí)現(xiàn)的功能,然后在各個(gè)模塊中實(shí)現(xiàn)具體功能,程序主要分為四個(gè)模塊,第一個(gè)模塊為列車(chē)基本信息輸入,此模塊用來(lái)實(shí)現(xiàn)列車(chē)信息輸入功能,用戶(hù)可根據(jù)提示來(lái)完成列車(chē)信息的錄入。第二個(gè)模塊為列車(chē)信息查詢(xún)模塊,在此模塊,用戶(hù)可通過(guò)三種方式完成對(duì)列車(chē)信息的查詢(xún),即通過(guò)車(chē)次查詢(xún),通過(guò)終點(diǎn)站進(jìn)行查詢(xún),通過(guò)

14、路線進(jìn)行查詢(xún),用戶(hù)可通過(guò)簡(jiǎn)潔明了的提示進(jìn)行操作。第三個(gè)模塊為訂票模塊,在此模塊用戶(hù)可輸入個(gè)人基本信息在有余票的情況下進(jìn)行訂票。第四個(gè)模塊為退票管理,即對(duì)所以得票進(jìn)行退票。</p><p><b>  2 系統(tǒng)設(shè)計(jì)</b></p><p>  2.1 總體方案設(shè)計(jì)</p><p>  定義結(jié)構(gòu)體,分別為火車(chē)線路的結(jié)構(gòu)體,包括線路要用到的基本信息

15、,已訂票乘客和未訂票乘客結(jié)構(gòu)體,以及替補(bǔ)客戶(hù)結(jié)構(gòu)體。設(shè)計(jì)列車(chē)信息輸入函數(shù),輸入線路的基本信息建立鏈表,設(shè)計(jì)打印線路基本信息函數(shù),為線路查詢(xún)做準(zhǔn)備。打印線路函數(shù)完成后,接著設(shè)計(jì)查詢(xún)函數(shù),可通過(guò)車(chē)次號(hào)、抵達(dá)站和線路分別進(jìn)行查詢(xún),查詢(xún)過(guò)程通過(guò)strcmp()函數(shù)實(shí)現(xiàn)。設(shè)計(jì)打印乘客信息函數(shù),并寫(xiě)出輸入客戶(hù)信息函數(shù),設(shè)計(jì)訂票函數(shù)時(shí)對(duì)前面的函數(shù)進(jìn)行調(diào)用,定義一個(gè)排隊(duì)等候的客戶(hù)名單域,若出現(xiàn)票數(shù)不足時(shí)讓乘客排隊(duì)進(jìn)行等候。最后定義退票函數(shù)。通過(guò)主函數(shù)讓

16、各個(gè)功能直觀的展現(xiàn)在用戶(hù)面前。</p><p>  2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</p><p>  1. 列車(chē)基本信息的結(jié)構(gòu)體</p><p>  結(jié)構(gòu)體:struct line </p><p>  { char ter_name[10];//終點(diǎn)站名</p>&

17、lt;p>  char cc_num[10];//車(chē)次號(hào)</p><p>  char cx_num[10];//車(chē)廂號(hào)</p><p>  char day[7];//出發(fā)日期</p><p>  int tkt_amt;//成員定額</p><p>  int tkt_sur;//余票量</p><p>  

18、linklist *order;//乘員名單域,指向乘員名單鏈表的頭指針</p><p>  linkqueue wait;//等候替補(bǔ)的客戶(hù)名單域,分別指向排隊(duì)等候名單隊(duì)頭隊(duì)尾的指針</p><p>  }lineinfo; </p><p><b>  2. 乘客信息</b></p><p>  typedef st

19、ruct ord_ros </p><p>  { char name[10];//客戶(hù)姓名</p><p>  int ord_amt;//訂票量</p><p>  int grade;//車(chē)廂等級(jí)</p><p>  struct ord_ros *next;</p>

20、<p>  }linklist;</p><p><b>  3.已定票乘客信息</b></p><p>  typedef struct wat_ros</p><p>  { char name[10];//乘客姓名</p><p>  int req_amt;//訂票量</p><

21、p>  struct wat_ros *next;</p><p>  }qnode,*qptr;</p><p><b>  4.等候替補(bǔ)客戶(hù)</b></p><p>  typedef struct pqueue</p><p>  { qptr front;//等候替補(bǔ)客戶(hù)名單域的頭指針</p>

22、<p>  qptr rear;//等候替補(bǔ)客戶(hù)名單域的尾指針</p><p>  }linkqueue;</p><p><b>  2.3 函數(shù)設(shè)計(jì)</b></p><p>  ﹙1﹚本系統(tǒng)所設(shè)計(jì)的函數(shù)見(jiàn)表2.1。</p><p><b>  表2.1 函數(shù)列表</b></p

23、><p>  ﹙2﹚本系統(tǒng)函數(shù)的調(diào)用關(guān)系見(jiàn)圖2.1。</p><p>  圖2.1 函數(shù)調(diào)用關(guān)系</p><p><b>  2.4 關(guān)鍵流程</b></p><p>  2.4.1 系統(tǒng)主流程</p><p>  (1)主函數(shù)的簡(jiǎn)單描述:</p><p>  通過(guò)主函數(shù),將函

24、數(shù)的各個(gè)功能聯(lián)合起來(lái),通過(guò)對(duì)菜單函數(shù)的調(diào)用,對(duì)所需要的功能進(jìn)行選擇,讓用戶(hù)一目了然的面對(duì)系統(tǒng),隨著用戶(hù)不同的選擇,主函數(shù)會(huì)分別調(diào)用不同的功能函數(shù),進(jìn)而實(shí)現(xiàn)用戶(hù)的需求。</p><p>  (2)主函數(shù)的流程圖</p><p>  圖2.2 主函數(shù)的流程圖</p><p>  2.4.2 void add()函數(shù)流程</p><p> ?。?)

25、void add()函數(shù)的簡(jiǎn)單描述:</p><p>  列車(chē)基本信息輸入函數(shù),存儲(chǔ)列車(chē)的基本信息,start[iii].ter_name存儲(chǔ)終點(diǎn)站,start[iii].cc_num存儲(chǔ)車(chē)次號(hào),start[iii].cx_num存儲(chǔ)車(chē)廂號(hào),start[iii].day存儲(chǔ)發(fā)車(chē)時(shí)間,, start[iii].tkt_amt存儲(chǔ)乘員定額,start[iii].tkt_sur存儲(chǔ)余票量。利用變量iii進(jìn)行存儲(chǔ)。<

26、;/p><p> ?。?)void add()函數(shù)的流程圖</p><p>  圖2.3 void add()函數(shù)的流程圖</p><p>  2.4.3 void search()函數(shù)流程</p><p>  (1)void search()函數(shù)的簡(jiǎn)單描述:</p><p>  查找函數(shù),可按三種方式查詢(xún)列車(chē)基本信息,定

27、義變量aa,將用戶(hù)的輸入值賦予aa,對(duì)aa進(jìn)行判斷,若輸入的值為1,則按照車(chē)次號(hào)進(jìn)行查詢(xún),用戶(hù)輸入車(chē)次,使用strcmp()與鏈表中的信息進(jìn)行比較,調(diào)用display()輸出查到的列車(chē)信息。若輸入的值為2,則按照終點(diǎn)站進(jìn)行查詢(xún),用戶(hù)輸入終點(diǎn)站,輸出查詢(xún)到的信息,若輸入的值為3,則按照線路進(jìn)行查詢(xún),輸出信息。</p><p> ?。?)void search()函數(shù)的流程圖</p><p>

28、  圖2.4 void search()函數(shù)的流程圖</p><p>  2.4.4 void order()函數(shù)流程</p><p> ?。?)void order()函數(shù)的簡(jiǎn)單描述:</p><p>  本函數(shù)實(shí)現(xiàn)的是訂票功能,首先需要輸入訂票的數(shù)量,若訂票數(shù)量在額定范圍內(nèi),則輸入乘客信息并調(diào)用insertlink函數(shù)保存乘客信息,并顯示訂票成功,若票數(shù)不夠,調(diào)

29、用appendqueue函數(shù),讓顧客進(jìn)行等候。</p><p>  (2)void order()函數(shù)的流程圖</p><p>  appendqueue</p><p>  圖2.5 void order()函數(shù)的流程圖</p><p>  2.4.5void return_tkt()函數(shù)流程</p><p>  (

30、1)void return_tkt()函數(shù)的簡(jiǎn)單描述</p><p>  此函數(shù)為退票函數(shù),首先,輸入乘客的姓名,對(duì)乘客是否訂票進(jìn)行查詢(xún),若無(wú),則顯示沒(méi)有定票,若有,則利用鏈表刪除乘客信息,進(jìn)行退票,并顯示退票成功,剩余票數(shù)加一,若有排隊(duì)等待的乘客則該乘客進(jìn)行訂票。</p><p> ?。?)void return_tkt()函數(shù)的流程圖</p><p>  圖2.

31、5 void return_tkt()函數(shù)的流程圖</p><p><b>  3 調(diào)試分析</b></p><p><b>  (1) 問(wèn)題1</b></p><p>  問(wèn)題描述:各個(gè)功能都沒(méi)有錯(cuò)誤,但輸入的信息不能正常顯示,出現(xiàn)亂碼</p><p>  問(wèn)題分析:程序存在邏輯錯(cuò)誤</p

32、><p>  解決方法:重新整理程序的邏輯結(jié)構(gòu)</p><p><b>  (2) 問(wèn)題2</b></p><p>  問(wèn)題描述: 不能逐條輸出列車(chē)的基本信息,只能整體顯示</p><p>  問(wèn)題分析: 缺少逐條輸出的函數(shù)</p><p>  解決方法: 定義一個(gè)可逐條輸出的函數(shù)并在各個(gè)功能函數(shù)中

33、對(duì)該函數(shù)進(jìn)行調(diào)用。</p><p><b>  (3) 問(wèn)題3</b></p><p>  問(wèn)題描述:運(yùn)行時(shí)顯示函數(shù)不能正常定義</p><p>  問(wèn)題分析:定義函數(shù)時(shí)出現(xiàn)錯(cuò)誤</p><p>  解決方法:對(duì)函數(shù)進(jìn)行修改</p><p><b>  (4) 問(wèn)題4</b&g

34、t;</p><p>  問(wèn)題描述:變量出現(xiàn)錯(cuò)誤</p><p><b>  問(wèn)題分析:粗心大意</b></p><p>  解決方法:重新檢查程序,更改錯(cuò)誤變量</p><p>  4 測(cè)試及運(yùn)行結(jié)果</p><p> ?。?)列車(chē)基本信息輸入的測(cè)試結(jié)果如圖4.1所示。</p>

35、<p>  圖4.1 列車(chē)基本信息輸入測(cè)試結(jié)果</p><p>  (2)列車(chē)信息查詢(xún)的具體的測(cè)試結(jié)果如圖4.2所示</p><p><b>  。</b></p><p>  圖4.2 列車(chē)信息查詢(xún)測(cè)試結(jié)果</p><p>  (3)訂票的具體的測(cè)試結(jié)果如圖4.3所示</p><p>

36、<b>  。</b></p><p>  圖4.3訂票測(cè)試結(jié)果</p><p> ?。?)退票的具體的測(cè)試結(jié)果如圖4.4所示。</p><p>  圖4.4 退票測(cè)試結(jié)果</p><p><b>  參考文獻(xiàn)</b></p><p>  【1】嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)

37、言版)【M】.北京:清華大學(xué)出版社,2006【2】呂國(guó)英.算法設(shè)計(jì)與分析【M】.北京:清華大學(xué)出版社,2006</p><p>  【3】徐寶文 李志.C程序設(shè)計(jì)語(yǔ)言【M】.北京:機(jī)械工業(yè)出版社</p><p><b>  附 錄</b></p><p><b>  源程序清單:</b></p><

38、p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  #define MAXSIZE 3 </p><p>  typedef struct wat_ros</p&

39、gt;<p>  { char name[10];</p><p>  int req_amt;</p><p>  struct wat_ros *next;</p><p>  }qnode,*qptr;</p><p>  typedef struct pqueue</p><p>  { qp

40、tr front;</p><p>  qptr rear;</p><p>  }linkqueue;</p><p>  typedef struct ord_ros</p><p>  { char name[10];</p><p>  int ord_amt;</p><p>  i

41、nt grade;</p><p>  struct ord_ros *next;</p><p>  }linklist;</p><p>  struct line</p><p>  { char ter_name[10];</p><p>  char cc_num[10];</p><

42、p>  char cx_num[10];</p><p>  char day[7];</p><p>  int tkt_amt;</p><p>  int tkt_sur;</p><p>  linklist *order;</p><p>  linkqueue wait;</p><

43、;p>  }lineinfo;</p><p>  struct line start[MAXSIZE];</p><p>  int iii=0;</p><p>  void add()</p><p><b>  {</b></p><p>  struct line info[MAX

44、SIZE];</p><p>  printf("終點(diǎn)站名、車(chē)次號(hào)、車(chē)廂號(hào)、開(kāi)車(chē)周日、乘員定額、余票量\n");</p><p>  scanf("%s%s%s%s%d%d",start[iii].ter_name,start[iii].cc_num,start[iii].cx_num,start[iii].day,&start[iii].t

45、kt_amt,&start[iii].tkt_sur);</p><p><b>  iii++;</b></p><p><b>  }</b></p><p>  void display(struct line *info)</p><p><b>  {</b>

46、</p><p>  printf ("%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\n",info->ter_name,info->cc_num,info->cx_num,info->day,info->tkt_amt,info->tkt_sur);</p><p><b>  }</b><

47、;/p><p>  void list()</p><p>  { struct line *info;</p><p><b>  int i=0;</b></p><p>  info=start;</p><p>  printf("終點(diǎn)站名\t車(chē)次號(hào)\t車(chē)廂號(hào)\t開(kāi)車(chē)周日\(chéng)t乘員定

48、額\t余票量\n");</p><p>  while(i<iii){</p><p>  display(info);</p><p><b>  info++;</b></p><p><b>  i++;</b></p><p><b>  }

49、</b></p><p>  printf("\n\n");</p><p><b>  }</b></p><p>  void search()</p><p>  { struct line *info,*find();</p><p>  char nam

50、e[10];</p><p><b>  int i=0;</b></p><p>  info=start;</p><p>  printf("1.按車(chē)次查詢(xún)\t2.按終點(diǎn)站查詢(xún)\t3.按路線查詢(xún)\n");</p><p><b>  int aa;</b></p>

51、;<p>  scanf("%d",&aa);</p><p>  if (aa==2)</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入終點(diǎn)站名:");</p><p>  scanf("%s",name

52、);</p><p>  while(i<MAXSIZE)</p><p><b>  {</b></p><p>  if(!strcmp(name,info->ter_name)) break;</p><p><b>  info++;</b></p><p&g

53、t;<b>  i++;</b></p><p><b>  }</b></p><p>  if(i>=MAXSIZE)</p><p>  printf("對(duì)不起,該路線未找到!\n");</p><p><b>  else</b></p&

54、gt;<p><b>  {</b></p><p>  printf("終點(diǎn)站名\t車(chē)次號(hào)\t車(chē)廂號(hào)\t開(kāi)車(chē)周日\(chéng)t乘員定額\t余票量\n");</p><p>  display(info);</p><p><b>  }</b></p><p><b&

55、gt;  }</b></p><p>  if (aa==1)</p><p>  { printf("請(qǐng)輸入車(chē)次:");</p><p>  scanf("%s",name);</p><p>  while(i<MAXSIZE)</p><p><b

56、>  {</b></p><p>  if(!strcmp(name,info->cc_num)) break;</p><p><b>  info++;</b></p><p><b>  i++;</b></p><p><b>  }</b>&l

57、t;/p><p>  if(i>=MAXSIZE)</p><p>  printf("對(duì)不起,該路線未找到!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("

58、終點(diǎn)站名\t車(chē)次號(hào)\t車(chē)廂號(hào)\t開(kāi)車(chē)周日\(chéng)t乘員定額\t余票量\n");</p><p>  display(info);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (aa==3)</p><p>  

59、{ printf("請(qǐng)輸入路線:");</p><p>  scanf("%s",name);</p><p>  while(i<MAXSIZE)</p><p><b>  {</b></p><p>  if(!strcmp(name,info->ter_nam

60、e)) break;</p><p><b>  info++;</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p>  if(i>=MAXSIZE)</p><p>  printf(&q

61、uot;對(duì)不起,該路線未找到!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("終點(diǎn)站名\t車(chē)次號(hào)\t車(chē)廂號(hào)\t開(kāi)車(chē)周日\(chéng)t乘員定額\t余票量\n");</p><p>  displa

62、y(info);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  struct line *find()</p><p>  { struct line *in

63、fo;</p><p>  char number[10];</p><p><b>  int i=0;</b></p><p>  info=start;</p><p>  printf("請(qǐng)輸入車(chē)次號(hào):");</p><p>  scanf("%s"

64、,number);</p><p>  while(i<iii) {</p><p>  if(!strcmp(number,info->cc_num)) return info;</p><p><b>  info++;</b></p><p><b>  i++;</b></

65、p><p><b>  }</b></p><p>  printf("對(duì)不起,該路線末找到!\n");</p><p>  return NULL;</p><p><b>  }</b></p><p>  void prtlink()</p>

66、<p>  { linklist *p;</p><p>  struct line *info;</p><p>  info=find();</p><p>  p=info->order;</p><p>  if(p!=NULL){</p><p>  printf("客戶(hù)姓名

67、 訂票數(shù)額 座位等級(jí)\n");</p><p><b>  while(p){</b></p><p>  printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);</p><p>  p=p->next;</p><

68、;p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("該路線線沒(méi)有客戶(hù)信息!!\n");</p><p><b>  }</b>&l

69、t;/p><p>  linklist *insertlink(linklist *head,int amount,char name[],int grade)</p><p>  { linklist *p1,*new1;</p><p><b>  p1=head;</b></p><p>  new1=(linkli

70、st *)malloc(sizeof(linklist));</p><p>  if(!new1) {printf("\nOut of memory!!\n");return NULL;}</p><p>  strcpy(new1->name,name);</p><p>  new1->ord_amt=amount;</p

71、><p>  new1->grade=grade;</p><p>  new1->next=NULL;</p><p>  if(head==NULL)</p><p>  {head=new1;new1->next=NULL;}</p><p><b>  else</b><

72、;/p><p>  head=new1;</p><p>  new1->next=p1;</p><p>  return head;</p><p><b>  }</b></p><p>  linkqueue appendqueue(linkqueue q,char name[],int

73、 amount)</p><p>  { qptr new1;</p><p>  new1=(qptr)malloc(sizeof(qnode));</p><p>  strcpy(new1->name,name);</p><p>  new1->req_amt=amount;</p><p>  n

74、ew1->next=NULL;</p><p>  if(q.front==NULL)</p><p>  q.front=new1;</p><p><b>  else</b></p><p>  q.rear->next=new1;</p><p>  q.rear=new1;&

75、lt;/p><p><b>  return q;</b></p><p><b>  }</b></p><p>  void order()</p><p>  { struct line *info;</p><p>  int amount,grade;</p&g

76、t;<p>  char name[10];</p><p>  info=start;</p><p>  if(!(info=find())) return;</p><p>  printf("請(qǐng)輸入你訂票所需要的數(shù)量:");</p><p>  scanf("%d",&am

77、ount);</p><p>  if(amount>info->tkt_amt)</p><p>  { printf("\n對(duì)不起,您輸入的票的數(shù)量已經(jīng)超過(guò)乘員定額!");</p><p><b>  return;</b></p><p><b>  }</b>

78、;</p><p>  if(amount<=info->tkt_sur)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf("請(qǐng)輸入您的姓名(訂票客戶(hù)):");</p><

79、p>  scanf("%s",name);</p><p>  printf("請(qǐng)輸入%s票的座位等級(jí):",name);</p><p>  scanf("%d",&grade);</p><p>  info->order=insertlink(info->order,amoun

80、t,name,grade);</p><p>  for(i=0;i<amount;i++)</p><p>  printf("%s的座位號(hào)是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);</p><p>  info->tkt_sur-=amount;</p>

81、<p>  printf("\n祝您乘坐愉快!\n");</p><p><b>  }</b></p><p>  else </p><p>  { char r;</p><p>  printf("\n已經(jīng)沒(méi)有更多的票,您需要排隊(duì)等候嗎?(Y/N)"

82、);</p><p>  r=getchar();</p><p>  printf("%c",r);</p><p>  if(r=='Y'||r=='y')</p><p>  { printf("\n請(qǐng)輸入您的姓名(排隊(duì)訂票客戶(hù)):");</p>&

83、lt;p>  scanf("%s",name);</p><p>  info->wait=appendqueue(info->wait,name,amount);</p><p>  printf("\n注冊(cè)成功!\n");</p><p><b>  }</b></p>

84、<p>  else printf("\n歡迎您下次再次訂購(gòu)!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  void return_tkt()</p><p>  { struct line *inf

85、o;</p><p>  qnode *t,*back,*f,*r;</p><p>  int grade;</p><p>  linklist *p1,*p2,*head;</p><p>  char cusname[10];</p><p>  if(!(info=find())) return;</p

86、><p>  head=info->order;</p><p><b>  p1=head;</b></p><p>  printf("請(qǐng)輸入你的姓名(退票客戶(hù)):");</p><p>  scanf("%s",cusname);</p><p> 

87、 while(p1!=NULL) {</p><p>  if(!strcmp(cusname,p1->name)) break;</p><p>  p2=p1;p1=p1->next;</p><p><b>  }</b></p><p>  if(p1==NULL){ printf("對(duì)不起

88、,你沒(méi)有訂過(guò)票!\n");return;}</p><p><b>  else{</b></p><p>  if(p1==head) head=p1->next;</p><p>  else p2->next=p1->next;</p><p>  info->tkt_sur+=p

89、1->ord_amt;</p><p>  grade=p1->grade;</p><p>  printf("%s成功退票!\n",p1->name);</p><p><b>  free(p1);</b></p><p><b>  }</b></

90、p><p>  info->order=head;</p><p>  f=(info->wait).front;</p><p>  r=(info->wait).rear;</p><p><b>  t=f;</b></p><p><b>  while(t)<

91、;/b></p><p><b>  {</b></p><p>  if(info->tkt_sur>=info->wait.front->req_amt){</p><p><b>  int i;</b></p><p>  info->wait.front

92、=t->next;</p><p>  printf("%s訂票成功!\n",t->name);</p><p>  for(i=0;i<t->req_amt;i++)</p><p>  printf("%s的座位號(hào)是:%d\n",t->name,(info->tkt_sur)-i);&l

93、t;/p><p>  info->tkt_sur-=t->req_amt;</p><p>  info->order=insertlink(info->order,t->req_amt,t->name,grade);</p><p><b>  free(t);</b></p><p>

94、<b>  break;</b></p><p><b>  }</b></p><p>  back=t;t=t->next;</p><p>  if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)</p><p><

95、b>  { int i;</b></p><p>  back->next=t->next;</p><p>  printf("%s訂票成功!\n",t->name);</p><p>  for(i=0;i<t->req_amt;i++)</p><p>  print

96、f("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i);</p><p>  info->tkt_sur-=t->req_amt;</p><p>  info->order=insertlink(info->order,t->req_amt,t-&

97、gt;name,grade);</p><p>  free(t);break;</p><p><b>  }</b></p><p>  if(f==r) break;</p><p><b>  }</b></p><p><b>  }</b>&

98、lt;/p><p>  int menu_select()</p><p><b>  { int c;</b></p><p>  char s[20];</p><p>  printf("\n\t\t鐵路客運(yùn)訂票系統(tǒng)\n");</p><p>  printf("

99、******************************************\n");</p><p>  printf("0.增加車(chē)次信息:\n");</p><p>  printf("1.瀏覽路線信息:\n");</p><p>  printf("2.瀏覽已訂票客戶(hù)信息:\n");

100、</p><p>  printf("3.查詢(xún)\n");</p><p>  printf("4.辦理訂票業(yè)務(wù):\n");</p><p>  printf("5.辦理退票業(yè)務(wù):\n");</p><p>  printf("6.退出系統(tǒng)\n");</p&g

101、t;<p>  printf("*******************************************\n");</p><p><b>  do{</b></p><p>  printf("請(qǐng)選擇:");</p><p>  scanf("%s",s)

102、;</p><p>  c=atoi(s);</p><p>  }while(c<0||c>7);</p><p><b>  return c;</b></p><p><b>  }</b></p><p>  int main()</p>&

103、lt;p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  switch(menu_select()){</p><p>  case 0: add();break;</p>

104、;<p>  case 1:list();break;</p><p>  case 2:prtlink();break;</p><p>  case 3:search();break;</p><p>  case 4:order();break;</p><p>  case 5:return_tkt();break;&l

溫馨提示

  • 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論