2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩28頁(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ì) 報(bào) 告</p><p>  課程名稱 C語(yǔ)言課程設(shè)計(jì) </p><p>  課題名稱 猜數(shù)字游戲系統(tǒng) </p><p><b>  2012年9月3日</b></p><p><b>  目 錄</b&

2、gt;</p><p>  第一章 前言............................................................................................</p><p>  第二章 需求分析……………………………………………….....…...</p><p>  2.1系統(tǒng)概述......

3、...................................................</p><p>  2.2功能需求描述..................................................</p><p>  第三章 總體設(shè)計(jì)………………………………………..……….…..</p><p>  3.1模塊設(shè)計(jì)

4、........................................................................................</p><p>  3.2程序的模塊組成………………………………………………</p><p>  3.3各個(gè)函數(shù)的主要功能…………………………….………...…..</p><p>  第

5、四章 詳細(xì)設(shè)計(jì)…………………………………………………....</p><p>  4.1 系統(tǒng)的總體框圖…………………………………………..</p><p>  4.2 相關(guān)的數(shù)據(jù)類型.........................................................................</p><p>  4.3 函數(shù)

6、間的調(diào)用圖.........................................................................</p><p>  4.4 流程圖…………………………………………………… .....…</p><p>  第五章 測(cè)試和結(jié)果……………………………………………….... </p><p>  5.1 調(diào)試

7、分析……………………………………………………..…. 5.2 使用說(shuō)明......................................................................................</p><p>  5.3 運(yùn)行結(jié)果截屏及說(shuō)明………………………………………..</p><p>  第六章 源程序……………………

8、……………………………...…...</p><p>  第七章 總結(jié)………………………………………………………......</p><p>  附錄 1、計(jì)算機(jī)應(yīng)用與通信學(xué)院評(píng)分標(biāo)準(zhǔn)………………..…………………….....</p><p><b>  第一章</b></p><p><b>  前 言

9、</b></p><p>  《C語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)是對(duì)學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相輔相成的必不可少的一個(gè)教學(xué)環(huán)節(jié)。通常,課程設(shè)計(jì)的課題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。課程設(shè)計(jì)著眼于與應(yīng)用的結(jié)合點(diǎn),使學(xué)生學(xué)會(huì)如何把書上學(xué)到的知識(shí)用于解決實(shí)際問題,培養(yǎng)

10、軟件工作所需要的動(dòng)手能力;另一方面,能使書上的知識(shí)變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達(dá)到上述目的,本課程設(shè)計(jì)安排了八個(gè)設(shè)計(jì)課題,訓(xùn)練重點(diǎn)在于基本的程序設(shè)計(jì)方法和分析問題的能力,而不強(qiáng)調(diào)面面俱到。學(xué)生可任選其中一題進(jìn)行設(shè)計(jì),設(shè)計(jì)完畢寫出課程設(shè)計(jì)報(bào)告,用A4紙打印成冊(cè);并將課程設(shè)計(jì)報(bào)告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計(jì)報(bào)告與磁盤收齊后交指導(dǎo)老師。</p><p><b>  第二章 &l

11、t;/b></p><p><b>  需求分析</b></p><p>  猜數(shù)字游戲是一個(gè)運(yùn)行在Windows平臺(tái)下的小型游戲軟件,依據(jù)猜數(shù)字游戲的基本規(guī)則,給用戶進(jìn)行成績(jī)排行,在排行榜中排出前五名玩家的游戲記錄,并可以隨著玩家的游戲記錄進(jìn)行更新。1、系統(tǒng)概述  該軟件在Windows系統(tǒng)上為玩家提供猜數(shù)字游戲的基本功能,游戲用戶可以

