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

下載本文檔

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

文檔簡介

1、<p>  課程設(shè)計(論文)任務(wù)書</p><p>  軟件  學(xué)  院  軟件+ 信控  ?! I(yè)  1 班 </p><p>  一、課程設(shè)計(論文)題目 機房機位預(yù)約模擬系統(tǒng)的設(shè)計與實現(xiàn)   </p><p>  二、課程設(shè)計(論文)工作自 2017 年 1 月 2

2、日起至 2017 年 1 月 6 日止。</p><p>  三、課程設(shè)計(論文) 地點: 南區(qū) 創(chuàng)新大樓東樓406 </p><p>  四、課程設(shè)計(論文)內(nèi)容要求:</p><p><b>  1.課程設(shè)計的目的</b></p><p>  《數(shù)據(jù)結(jié)構(gòu)

3、》課程設(shè)計是計算機科學(xué)與技術(shù)專業(yè)集中實踐性環(huán)節(jié)之一,是學(xué)習(xí)完</p><p>  《數(shù)據(jù)結(jié)構(gòu)》課程后進(jìn)行的一次全面的綜合練習(xí)。目的是要達(dá)到理論與實際應(yīng)用相結(jié)</p><p>  合,使學(xué)生能夠根據(jù)數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)組織的方法,能把現(xiàn)實世界中的實際</p><p>  問題在計算機內(nèi)部表示出來,并培養(yǎng)良好的程序設(shè)計技能。</p><p>

4、  要求能從實際應(yīng)用問題出發(fā),合理地選擇數(shù)據(jù)結(jié)構(gòu),設(shè)計相應(yīng)的數(shù)據(jù)處理算法,</p><p>  并對算法進(jìn)行必要的分析;合理選擇編程工具,實現(xiàn)數(shù)據(jù)的物理結(jié)構(gòu)和相應(yīng)的數(shù)據(jù)處</p><p>  理算法;對算法進(jìn)行調(diào)試和測試,并對調(diào)試及測試結(jié)果進(jìn)行分析;針對數(shù)據(jù)結(jié)構(gòu)及算</p><p>  法的設(shè)計、調(diào)試及測試過程認(rèn)真寫出設(shè)計分析報告。</p><p

5、>  2.課程設(shè)計的要求及任務(wù)</p><p><b> ?。?)基本要求</b></p><p>  1)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、調(diào)試等基本方法和技能。 </p><p>  2)要求從問題需求入手,完成系統(tǒng)的分析與設(shè)計,獨立完成系統(tǒng)的數(shù)據(jù)和功能分析,</p><p>  應(yīng)用《數(shù)據(jù)

6、結(jié)構(gòu)》知識,設(shè)計抽象數(shù)據(jù)類型、構(gòu)思算法、完成系統(tǒng)的設(shè)計。</p><p>  3)結(jié)合《數(shù)據(jù)結(jié)構(gòu)》理論知識,編寫程序求解指定問題,程序設(shè)計語言推薦使用C/C++,</p><p>  程序書寫規(guī)范,源程序需加必要的注釋。</p><p>  4)認(rèn)真完成系統(tǒng)的調(diào)試與測試工作,測試數(shù)據(jù)要完備,詳細(xì)記錄測試結(jié)果。</p><p>  5)規(guī)范撰寫

7、課程設(shè)計報告。</p><p> ?。?)課程設(shè)計論文撰寫要求</p><p>  1)按照書稿的規(guī)格撰寫打印課程設(shè)計論文;</p><p>  2)論文包括任務(wù)書、目錄、緒論、正文、總結(jié)、參考文獻(xiàn)、附錄等;</p><p>  3)正文中要有問題描述與分析、數(shù)據(jù)結(jié)構(gòu)的設(shè)計、算法的設(shè)計、算法的實現(xiàn)、調(diào)</p><p>

8、<b>  試分析與結(jié)果;</b></p><p>  4)課程設(shè)計論文裝訂按學(xué)校的統(tǒng)一要求完成</p><p><b>  (3)課設(shè)考核</b></p><p><b>  1)考勤和態(tài)度; </b></p><p>  2)任務(wù)的難易程度及設(shè)計思路;</p>

9、<p>  3)編碼及調(diào)試能力;</p><p>  4)論文撰寫的水平、格式的規(guī)范性。</p><p> ?。?)課程設(shè)計進(jìn)度安排</p><p>  內(nèi)容 天數(shù)      地點</p><p>  構(gòu)思及收集資料 1       圖書館</p><p&g

