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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、...................................................................................1</p><p><b>  3. 系統(tǒng)設(shè)計(jì)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. 編碼實(shí)現(xiàn)2</b></p><p><b>  4.1主菜單3</b></p><p>  4.2機(jī)位查詢..........

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

18、待信息8</p><p>  5. 調(diào)試及運(yùn)行結(jié)果10</p><p>  6. 課程設(shè)計(jì)心得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è)計(jì)題目</b></p><p>  機(jī)房預(yù)約系統(tǒng)的設(shè)計(jì)與實(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>  .建立一個(gè)比較完善的菜單系統(tǒng)保證可以滿足用戶的所有需求;</p><p>  .利用二維數(shù)組和一維數(shù)組建立一個(gè)模擬數(shù)據(jù)庫(kù),使查詢系統(tǒng)建立在數(shù)據(jù)庫(kù)上進(jìn)行查詢;</p><p>  將程序模塊化處理方便修改并且比較有條理,用函數(shù)來(lái)實(shí)現(xiàn)菜單的各種功能;</p&

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

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

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

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機(jī)房機(jī)位預(yù)約系統(tǒng)\n");</p><

25、p>  printf("\t\t\t\t菜單\n");</p><p>  printf("\t\t\t 1.查詢某時(shí)間段機(jī)位狀態(tài)\n"); /*查詢某時(shí)間段機(jī)位狀態(tài)*/</p><p>  printf("\t\t\t 2.預(yù)定空機(jī)位\n"); /*預(yù)定空機(jī)位*/</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;選擇菜單號(hào)(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機(jī)位查詢</b></p><p><b>  *時(shí)間查詢*/</b></p><p>  void shijianchaxun(

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

32、;<p>  if(time<8||time>20)</p><p>  {printf("\t時(shí)間輸入錯(cuò)誤!\n");</p><p>  printf("輸入在 (8-20)范圍內(nèi)的時(shí)間:");</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機(jī)位預(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)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:");</p><p>  scanf("%d",&time);</p><p>  if(time<8||time>

36、20)</p><p><b>  {</b></p><p>  printf("\t時(shí)間輸入錯(cuò)誤!\n");</p><p>  printf("\t在(8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:");</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無(wú)法打開(kāi)文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p&

39、gt;  printf("\n\t請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的電話號(hào)碼!:\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);/*向文本文檔添加一個(gè)結(jié)構(gòu)體單元*/</p><p>  printf("\t再次輸入你想要預(yù)定的時(shí)間!\n");</p><p>  scanf("%d",&x);</p><

41、p>  if (time+x>20)</p><p>  printf("\t預(yù)定時(shí)間錯(cuò)誤請(qǐng)重新輸入\t\n");</p><p>  sum[T]--; /*預(yù)定后該時(shí)間段空機(jī)位數(shù)減1*/</p><p>  computer[T][x]=1; /*預(yù)定后該機(jī)狀態(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("這是在這個(gè)時(shí)間段內(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最近的空閑時(shí)間是 %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無(wú)法打開(kāi)文件!\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請(qǐng)輸入您想預(yù)定的機(jī)號(hào)并留下您的聯(lián)系方式!:\n");</p><p>  if((fp=fopen("waitlist.txt&quo

50、t;,"a"))==NULL)</p><p><b>  {</b></p><p>  printf("\n無(wú)法打開(kāi)文件!\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)時(shí)的等待列表并提示輸入你的等待序號(hào)和聯(lián)系方式*/</p><p>  printf("再次輸入電腦的序號(hào)!\n");</p><p>  scanf("%d",&y);</p><p>  sum[T]--;

53、 </p><p>  computer[T][y]=1; </p><p>  printf("\t好了,請(qǐng)等待我們的電話!\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)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:");</p><p>  scanf("%d",&

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

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

58、p>  scanf("%d",&number);}</p><p>  detail(time);</p><p>  sum[T]++; /*預(yù)定后該時(shí)間段空機(jī)位數(shù)加1*/</p><p>  computer[T][number]=0; /*預(yù)定后該機(jī)狀態(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)之間輸入您要搜索的時(shí)間:");</p><p>  scanf("%d",&time);</p><p>  if(time<8||time>20)</p><p><b>  {</b></p><p>  printf("\t時(shí)間輸入錯(cuò)誤

62、!\n");</p><p>  printf("\t在(8-20)之間輸入您要搜索的時(shí)間:");</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)試以及運(yùn)行結(jié)果</p><p><b>  5.1運(yùn)行結(jié)果</b></p><p><b>  5.1.1主菜單</b></p><p><b>  5

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

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

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

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

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

73、版社2008</p><p>  [3] 譚浩強(qiáng) 《C語(yǔ)言程序設(shè)計(jì)(第三版)》[M].北京:清華大學(xué)出版社 2014</p><p>  [4] 姜仲秋主編 C語(yǔ)言程序設(shè)計(jì),南京大學(xué)出版社 2001</p><p>  [5] 譚浩強(qiáng) 《C語(yǔ)言程序設(shè)計(jì)教程(第四版)》[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í)機(jī)房各個(gè)時(shí)間段機(jī)位數(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機(jī)房機(jī)位預(yù)約系統(tǒng)\n");</p><p>  printf("\t\t\t\t菜單\n");</p><p>  printf("\t\t\t 1.查詢某時(shí)間段機(jī)位狀態(tài)\n"); /*查詢某時(shí)間段機(jī)位狀態(tài)*/</p><p>

83、;  printf("\t\t\t 2.預(yù)定空機(jī)位\n"); /*預(yù)定空機(jī)位*/</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("選擇菜單號(hào)(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>  /*時(shí)間查詢*/</b></p>

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

89、;%d",&time);</p><p>  if(time<8||time>20)</p><p>  {printf("\t時(shí)間輸入錯(cuò)誤!\n");</p><p>  printf("輸入在 (8-20)范圍內(nèi)的時(shí)間:");</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)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:");</p><p>  scanf("%d",&time);</p><p>  if(time<8||time>20)</p><

93、p><b>  {</b></p><p>  printf("\t時(shí)間輸入錯(cuò)誤!\n");</p><p>  printf("\t在(8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:");</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無(wú)法打開(kāi)文件!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  printf("\

96、n\t請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的電話號(hào)碼!:\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);/*向文本文檔添加一個(gè)結(jié)構(gòu)體單元*/</p><p>  printf("\t再次輸入你想要預(yù)定的時(shí)間!\n");</p><p>  scanf("%d",&x);</p><p>  if (time+x&g

98、t;20)</p><p>  printf("\t預(yù)定時(shí)間錯(cuò)誤請(qǐng)重新輸入\t\n");</p><p>  sum[T]--; /*預(yù)定后該時(shí)間段空機(jī)位數(shù)減1*/</p><p>  computer[T][x]=1; /*預(yù)定后該機(jī)狀態(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("這是在這個(gè)時(shí)間段內(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最近的空閑時(shí)間是 %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無(wú)法打開(kāi)文件!\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請(qǐng)輸入您想預(yù)定的機(jī)號(hào)并留下您的聯(lián)系方式!:\n");</p><p>  if((fp=fopen("waitlist.txt","a"))=

107、=NULL)</p><p><b>  {</b></p><p>  printf("\n無(wú)法打開(kāi)文件!\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)時(shí)的等待列表并提示輸入你的等待序號(hào)和聯(lián)系方式*/</p><p>  printf("再次輸入電腦的序號(hào)!\n");</p><p>  scanf("%d",&y);</p><p>  sum[T]--; </p>

110、<p>  computer[T][y]=1; </p><p>  printf("\t好了,請(qǐng)等待我們的電話!\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)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:");</p><p>  scanf("%d",&time); </p><p>  if(time<8||time>20)</p>

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

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

115、ail(time);</p><p>  sum[T]++; /*預(yù)定后該時(shí)間段空機(jī)位數(shù)加1*/</p><p>  computer[T][number]=0; /*預(yù)定后該機(jī)狀態(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)之間輸入您要搜索的時(shí)間:");</p><p>  scanf("%d",&time);</p><p>  if(time<

118、8||time>20)</p><p><b>  {</b></p><p>  printf("\t時(shí)間輸入錯(cuò)誤!\n");</p><p>  printf("\t在(8-20)之間輸入您要搜索的時(shí)間:");</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ù)功能是實(shí)現(xiàn)查找每個(gè)時(shí)間段空機(jī)位總數(shù)和空機(jī)位號(hào)*/</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ù)功能是實(shí)現(xiàn)輸出等待列表到屏幕*/</p><p><b>  {<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論