12、選擇開始游、排行榜查看、幫助等主要功能。當(dāng)用戶選擇開始游戲時(shí),系統(tǒng)會(huì)提示用戶排行榜上猜數(shù)字成績(jī)的最好記錄,并讓用戶逐次猜數(shù)字,用戶每次猜數(shù)字后系統(tǒng)會(huì)給出本次猜數(shù)字的結(jié)果提示,如位置和數(shù)字都正確的數(shù)字個(gè)數(shù)、數(shù)字正確介位置不正確的數(shù)字個(gè)數(shù)。如果用戶猜數(shù)字的次數(shù)超過(guò)8次,則提示用戶游戲失敗,如果在8次之內(nèi)猜出4個(gè)數(shù)字和正確的順序,則提示用戶猜數(shù)字成功,并到排行榜中進(jìn)行比較,如果排名在前一名,則計(jì)入排行榜中,以便其他用戶查看。在排行榜查看功能中

13、,用戶可以查看當(dāng)前的游戲排行,排行榜中總共顯示5名玩家的排行,如有新的記錄產(chǎn)生,則插入到排行榜中,并把排行榜中位次最末的記錄擠出排行榜。在幫助模塊,用戶可以查看游戲規(guī)則,當(dāng)熟悉規(guī)則后可以退出幫助模塊。2、功能需求描述  猜數(shù)字游戲軟件的總體目標(biāo)是按照特定游戲規(guī)則為用戶提供一個(gè)方便友好的游戲</p><p><b>  第三章 </b></p><p

14、><b>  總體設(shè)計(jì)</b></p><p>  在前面對(duì)猜數(shù)字游戲進(jìn)行需求分析的過(guò)程中,已經(jīng)初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設(shè)計(jì)的過(guò)程中,給出猜數(shù)字游戲的模塊結(jié)構(gòu)、流程描述以及界面布局,并使得系統(tǒng)的總體設(shè)計(jì)符合軟件工程中總體設(shè)計(jì)的基本原則。開發(fā)與設(shè)計(jì)的總體思想   猜數(shù)字游戲是一種大眾娛樂游戲,開發(fā)與設(shè)計(jì)的重點(diǎn)在于游戲供玩家進(jìn)行猜數(shù)字

15、游戲的原始數(shù)字的產(chǎn)生和用戶每次進(jìn)行猜數(shù)字操作之后的游戲提示,這兩方面的規(guī)則設(shè)計(jì)往往決定了軟件運(yùn)行的正確性和質(zhì)量。1、模塊設(shè)計(jì):  1)、游戲區(qū)模塊   該模塊為玩家提供猜數(shù)字游戲的主休功能,由系統(tǒng)自動(dòng)產(chǎn)生4個(gè)隨機(jī)排列的整數(shù),并給用戶8次機(jī)會(huì)猜測(cè)數(shù)字的數(shù)值和排列順序。如果用戶在8次之內(nèi)沒有猜出正確的結(jié)果,則提示用戶游戲失敗,否則提示用戶猜數(shù)字成功,并調(diào)用產(chǎn)生新記錄模塊對(duì)玩家游戲成績(jī)進(jìn)行處理

16、。(因精力有限且只能用畫圖來(lái)畫個(gè)框架,所以就不再有圖了)  ①產(chǎn)生原始數(shù)字:由系統(tǒng)產(chǎn)生4個(gè)隨機(jī)數(shù),并按任意順序排列,作為游戲的原始數(shù)字供玩家進(jìn)行猜數(shù)字游戲?!?②游提示:提示用戶數(shù)值和位置全對(duì)的數(shù)字個(gè)數(shù),和只有數(shù)值但位置不對(duì)的數(shù)字個(gè)數(shù)。  ③原始數(shù)字顯示:當(dāng)用戶在8次之內(nèi)仍未能</p><p>  2、程序的模塊組成:</p><p>  主函數(shù): int main()</p&

17、gt;<p>  創(chuàng)立結(jié)構(gòu)體:struct p1()</p><p>  使數(shù)字產(chǎn)生循環(huán): int rand1()</p><p>  調(diào)用讀取破記錄: goread()</p><p>  輸入數(shù)字: void input1();</p><p>  初始化隨機(jī)數(shù)發(fā)生器:getnumber()</p><

18、p>  清除文本模式窗口:clrscr();</p><p>  讀入字符串的時(shí)候,直到回車為止 :gets()</p><p>  3、各個(gè)函數(shù)的主要功能:</p><p>  隨機(jī)產(chǎn)生4個(gè)數(shù)的函數(shù): 隨機(jī)產(chǎn)生4個(gè)數(shù)字。</p><p>  randomize()是c函數(shù)庫(kù)提供的一個(gè)函數(shù),功能給產(chǎn)生隨機(jī)數(shù)的進(jìn)行初始化</p>