10、t;  程序設(shè)計與調(diào)試 3       計算機房</p><p>  撰寫論文 1       圖書館</p><p>  具體任務(wù):20臺機器,從早8點到晚8點,每兩個小時一個時間段。實現(xiàn)如下功能:</p><p>  (1)機位空閑查詢,查詢空閑機位;</p><p> ?。?)機位預(yù)定

11、,根據(jù)輸入的日期和時間段查詢是否有空機位,若有則預(yù)約,若無則提供最近時間段的空機信息。另外,如果用戶要求在非空時間上機,則將用戶信息插入該時間段的等待列表。</p><p> ?。?)退出預(yù)定,根據(jù)輸入的時間撤銷該時間的預(yù)定。</p><p> ?。?)查詢是否有等待信息,若有則按順序顯示聯(lián)系方式,若無則顯示提示信息。</p><p>  提高部分:利用外部.txt

12、文件同步記錄所有數(shù)據(jù)。</p><p>  學(xué)生簽名: </p><p>  2017年 1月 2 日</p><p>  課程設(shè)計(論文)評審意見</p><p> ?。?)考勤和態(tài)度 :優(yōu)(?。⒘迹ā。?、中(?。⒁话悖ā。⒉睿ā。?lt;/p><p> ?。?)任務(wù)難

13、易及設(shè)計思路?。簝?yōu)( )、良( )、中( )、一般(?。?、差(?。?lt;/p><p>  (3)編碼及調(diào)試能力  :優(yōu)(?。?、良(?。?、中(?。⒁话悖ā。?、差(?。?lt;/p><p> ?。?)論文撰寫水平及規(guī)范性:優(yōu)(?。?、良(?。?、中( )、一般(?。⒉睿ā。?lt;/p><p>  評閱人:   職稱: 副教授 </p&g

14、t;<p>  年 月 日</p><p><b>  目 錄</b></p><p><b>  1. 緒論1</b></p><p>  1.1 設(shè)計題目1</p><p>  1.2 模塊劃分1</p><p>  2. 需求分析....

15、...................................................................................1</p><p><b>  3. 系統(tǒng)設(shè)計1</b></p><p>  3.1數(shù)據(jù)結(jié)構(gòu).......................................................

16、..........................................1</p><p>  3.2 系統(tǒng)包含的函數(shù)2</p><p><b>  4. 編碼實現(xiàn)2</b></p><p><b>  4.1主菜單3</b></p><p>  4.2機位查詢..........

17、........................................................................................4</p><p><b>  4.3機位預(yù)定4</b></p><p><b>  4.4取消預(yù)定7</b></p><p>  4.5查詢等

18、待信息8</p><p>  5. 調(diào)試及運行結(jié)果10</p><p>  6. 課程設(shè)計心得12</p><p><b>  參考文獻(xiàn)13</b></p><p><b>  附 錄14</b></p><p><b>  1.緒論</b&g

19、t;</p><p><b>  1.1 設(shè)計題目</b></p><p>  機房預(yù)約系統(tǒng)的設(shè)計與實現(xiàn)</p><p>  操作系統(tǒng):Windows</p><p>  軟件:Visual C++ 6.0軟件</p><p><b>  1.2 模塊劃分</b></

20、p><p><b>  2.需求分析</b></p><p>  .建立一個比較完善的菜單系統(tǒng)保證可以滿足用戶的所有需求;</p><p>  .利用二維數(shù)組和一維數(shù)組建立一個模擬數(shù)據(jù)庫,使查詢系統(tǒng)建立在數(shù)據(jù)庫上進(jìn)行查詢;</p><p>  將程序模塊化處理方便修改并且比較有條理,用函數(shù)來實現(xiàn)菜單的各種功能;</p&

21、gt;<p>  利用結(jié)構(gòu)體構(gòu)造所需的要的數(shù)組以及線性表,線性表采用順序儲存。</p><p><b>  3.系統(tǒng)設(shè)計</b></p><p><b>  3.1 數(shù)據(jù)結(jié)構(gòu)</b></p><p>  程序主要是用一維數(shù)組以及二維數(shù)組作為程序的樣本庫,用順序表順序儲存所有的信息,然后用文本轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換成

22、文本文檔存儲。其中信息包括預(yù)定的機位、預(yù)定的時間段、以及預(yù)定所用的電話號碼。</p><p>  3.2 系統(tǒng)包含的函數(shù)</p><p>  主函數(shù)包含菜單,所以用while判斷語句來進(jìn)行處理。</p><p>  機位查詢函數(shù)調(diào)用了通用函數(shù)庫同時用if的判斷語句來處理查詢問題</p><p>  機位預(yù)訂函數(shù)調(diào)用了通用函數(shù)和之前建立的數(shù)組結(jié)

23、構(gòu)體,同時在這個函數(shù)中建立文本文檔的的數(shù)據(jù)庫用以儲存用戶想要儲存的信息</p><p><b>  4.編碼實現(xiàn)</b></p><p><b>  4.1 主函數(shù)</b></p><p>  void Menu() /*主界面*/</p><p><b>  {</

24、b></p><p><b>  int n,w;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\t\t\t\t機房機位預(yù)約系統(tǒng)\n");</p><

25、p>  printf("\t\t\t\t菜單\n");</p><p>  printf("\t\t\t 1.查詢某時間段機位狀態(tài)\n"); /*查詢某時間段機位狀態(tài)*/</p><p>  printf("\t\t\t 2.預(yù)定空機位\n"); /*預(yù)定空機位*/</p><p>  prin

26、tf("\t\t\t 3.取消預(yù)訂\n"); /*取消預(yù)訂*/</p><p>  printf("\t\t\t 4.查詢等待信息\n"); /*查詢等待信息*/</p><p>  printf("\t\t\t 5.退出\n"); /*退出*/</p><p>  printf(&qu

27、ot;選擇菜單號(1-5):");</p><p>  scanf("%d",&n); </p><p>  if(n<1||n>5)</p><p>  {w=1;getchar();}</p><p><b>  else</b></p><p&g

28、t;<b>  w=0;</b></p><p>  }while(w==1);</p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:shijianchaxun();break;</p>

29、<p>  case 2:yuding();break; </p><p>  case 3:quxiaoyuding();break;</p><p>  case 4:dengdaixinxi();break;</p><p>  case 5:exit(0);break;</p><p><b>  }</b

30、></p><p>  getchar();</p><p><b>  }</b></p><p><b>  4.2機位查詢</b></p><p><b>  *時間查詢*/</b></p><p>  void shijianchaxun(

31、)</p><p><b>  {</b></p><p><b>  int time;</b></p><p>  prin/tf("輸在 (8-20)范圍內(nèi)的時間:");</p><p>  scanf("%d",&time);</p>

32、;<p>  if(time<8||time>20)</p><p>  {printf("\t時間輸入錯誤!\n");</p><p>  printf("輸入在 (8-20)范圍內(nèi)的時間:");</p><p>  scanf("%d",&time);</p>

33、;<p><b>  }</b></p><p>  detail(time); /*函數(shù)調(diào)用*/</p><p>  getchar();</p><p><b>  Menu();</b></p><p><b>  }</b><

34、;/p><p><b>  4.3機位預(yù)定</b></p><p><b>  /*預(yù)定函數(shù)*/</b></p><p>  void yuding()</p><p>  {int time,i=0,x,y;</p><p><b>  FILE *fp;</b

35、></p><p><b>  char c;</b></p><p>  printf("在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p>  scanf("%d",&time);</p><p>  if(time<8||time>

36、20)</p><p><b>  {</b></p><p>  printf("\t時間輸入錯誤!\n");</p><p>  printf("\t在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p>  scanf("%d",&t

37、ime);</p><p><b>  }</b></p><p>  detail(time); /*函數(shù)調(diào)用*/</p><p>  if(sum[T]>0)</p><p>  { if((fp=fopen("waitlist.txt","a&quo

38、t;))==NULL)</p><p><b>  {</b></p><p>  printf("\n無法打開文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p&

39、gt;  printf("\n\t請輸入你想要預(yù)定的機號,并且留下你的電話號碼!:\n");</p><p>  scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p>  for(i=0;i<1;i++)</p><p>  fwrite(&

40、;wait[i],sizeof(struct waitlist),1,fp);</p><p>  fclose(fp);/*向文本文檔添加一個結(jié)構(gòu)體單元*/</p><p>  printf("\t再次輸入你想要預(yù)定的時間!\n");</p><p>  scanf("%d",&x);</p><

41、p>  if (time+x>20)</p><p>  printf("\t預(yù)定時間錯誤請重新輸入\t\n");</p><p>  sum[T]--; /*預(yù)定后該時間段空機位數(shù)減1*/</p><p>  computer[T][x]=1; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p> 

42、 printf("\t預(yù)訂成功!\n");</p><p>  getchar();</p><p><b>  Menu();</b></p><p><b>  }</b></p><p><b>  else</b></p><p&

43、gt;<b>  {</b></p><p>  printf("這是在這個時間段內(nèi)未預(yù)定的電腦!\n");</p><p>  for(i=T+1;i<6;i++)</p><p>  { time=9+2*i;</p><p>  detail(time); /*函數(shù)調(diào)用*/<

44、/p><p>  if(sum[T]>0)</p><p>  printf("\t最近的空閑時間是 %d,%d\n",2*i+8,2*i+10);break;</p><p><b>  }</b></p><p>  printf("\t你想要預(yù)定嗎?:y/n?");<

45、/p><p>  scanf("%s",&c);</p><p>  getchar();</p><p>  if(c=='Y'||c=='y')</p><p><b>  {</b></p><p>  if((fp=fopen(&qu

46、ot;waitlist.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\n無法打開文件!\n");</p><p><b>  exit(0);</b></p><p><b&g

47、t;  }</b></p><p><b>  else</b></p><p>  { printf("waitlist: number telephonenumber\n");</p><p>  for(i=0;!feof(fp);i++)</p><p><b>  

48、{</b></p><p>  fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b> 

49、 }</b></p><p>  for(i=0;i<10;i++)</p><p>  { prione(i);}</p><p>  printf("\n\t請輸入您想預(yù)定的機號并留下您的聯(lián)系方式!:\n");</p><p>  if((fp=fopen("waitlist.txt&quo

50、t;,"a"))==NULL)</p><p><b>  {</b></p><p>  printf("\n無法打開文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b><

51、/p><p>  scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p>  for(i=0;i<1;i++)</p><p>  fwrite(&wait[i],sizeof(struct waitlist),1,fp);</p><p> 

52、 fclose(fp); /*若等待,就用文件的方式列出當(dāng)時的等待列表并提示輸入你的等待序號和聯(lián)系方式*/</p><p>  printf("再次輸入電腦的序號!\n");</p><p>  scanf("%d",&y);</p><p>  sum[T]--;

53、 </p><p>  computer[T][y]=1; </p><p>  printf("\t好了,請等待我們的電話!\n");</p><p><b>  Menu();</b></p><p><b>  }</b></p><p&g

54、t;  else Menu();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4.4取消預(yù)定</b></p><p><b>  /*取消預(yù)訂*/</b></p><p&g

55、t;  void quxiaoyuding()</p><p><b>  {</b></p><p>  int time,number;</p><p>  printf("在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:");</p><p>  scanf("%d",&

56、;time); </p><p>  if(time<8||time>20)</p><p><b>  {</b></p><p>  printf("\t輸入時間錯誤!\n");</p><p>  printf("\t在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:"

57、;);</p><p>  scanf("%d",&time);</p><p><b>  }</b></p><p><b>  else</b></p><p>  {printf("\t輸入你預(yù)定的機號 :");</p><

58、p>  scanf("%d",&number);}</p><p>  detail(time);</p><p>  sum[T]++; /*預(yù)定后該時間段空機位數(shù)加1*/</p><p>  computer[T][number]=0; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p>  prin

59、tf("\t取消成功!\n");</p><p>  getchar();</p><p><b>  Menu();</b></p><p><b>  }</b></p><p><b>  4.5查詢等待信息</b></p><p&

60、gt;  /*查看等待信息*/</p><p>  void dengdaixinxi()</p><p><b>  {</b></p><p>  int time,i;</p><p><b>  FILE *fp;</b></p><p>  printf("

61、;\t在(8-20)之間輸入您要搜索的時間:");</p><p>  scanf("%d",&time);</p><p>  if(time<8||time>20)</p><p><b>  {</b></p><p>  printf("\t時間輸入錯誤

62、!\n");</p><p>  printf("\t在(8-20)之間輸入您要搜索的時間:");</p><p>  scanf("%d",&time);</p><p><b>  }</b></p><p><b>  else</b>

63、</p><p><b>  ;</b></p><p>  if((fp=fopen("waitlist.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open f

64、ile!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  { printf("waitlist: number telephonen

65、umber\n");</p><p>  for(i=0;!feof(fp);i++)</p><p><b>  {</b></p><p>  fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><

66、p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  for(i=0;i<10;i++)</p><p>  { prione(i);}</p><p><b>  Menu(

67、);</b></p><p><b>  }</b></p><p>  5.調(diào)試以及運行結(jié)果</p><p><b>  5.1運行結(jié)果</b></p><p><b>  5.1.1主菜單</b></p><p><b>  5

68、.1.2預(yù)定機位</b></p><p><b>  5.1.3取消預(yù)定</b></p><p>  5.1.4 查詢等待機位</p><p><b>  6.課程設(shè)計心得</b></p><p>  課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要

69、環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握一些基本的軟件開發(fā)技術(shù)是十分重要和必要的。</p><p>  回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)

70、到過的知識。</p><p>  程序設(shè)計過程有如解決一實際問題,從解決實際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程--算法;最后可得結(jié)論。</p><p>  熟能生

71、巧。平時應(yīng)該多加訓(xùn)練,要知道,即使我們能完全看懂一個程序,但要讓你自己寫出一個時仍是很困難的。它要求你對每一個語句,每一個變量,每一個函數(shù),每一個模塊都充分的熟悉,要知道它們的作用,作用域等等。因此只有平時做的多了,到時候才會游刃有余。</p><p>  一個多禮拜中,我有過山窮水盡的困惑;有過柳暗花明的驚喜;一個多禮拜的時間我經(jīng)歷了很多,也收獲了很多。與其說它是體力與腦力的作業(yè),不如說它是合作精神和毅力的考驗

72、。經(jīng)過這次課程設(shè)計,我不僅學(xué)到了很多知識和技能,更重要的是我學(xué)會了如何運用所學(xué)知識去解決實際問題.</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學(xué)出版社, 2007.</p><p>  [2] 譚浩強 《C語言程序設(shè)計(第二版)》[M].北京:清華大學(xué)出

73、版社2008</p><p>  [3] 譚浩強 《C語言程序設(shè)計(第三版)》[M].北京:清華大學(xué)出版社 2014</p><p>  [4] 姜仲秋主編 C語言程序設(shè)計,南京大學(xué)出版社 2001</p><p>  [5] 譚浩強 《C語言程序設(shè)計教程(第四版)》[M].北京:清華大學(xué)出版社2014</p><p><b>  

74、附 錄</b></p><p><b>  源代碼</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>

75、;  #define N 20</p><p>  #define T (time-8)/2</p><p>  int sum[6]={0};</p><p>  int computer[6][20]={</p><p>  {1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,1},</p>&l

76、t;p>  {1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1},</p><p>  {1,1,0,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,1},</p><p>  {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1},</p><p>  {1,1,0,1,1,1,0,0

77、,0,0,0,0,1,1,0,1,1,1,1,0},</p><p>  {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1}</p><p>  };/*該數(shù)組表示假設(shè)某天某人查詢時機房各個時間段機位數(shù)情況*/</p><p>  void Menu(); </p><p>  void shiji

78、anchaxun();</p><p>  void yuding();</p><p>  void quxiaoyuding();</p><p>  void dengdaixinxi();</p><p>  void detail(int time);</p><p>  void prione(int i)

79、;</p><p>  struct waitlist /*等待列表*/</p><p><b>  {</b></p><p>  char number[3];</p><p>  char telephonenumber[11]; </p><p>  } wait[N

80、];</p><p>  void printone(int i);</p><p>  void main()</p><p><b>  {</b></p><p>  Menu(); /*當(dāng)前狀態(tài)函數(shù)*/</p><p><b>  }</b></p>

81、;<p>  void Menu() /*主界面*/</p><p><b>  {</b></p><p><b>  int n,w;</b></p><p><b>  do</b></p><p><b>  {</b>

82、;</p><p>  printf("\t\t\t\t機房機位預(yù)約系統(tǒng)\n");</p><p>  printf("\t\t\t\t菜單\n");</p><p>  printf("\t\t\t 1.查詢某時間段機位狀態(tài)\n"); /*查詢某時間段機位狀態(tài)*/</p><p>

83、;  printf("\t\t\t 2.預(yù)定空機位\n"); /*預(yù)定空機位*/</p><p>  printf("\t\t\t 3.取消預(yù)訂\n"); /*取消預(yù)訂*/</p><p>  printf("\t\t\t 4.查詢等待信息\n"); /*查詢等待信息*/</p><p>

84、  printf("\t\t\t 5.退出\n"); /*退出*/</p><p>  printf("選擇菜單號(1-5):");</p><p>  scanf("%d",&n); </p><p>  if(n<1||n>5)</p><p>  {w

85、=1;getchar();}</p><p><b>  else</b></p><p><b>  w=0;</b></p><p>  }while(w==1);</p><p><b>  switch(n)</b></p><p><b&

86、gt;  {</b></p><p>  case 1:shijianchaxun();break;</p><p>  case 2:yuding();break; </p><p>  case 3:quxiaoyuding();break;</p><p>  case 4:dengdaixinxi();break;<

87、/p><p>  case 5:exit(0);break;</p><p><b>  }</b></p><p>  getchar();</p><p><b>  }</b></p><p><b>  /*時間查詢*/</b></p>

88、<p>  void shijianchaxun()</p><p><b>  {</b></p><p><b>  int time;</b></p><p>  printf("輸在 (8-20)范圍內(nèi)的時間:");</p><p>  scanf("

89、;%d",&time);</p><p>  if(time<8||time>20)</p><p>  {printf("\t時間輸入錯誤!\n");</p><p>  printf("輸入在 (8-20)范圍內(nèi)的時間:");</p><p>  scanf("

90、;%d",&time);</p><p><b>  }</b></p><p>  detail(time); /*函數(shù)調(diào)用*/</p><p>  getchar();</p><p><b>  Menu();</b></p><

91、p><b>  }</b></p><p><b>  /*預(yù)定函數(shù)*/</b></p><p>  void yuding()</p><p>  {int time,i=0,x,y;</p><p><b>  FILE *fp;</b></p><

92、;p><b>  char c;</b></p><p>  printf("在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p>  scanf("%d",&time);</p><p>  if(time<8||time>20)</p><

93、p><b>  {</b></p><p>  printf("\t時間輸入錯誤!\n");</p><p>  printf("\t在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p>  scanf("%d",&time);</p>&l

94、t;p><b>  }</b></p><p>  detail(time); /*函數(shù)調(diào)用*/</p><p>  if(sum[T]>0)</p><p>  { if((fp=fopen("waitlist.txt","a"))==NULL)</p&g

95、t;<p><b>  {</b></p><p>  printf("\n無法打開文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  printf("\

96、n\t請輸入你想要預(yù)定的機號,并且留下你的電話號碼!:\n");</p><p>  scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p>  for(i=0;i<1;i++)</p><p>  fwrite(&wait[i],sizeof(str

97、uct waitlist),1,fp);</p><p>  fclose(fp);/*向文本文檔添加一個結(jié)構(gòu)體單元*/</p><p>  printf("\t再次輸入你想要預(yù)定的時間!\n");</p><p>  scanf("%d",&x);</p><p>  if (time+x&g

98、t;20)</p><p>  printf("\t預(yù)定時間錯誤請重新輸入\t\n");</p><p>  sum[T]--; /*預(yù)定后該時間段空機位數(shù)減1*/</p><p>  computer[T][x]=1; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p>  printf("\t預(yù)訂成

99、功!\n");</p><p>  getchar();</p><p><b>  Menu();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {<

100、/b></p><p>  printf("這是在這個時間段內(nèi)未預(yù)定的電腦!\n");</p><p>  for(i=T+1;i<6;i++)</p><p>  { time=9+2*i;</p><p>  detail(time); /*函數(shù)調(diào)用*/</p><p>  

101、if(sum[T]>0)</p><p>  printf("\t最近的空閑時間是 %d,%d\n",2*i+8,2*i+10);break;</p><p><b>  }</b></p><p>  printf("\t你想要預(yù)定嗎?:y/n?");</p><p>  

102、scanf("%s",&c);</p><p>  getchar();</p><p>  if(c=='Y'||c=='y')</p><p><b>  {</b></p><p>  if((fp=fopen("waitlist.txt&quo

103、t;,"r"))==NULL)</p><p><b>  {</b></p><p>  printf("\n無法打開文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b><

104、/p><p><b>  else</b></p><p>  { printf("waitlist: number telephonenumber\n");</p><p>  for(i=0;!feof(fp);i++)</p><p><b>  {</b></p&g

105、t;<p>  fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p&

106、gt;<p>  for(i=0;i<10;i++)</p><p>  { prione(i);}</p><p>  printf("\n\t請輸入您想預(yù)定的機號并留下您的聯(lián)系方式!:\n");</p><p>  if((fp=fopen("waitlist.txt","a"))=

107、=NULL)</p><p><b>  {</b></p><p>  printf("\n無法打開文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  

108、scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p>  for(i=0;i<1;i++)</p><p>  fwrite(&wait[i],sizeof(struct waitlist),1,fp);</p><p>  fclose(fp);

109、 /*若等待,就用文件的方式列出當(dāng)時的等待列表并提示輸入你的等待序號和聯(lián)系方式*/</p><p>  printf("再次輸入電腦的序號!\n");</p><p>  scanf("%d",&y);</p><p>  sum[T]--; </p>

110、<p>  computer[T][y]=1; </p><p>  printf("\t好了,請等待我們的電話!\n");</p><p><b>  Menu();</b></p><p><b>  }</b></p><p>  else Menu();<

111、;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /*取消預(yù)訂*/</b></p><p>  void quxiaoyuding()</p><p><b>  {</b>&l

112、t;/p><p>  int time,number;</p><p>  printf("在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:");</p><p>  scanf("%d",&time); </p><p>  if(time<8||time>20)</p>

113、<p><b>  {</b></p><p>  printf("\t輸入時間錯誤!\n");</p><p>  printf("\t在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:");</p><p>  scanf("%d",&time);</p>

114、<p><b>  }</b></p><p><b>  else</b></p><p>  {printf("\t輸入你預(yù)定的機號 :");</p><p>  scanf("%d",&number);}</p><p>  det

115、ail(time);</p><p>  sum[T]++; /*預(yù)定后該時間段空機位數(shù)加1*/</p><p>  computer[T][number]=0; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p>  printf("\t取消成功!\n");</p><p>  getchar();</p>

116、;<p><b>  Menu();</b></p><p><b>  }</b></p><p>  /*查看等待信息*/</p><p>  void dengdaixinxi()</p><p><b>  {</b></p><p&g

117、t;  int time,i;</p><p><b>  FILE *fp;</b></p><p>  printf("\t在(8-20)之間輸入您要搜索的時間:");</p><p>  scanf("%d",&time);</p><p>  if(time<

118、8||time>20)</p><p><b>  {</b></p><p>  printf("\t時間輸入錯誤!\n");</p><p>  printf("\t在(8-20)之間輸入您要搜索的時間:");</p><p>  scanf("%d"

119、,&time);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  ;</b></p><p>  if((fp=fopen("waitlist.txt","r"))

120、==NULL)</p><p><b>  {</b></p><p>  printf("\nCannot open file!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p>

121、<p><b>  else</b></p><p>  { printf("waitlist: number telephonenumber\n");</p><p>  for(i=0;!feof(fp);i++)</p><p><b>  {</b></p><

122、p>  fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><

123、;p>  for(i=0;i<10;i++)</p><p>  { prione(i);}</p><p><b>  Menu();</b></p><p><b>  }</b></p><p><b>  /*公共函數(shù)*/ </b></p>&

124、lt;p>  void detail(int time) /*此函數(shù)功能是實現(xiàn)查找每個時間段空機位總數(shù)和空機位號*/</p><p><b>  { </b></p><p>  int i,j=0,k,s=0;</p><p>  int v[30];</p><p>  for(i=0;

125、i<20;i++)</p><p><b>  {</b></p><p>  if(computer[T][i]==0)</p><p><b>  { s++;</b></p><p><b>  v[j++]=i;</b></p><p>

126、;<b>  }</b></p><p><b>  }</b></p><p><b>  sum[T]=s;</b></p><p>  printf("\t目前空置的電腦:%d\n",sum[T]);</p><p>  for(k=0;k<j;

127、k++)</p><p>  printf("\t空置的電腦是:%d\n",v[k]);</p><p><b>  }</b></p><p>  void prione(int i) /*此函數(shù)功能是實現(xiàn)輸出等待列表到屏幕*/</p><p><b>  {<

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論