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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、t;p>  課程設(shè)計(jì)題目: 火車售票系統(tǒng)的實(shí)現(xiàn)</p><p>  院(系):計(jì)算機(jī)學(xué)院</p><p>  專 業(yè):網(wǎng)絡(luò)工程</p><p><b>  班 級: </b></p><p><b>  學(xué) 號: </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 問題描述1</p><

8、p>  1.2 問題理解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 測試及運(yùn)行結(jié)果12</p><p><b>  1 需求分析</b></p><p><b>  1.1 問題描述</b></p><p>  火車成為越來越受歡迎的交通工具,隨著愈來愈多的人選擇火車成為出行的交通工具,

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

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

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

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

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

16、各個(gè)功能直觀的展現(xiàn)在用戶面前。</p><p>  2.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</p><p>  1. 列車基本信息的結(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];//車次號</p><p>  char cx_num[10];//車廂號</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ǔ)的客戶名單域,分別指向排隊(duì)等候名單隊(duì)頭隊(duì)尾的指針</p><p>  }lineinfo; </p><p><b>  2. 乘客信息</b></p><p>  typedef st

19、ruct ord_ros </p><p>  { char name[10];//客戶姓名</p><p>  int ord_amt;//訂票量</p><p>  int grade;//車廂等級</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ǔ)客戶</b></p><p>  typedef struct pqueue</p><p>  { qptr front;//等候替補(bǔ)客戶名單域的頭指針</p>

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

23、><p>  ﹙2﹚本系統(tǒng)函數(shù)的調(diào)用關(guā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> ?。?)主函數(shù)的簡單描述:</p><p>  通過主函數(shù),將函

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

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

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

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

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

29、用appendqueue函數(shù),讓顧客進(jìn)行等候。</p><p> ?。?)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ù)的簡單描述</p><p>  此函數(shù)為退票函數(shù),首先,輸入乘客的姓名,對乘客是否訂票進(jìn)行查詢,若無,則顯示沒有定票,若有,則利用鏈表刪除乘客信息,進(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) 問題1</b></p><p>  問題描述:各個(gè)功能都沒有錯(cuò)誤,但輸入的信息不能正常顯示,出現(xiàn)亂碼</p><p>  問題分析:程序存在邏輯錯(cuò)誤</p

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

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

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

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

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

37、言版)【M】.北京:清華大學(xué)出版社,2006【2】呂國英.算法設(shè)計(jì)與分析【M】.北京:清華大學(xué)出版社,2006</p><p>  【3】徐寶文 李志.C程序設(shè)計(jì)語言【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)站名、車次號、車廂號、開車周日、乘員定額、余票量\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車次號\t車廂號\t開車周日\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.按車次查詢\t2.按終點(diǎn)站查詢\t3.按路線查詢\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("請輸入終點(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("對不起,該路線未找到!\n");</p><p><b>  else</b></p&

54、gt;<p><b>  {</b></p><p>  printf("終點(diǎn)站名\t車次號\t車廂號\t開車周日\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("請輸入車次:");</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("對不起,該路線未找到!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("

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

59、{ printf("請輸入路線:");</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;對不起,該路線未找到!\n");</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("終點(diǎn)站名\t車次號\t車廂號\t開車周日\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("請輸入車次號:");</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("對不起,該路線末找到!\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("客戶姓名

67、 訂票數(shù)額 座位等級\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("該路線線沒有客戶信息!!\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("請輸入你訂票所需要的數(shù)量:");</p><p>  scanf("%d",&am

77、ount);</p><p>  if(amount>info->tkt_amt)</p><p>  { printf("\n對不起,您輸入的票的數(shù)量已經(jīng)超過乘員定額!");</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("請輸入您的姓名(訂票客戶):");</p><

79、p>  scanf("%s",name);</p><p>  printf("請輸入%s票的座位等級:",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的座位號是:%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)沒有更多的票,您需要排隊(duì)等候嗎?(Y/N)"

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

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

84、<p>  else printf("\n歡迎您下次再次訂購!\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("請輸入你的姓名(退票客戶):");</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("對不起

88、,你沒有訂過票!\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的座位號是:%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.增加車次信息:\n");</p><p>  printf("1.瀏覽路線信息:\n");</p><p>  printf("2.瀏覽已訂票客戶信息:\n");

100、</p><p>  printf("3.查詢\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("請選擇:");</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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論