19、;<p><b>  清除文本模式窗口</b></p><p><b>  第四章 </b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  1、系統(tǒng)的總體框圖</b></p><p><b>  圖 4

20、-1</b></p><p>  2、相關(guān)的數(shù)據(jù)類型:</p><p>  #include<stdio.h></p><p>  #include<conio.h></p><p>  #include<stdlib.h></p><p>  #include<s

21、tring.h></p><p>  void rand2();</p><p>  int rand1();</p><p>  void input1();</p><p>  void compare1();</p><p>  int i,j,k,c,d,b[4];</p><p>

22、;  char a[24];</p><p><b>  將數(shù)字定義為整型</b></p><p>  3、函數(shù)間的調(diào)用關(guān)系圖如下:</p><p><b>  圖 4-2</b></p><p><b>  4、流程圖</b></p><p><

23、;b>  圖 4-3</b></p><p><b>  第五章 </b></p><p><b>  測(cè)試和結(jié)果</b></p><p><b>  1、調(diào)試分析;</b></p><p>  輸入的游戲玩家人數(shù)太多時(shí),屏幕顯示不能控制為一頁(yè)一頁(yè)顯示,所以

24、為了方便起見,不要輸入太多記錄,十七左右為最佳。</p><p>  剛開始執(zhí)行輸入函數(shù),按數(shù)字順序輸入,輸完后執(zhí)行顯示功能,數(shù)字、字母的位置顯示不對(duì),試著在其中增加一些語(yǔ)句,希望能把所需結(jié)果按正常順序顯示,但暫時(shí)沒有成功,最后在老師的幫助下,所需結(jié)果能按正常順序輸出了。</p><p>  在前面對(duì)猜數(shù)字游戲進(jìn)行需求分析的過(guò)程中,已經(jīng)初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設(shè)

25、計(jì)的過(guò)程中,給出猜數(shù)字游戲的模塊結(jié)構(gòu)、流程描述以及界面布局,并使得系統(tǒng)的總體設(shè)計(jì)符合軟件工程中總體設(shè)計(jì)的基本原則。開發(fā)與設(shè)計(jì)的總體思想   猜數(shù)字游戲是一種大眾娛樂游戲,開發(fā)與設(shè)計(jì)的重點(diǎn)在于游戲供玩家進(jìn)行猜數(shù)字游戲的原始數(shù)字的產(chǎn)生和用戶每次進(jìn)行猜數(shù)字操作之后的游戲提示,這兩方面的規(guī)則設(shè)計(jì)往往決定了軟件運(yùn)行的正確性和質(zhì)量。同時(shí),要謹(jǐn)記調(diào)試失敗的原因,以免下次犯同類錯(cuò)誤。</p><p>&l

26、t;b>  2、使用說(shuō)明:</b></p><p><b>  1)、打開程序:</b></p><p>  2)、進(jìn)入選擇頁(yè)面:</p><p> ?。?)選擇1為查看記錄</p><p> ?。?)選擇2為新游戲</p><p><b> ?。?)選擇0為退出<

27、;/b></p><p><b>  3)、進(jìn)行游戲</b></p><p><b>  4)、退出</b></p><p>  3、運(yùn)行結(jié)果截屏及說(shuō)明:</p><p><b>  游戲初始畫面</b></p><p>  選擇一進(jìn)入游戲系統(tǒng)隨機(jī)

28、顯示四個(gè)數(shù)字提供讓游戲者猜測(cè):</p><p>  如果連續(xù)四次輸入錯(cuò)誤將出現(xiàn)如下結(jié)果,并出現(xiàn)提示:</p><p>  選擇四進(jìn)入幫助顯示結(jié)果</p><p>  如果繼續(xù)則可以輸入姓名并保存記錄如果按任意鍵則返回首頁(yè):</p><p><b>  第六章 </b></p><p><b

29、>  源程序</b></p><p>  #include <time.h></p><p>  #include <stdlib.h></p><p>  #include<stdio.h></p><p>  #include <conio.h></p>&l

30、t;p>  int a[5],b[5],n1,n2,n3,i,j;/* a,b,只用了從1~4的四個(gè)下標(biāo). */</p><p>  /* n1計(jì)算位置數(shù)字相同的數(shù)字個(gè)數(shù) */</p><p>  /* n2計(jì)算數(shù)字相同但位置不相同的數(shù)字個(gè)數(shù) */</p><p>  /* n3計(jì)算所猜次數(shù) */</p><p><b>  

31、char ch;</b></p><p>  StartProgram()</p><p><b>  {</b></p><p>  ReadRecord(); /*調(diào)用讀取破記者函數(shù) */</p><p><b>  n1=0;</b></p><p><

32、;b>  n3=0;</b></p><p>  getnumber();/*調(diào)用隨機(jī)產(chǎn)生4個(gè)數(shù)的函數(shù)*/</p><p>  for(j=i-1;j>=1;j--)</p><p>  printf("%d ",a[j]);</p><p>  getchar();</p><

33、p>  printf("\n\n\n\n\n");</p><p>  /* 循環(huán)猜數(shù) */</p><p>  while(n1<4&&n3<10)</p><p><b>  {</b></p><p><b>  ++n3;</b><

34、/p><p><b>  n1=0;</b></p><p><b>  n2=0;</b></p><p>  /* 提示用戶輸入四個(gè)要猜的4位整數(shù) */</p><p>  for(i=1;i<=4;i++)</p><p><b>  {</b>

35、</p><p>  printf("\ninput the NO.%d number:",i);</p><p>  scanf("%d",&b[i]);</p><p><b>  }</b></p><p>  for(i=1;i<=4;i++)</p&g

36、t;<p><b>  {</b></p><p>  if(a[i]==b[i])/* 位置數(shù)字都對(duì)的 */</p><p><b>  {</b></p><p><b>  n1++;</b></p><p><b>  continue;<

37、/b></p><p><b>  }</b></p><p>  for(j=1;j<=4;j++)/* 計(jì)算數(shù)字相同但位置不相同的個(gè)數(shù) */</p><p>  if(b[i]==a[j]) n2++;</p><p><b>  }</b></p><p>

38、  printf("correct value and correct position: %d\n",n1);</p><p>  printf("correct value but incorrectness position:%d\n",n2);</p><p>  printf("you have guessed %d times\

39、n",n3);</p><p>  if(n1==4) break;/* 如果四次都猜對(duì)了就結(jié)束循環(huán)。 */</p><p>  } /* while循環(huán)結(jié)束 */</p><p>  if(n3>=10)</p><p>  printf("You blew it ,the answer is %d,%d,%d&q

40、uot;,a[1],a[2],a[3],a[4]);</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("Configrafulastions!You finish it by %d times\n",n3);</p>

41、<p>  ResetRecord(n3);</p><p><b>  }</b></p><p>  printf("press any key to continue...\n");</p><p>  fflush(stdin);</p><p><b>  getch()

42、;</b></p><p><b>  }</b></p><p>  getnumber()/* 隨機(jī)產(chǎn)生四個(gè)數(shù)的函數(shù) */</p><p><b>  {</b></p><p>  randomize(); </p><p>  /* 產(chǎn)生隨機(jī)數(shù)的初始化函數(shù)

43、 */</p><p>  for(i=1;i<=4;i++)</p><p><b>  {</b></p><p><b>  loop2:</b></p><p><b>  {</b></p><p>  /* 產(chǎn)生的隨機(jī)數(shù)處理為1位的整數(shù)

44、 */</p><p>  a[i]=rand()%10;/* rand函數(shù)用于產(chǎn)生隨機(jī)數(shù) */</p><p>  /* 循環(huán)判斷,隨機(jī)數(shù)要求不重復(fù),如果重復(fù)則重新產(chǎn)生 */</p><p>  for(j=i-1;j>=1;j--)</p><p>  if(a[i]==a[j]) goto loop2;</p>&l

45、t;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  #ifndef PLAYER</p><p>  #define PLAYER</p><p>  #include

46、 <stdio.h></p><p>  #include <conio.h></p><p>  #include <string.h></p><p>  #define SIZE 5</p><p>  typedef struct</p><p><b>  {&l

47、t;/b></p><p>  char name[20];/* field of name */</p><p>  int score;/* field of score */</p><p><b>  }player;</b></p><p><b>  #endif#</b><

48、/p><p>  /* SortByName按游戲成績(jī)排序 */</p><p>  #include <stdio.h></p><p>  void SortByName()</p><p><b>  {</b></p><p>  int i,j,k;</p><

49、;p>  player TempS;/* 定義進(jìn)行操作時(shí)的臨時(shí)結(jié)構(gòu)體變量 */</p><p>  player s[5];/* SIZE在score.h頭文件中定義的常量,值為5 */</p><p>  int recNumber=0;</p><p>  char DataFile[10]="record";</p>&

50、lt;p>  FILE *fp=NULL;</p><p><b>  clrscr();</b></p><p>  /* 以讀的方式打開文件,如文件不存在,提示錯(cuò)誤 */</p><p>  fp=fopen(DataFile,"rb");</p><p>  if(fp==NULL)<

51、;/p><p><b>  {</b></p><p>  printf("\nOpen file %s fial !End with any key.\n",DataFile);</p><p>  perror("Open file fail");</p><p>  fflush

52、(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  /* 將文件中要排序的信息存入結(jié)構(gòu)體數(shù)組 */</p><p>  w

53、hile(fread(&s[recNumber],sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  recNumber++;</p><p><b>  }</b></p><p>  fclose(fp);<

54、/p><p>  /* 如果文件中有記錄,則將各記錄按游戲成績(jī)值排序 */</p><p>  if(recNumber>1)</p><p><b>  {</b></p><p>  for(i=0;i<recNumber-1;i++)</p><p><b>  {<

55、/b></p><p><b>  k=i;</b></p><p>  for(j=i+1;j<recNumber;j++)</p><p><b>  {</b></p><p>  if(strcmp(s[k].name,s[j].name)>0) k=j;</p>

56、;<p><b>  }</b></p><p><b>  if(k!=i)</b></p><p><b>  {</b></p><p>  strcpy(TempS.name,s[k].name);</p><p>  TempS.score=s[k].s

57、core;</p><p>  strcpy(s[k].name,s[i].name);</p><p>  s[k].score=s[i].score;</p><p>  strcpy(s[i].name,TempS.name);</p><p>  s[i].score=TempS.score;</p><p>

58、<b>  }</b></p><p><b>  }</b></p><p>  /* 將排序好的記錄寫入文件 */</p><p>  fp=fopen(DataFile,"wb+");</p><p>  if(fp==NULL)</p><p>&

59、lt;b>  {</b></p><p>  printf("\nOpen file %s fial!End with any key.\n",DataFile);</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p>

60、<p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  for (i=0;i<recNumber;i++)</p><p><b>  {</b

61、></p><p>  if(fwrite(&s[i],sizeof(player),1,fp)!=1)</p><p><b>  {</b></p><p>  printf("\nwrite file %s fail!End with any key.\n",DataFile);</p>&

62、lt;p>  perror("write file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</

63、b></p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  /* 顯示排序后的文件 */</p><p>  printf("the player's score

64、 as folow:\n");</p><p>  fp=fopen(DataFile,"rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("\nOpen file %s fial!End with

65、any key.\n",DataFile);</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b>

66、;</p><p><b>  }</b></p><p>  printf("\nName\t\tscore\n");</p><p>  while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {<

67、/b></p><p>  printf("%s\t\t%d\n",TempS.name,TempS.score);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("press any key to continu

68、e...");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  #include <stdio.h></p><p>  /* 顯示幫助信

69、息 */</p><p>  PrintHelp()</p><p><b>  {</b></p><p><b>  clrscr();</b></p><p>  printf("\n");</p><p>  printf("+-----

70、---------------------------------------------------+\n");</p><p>  printf("+ you hava 10 opportunities to guess num +\n");</p><p>  printf("+ every time the

71、 system will hint you : +\n");</p><p>  printf("+ correct value and correct position count +\n");</p><p>  printf("+ correct value but incorrec

72、tness position count +\n");</p><p>  printf("+--------------------------------------------------------+\n");</p><p>  printf("+ about the score list

73、 +\n");</p><p>  printf("+ the score list is store the five player's score on top +\n");</p><p>  printf("+-------------------------------------------------

74、-------+\n");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  /* SortByName按游戲成績(jī)排序 */</p><p>  #in

75、clude <stdio.h></p><p>  void SortByScore()</p><p><b>  {</b></p><p>  int i,j,k;</p><p>  player TempS;/* 定義進(jìn)行操作時(shí)的臨時(shí)結(jié)構(gòu)體變量 */</p><p>  pl

76、ayer s[5];/* SIZE在score.h頭文件中定義的常量,值為5 */</p><p>  int recNumber=0;</p><p>  char DataFile[10]="record";</p><p>  FILE *fp=NULL;</p><p><b>  clrscr();&l

77、t;/b></p><p>  /* 以讀的方式打開文件,如文件不存在,提示錯(cuò)誤 */</p><p>  fp=fopen(DataFile,"rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  prin

78、tf("\nOpen file %s fial !End with any key.\n",DataFile);</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p>

79、;<p><b>  return;</b></p><p><b>  }</b></p><p>  /* 將文件中要排序的信息存入結(jié)構(gòu)體數(shù)組 */</p><p>  while(fread(&s[recNumber],sizeof(player),1,fp)!=(int)NULL)</p

80、><p><b>  {</b></p><p>  recNumber++;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  /* 如果文件中有記錄,則將各記錄按游戲成績(jī)值排序 */</p><p>

81、;  if(recNumber>1)</p><p><b>  {</b></p><p>  for(i=0;i<recNumber-1;i++)</p><p><b>  {</b></p><p><b>  k=i;</b></p><

82、;p>  for(j=i+1;j<recNumber;j++)</p><p><b>  {</b></p><p>  if(s[k].score>s[j].score) k=j;</p><p><b>  }</b></p><p><b>  if(k!=i)&

83、lt;/b></p><p><b>  {</b></p><p>  strcpy(TempS.name,s[k].name);</p><p>  TempS.score=s[k].score;</p><p>  strcpy(s[k].name,s[i].name);</p><p&g

84、t;  s[k].score=s[i].score;</p><p>  strcpy(s[i].name,TempS.name);</p><p>  s[i].score=TempS.score;</p><p><b>  }</b></p><p><b>  }</b></p>

85、<p>  /* 將排序好的記錄寫入文件 */</p><p>  fp=fopen(DataFile,"wb+");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("\nOpen file %s fia

86、l!End with any key.\n",DataFile);</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  retur

87、n;</b></p><p><b>  }</b></p><p>  for (i=0;i<recNumber;i++)</p><p><b>  {</b></p><p>  if(fwrite(&s[i],sizeof(player),1,fp)!=1)<

88、/p><p><b>  {</b></p><p>  printf("\nwrite file %s fail!End with any key.\n",DataFile);</p><p>  perror("write file fail");</p><p>  fflush

89、(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  fclo

90、se(fp);</p><p><b>  }</b></p><p>  /* 顯示排序后的文件 */</p><p>  printf("the player's score as flow:\n");</p><p>  fp=fopen(DataFile,"rb")

91、;</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("\nOpen file %s fial!End with any key.\n",DataFile);</p><p>  perror("Open file fai

92、l");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf(&q

93、uot;\nName\t\tscore\n");</p><p>  while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  printf("%s\t\t%d\n",TempS.name,TempS.

94、score);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("press any key to continue...");</p><p>  fflush(stdin);</p><p><b&

95、gt;  getch();</b></p><p><b>  }</b></p><p>  #include <stdio.h></p><p>  ResetRecord(int n) /* n所用次數(shù) */</p><p><b>  {</b></p>

96、<p><b>  int i,j;</b></p><p>  int recnum=0;</p><p>  int maxscore=0;</p><p>  player r[5];</p><p>  FILE *fp=NULL;</p><p>  player Pro;&

97、lt;/p><p>  player TempS;</p><p>  fp=fopen("record","rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("\nOp

98、en file fail!End with any key\n");</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  exit

99、(0);</b></p><p><b>  }</b></p><p>  /* 將文件中的記錄讀入數(shù)組中. */</p><p>  while((fread(&r[recnum],sizeof(player),1,fp)!=(int)NULL) && (recnum<5))</p>

100、<p><b>  {</b></p><p><b>  recnum++;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  /* 如果記錄成員沒有5個(gè),則順次入數(shù)組中添加記錄 */</p>

101、<p>  if(recnum<4)</p><p><b>  {</b></p><p>  printf("What is your name?"); /* 讓玩家輸入姓名 */</p><p>  scanf("%s",r[recnum].name);</p>

102、<p>  r[recnum].score=n;</p><p><b>  recnum++;</b></p><p><b>  }</b></p><p>  /* 如果記錄成員已經(jīng)有5個(gè),則找出猜數(shù)字次數(shù)最多的記錄,即最差玩家 */</p><p>  /* 如果當(dāng)前記錄比此記錄快

103、,則替換 */</p><p><b>  else</b></p><p><b>  {</b></p><p>  for(i=0;i<5;i++)</p><p><b>  {</b></p><p>  if(r[i].score>

104、;maxscore)/* maxscor初始值為0 */</p><p><b>  {</b></p><p>  maxscore=r[i].score;</p><p><b>  j=i;</b></p><p><b>  }</b></p><p

105、><b>  }</b></p><p>  /* 如果當(dāng)前人的記錄比最慢記錄快,或相等則替換,使玩家入榜,最差玩家落榜 */</p><p>  if(n<=r[j].score)</p><p><b>  {</b></p><p>  printf("What is y

106、our name?"); /* 讓玩家輸入姓名 */</p><p>  scanf("%s",r[j].name);</p><p>  r[j].score=n;</p><p><b>  }</b></p><p><b>  }</b></p>

107、<p>  fp=fopen("record","wb");/* 以寫的方式打開排行榜文件 */</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("Open file fail!end with any key.

108、\n");</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><

109、;p><b>  }</b></p><p>  /* 循環(huán)把更新過(guò)的排行情況寫入排行榜 */</p><p>  for(i=0;i<recnum;i++)</p><p><b>  {</b></p><p>  if(fwrite(&r[i],sizeof(player)

110、,1,fp)!=1)</p><p><b>  {</b></p><p>  printf("\nWrite file fail!End with any key.\n");</p><p>  perror("Write file fail");</p><p><b&

111、gt;  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  /* 顯

112、示更新排行過(guò)的排行榜 */</p><p>  fp=fopen("record","rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("Open file fail!end with an

113、y key.\n");</p><p>  perror("Open file fail");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p>

114、;<p><b>  }</b></p><p>  printf("the record is:\n");</p><p>  printf("\nName\tscore\n");</p><p>  while(fread(&TempS,sizeof(player),1,fp)!

115、=(int)NULL)</p><p><b>  {</b></p><p>  printf("\n%s\t%d\n",TempS.name,TempS.score);</p><p><b>  }</b></p><p>  fclose(fp);</p>

116、<p><b>  }</b></p><p>  #include <stdio.h></p><p>  ClearSort()</p><p><b>  {</b></p><p>  player TempS;/* 定義進(jìn)行操作時(shí)的臨時(shí)結(jié)構(gòu)體變量,用于存放系統(tǒng)默認(rèn)記錄

117、 */</p><p>  char DataFile[10]="record";/* 存放排行榜文件名 */</p><p>  FILE * fp=NULL;</p><p>  strcpy(TempS.name,"player");/* 初始化系統(tǒng)默認(rèn)記錄的玩家姓名 */</p><p>  T

118、empS.score=10;/* 初始化系統(tǒng)默認(rèn)記錄的玩家成績(jī) */</p><p>  fp=fopen(DataFile,"wb+");/* 打開排行榜文伯 */</p><p>  if(fp==NULL)/* 打開不成功給出錯(cuò)誤提示 */</p><p><b>  {</b></p><p>

119、;  printf("\nOpen the score sort file fail!end with any key!\n",DataFile);</p><p>  perror("Open file fail!");</p><p>  fflush(stdin);</p><p><b>  getch();

120、</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  /* 將系統(tǒng)默認(rèn)記錄以履蓋的方式寫入排行榜 */</p><p>  if(fwrite(&TempS,sizeof(player),1,fp)!=1)&l

121、t;/p><p><b>  {</b></p><p>  printf("\nWrite file %s fail!End with any key!\n",DataFile);</p><p>  perror("write file fail!");</p><p>  ffl

122、ush(stdin);</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf(&q

123、uot;\nThe sort file is cleared!\n");</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  #include <stdio.h>&l

124、t;/p><p>  void main()</p><p><b>  {</b></p><p>  int choice=1;</p><p><b>  while(1)</b></p><p><b>  {</b></p><

125、p><b>  clrscr();</b></p><p>  printf("#===============================#\n");</p><p>  printf("# Welcome to GuessNum Program #\n");</p><p>  prin

126、tf("#===============================#\n");</p><p>  printf("# 1.to start game #\n");</p><p>  printf("# 2.to browse the sort by scor #\n");</p>

127、<p>  printf("# 3.to browse the sort by name #\n");</p><p>  printf("# 4.to view the help #\n");</p><p>  printf("# 5.to clear the sort #\n&

128、quot;);</p><p>  printf("# 0.Exit #\n");</p><p>  printf("#===============================#\n");</p><p>  printf("Please input you ch

129、oice here:");</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><

130、p>  StartProgram();</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  SortByScore();</p><p><b>  break;</b></p><

131、p><b>  case 3:</b></p><p>  SortByName();</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  PrintHelp();</p><p&g

132、t;<b>  break;</b></p><p><b>  case 5:</b></p><p>  ClearSort();</p><p><b>  break;</b></p><p><b>  case 0:</b></p>

133、<p><b>  exit(0);</b></p><p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("select error!\nPress any key to countinue...&q

134、uot;);</p><p>  fflush(stdin);</p><p><b>  getch();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }<

135、;/b></p><p><b>  }</b></p><p>  #include "stdio.h"</p><p>  ReadRecord()</p><p><b>  {</b></p><p>  FILE * fp;</p&g

136、t;<p>  player TempS;</p><p>  player Min;</p><p>  Min.score=11;</p><p>  /* 打開記錄保持文,如果不能以讀方式打,說(shuō)明記錄不存在,則他建記錄,寫入文件 */</p><p>  if((fp=fopen("record",&q

137、uot;rb"))==NULL)</p><p><b>  {</b></p><p>  SetRecord();/* 調(diào)用初始化記錄函數(shù) */</p><p>  fp=fopen("record","rb");</p><p><b>  }</b

138、></p><p>  /* 循環(huán)讀取文件,取得最少猜中次數(shù)的記錄 */</p><p>  while(fread(&TempS,sizeof(player),1,fp)!=(int)NULL)</p><p><b>  {</b></p><p>  if(TempS.score<Min.sco

139、re) /* Min.score初始值為11 */</p><p><b>  {</b></p><p>  strcpy(Min.name,TempS.name);</p><p>  Min.score=TempS.score;</p><p><b>  }</b></p>&

140、lt;p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("the recore keeper is %s,guessed out in %d times\n",Min.name,Min.score);</p><p><b>  }</b>&

141、lt;/p><p>  SetRecord()</p><p><b>  {</b></p><p>  player Pro;</p><p><b>  FILE *fp;</b></p><p>  /* 給初始記錄賦值 */</p><p>  

142、strcpy(Pro.name,"player");</p><p>  Pro.score=10;</p><p>  /* 初始化文件,即創(chuàng)建文件,寫入第一條記錄 */</p><p>  if((fp=fopen("record","wb"))==NULL)</p><p>&

143、lt;b>  {</b></p><p>  printf("file open error\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(fwrite(&Pro,size

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論