《c語言程序設計》課程設計---猜數字游戲_第1頁
已閱讀1頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  設計題目:猜數字游戲</p><p><b>  目 錄</b></p><p><b>  目錄</b></p><p><b>  目 錄- 2 -</b></p><p>  1 程序分析與設計- 2 -</p><p>

2、  1.1 功能分析與任務分配- 2 -</p><p>  功能分析- 2 -</p><p>  1.2流程圖- 3 -</p><p>  1.3 數據結構- 4 -</p><p>  2 詳細設計- 4 -</p><p>  3 參考文獻- 5 -</p><p>  4

3、 附錄- 5 -</p><p><b>  5總結- 6 -</b></p><p><b>  1 程序分析與設計</b></p><p>  1.1 功能分析與任務分配</p><p><b>  功能分析</b></p><p>  此游戲程

4、序通過不斷輸入以及逐漸數位對應的方法,一步步的縮小猜測范圍,最終猜出機內已存儲數字,達到健腦益智的效果。</p><p>  此數字游戲沒有設置猜測次數的上限.</p><p><b>  簡單策略</b></p><p>  這種策略非常直接——每次都猜可能答案中的第一個。例如,首先猜測1234,如果得到的反饋是 2A2B,那可能的答案包括1

5、256,1257,5236,等等。根據簡單策略,下一次就猜1256,因為1256是所有可能答案中最小的數字。 </p><p>  簡單策略的優(yōu)點是速度非??欤秉c是所需猜測次數很多。</p><p><b>  啟發(fā)式策略 </b></p><p>  這類策略是猜數字游戲最常用的解法。其算法步驟如下: </p><p&g

6、t;  a. 首先猜 1234,得到第一個反饋(xAyB)。 </p><p>  b. 從所有數字中,篩選出滿足已知反饋的所有可能數字,稱之為“可能集”。 </p><p>  c. 對于所有數字(而不僅限于篩選出來的可能集),逐一評估每個數字的“好壞”,并給其打分。選取得分最高的那個數字猜。如果有多個數字的評分一樣高,則優(yōu)先選取可能集中的數字。 </p><p>

7、;  d. 重復步驟 b-c,直到猜出 4A4B為止。</p><p><b> ?。?)任務分配</b></p><p>  李曉飛和譚程方同學:實現猜測數據后的*A*B編寫功能,即規(guī)則c.</p><p>  王璐和王爽同學 :實現統(tǒng)計每次猜對數字個數的功能,即規(guī)則d.</p><p>  王鵬宇同學

8、 :實現統(tǒng)計每次猜對的數字并且位置也對的數字個數,即規(guī)則e.</p><p>  (備注:在實際操作中由于每位同學所用變量習慣以及掌握程度不同,所以此程序任務分配可能會部分的與上不符,最后還要對任課老師魏玉芬以及指導老師丁艷清表示衷心的感謝,感謝兩位老師給予我們的幫助?。?lt;/p><p><b>  1.2流程圖</b></p><p>&

9、lt;b>  Y</b></p><p><b>  N</b></p><p><b>  N</b></p><p><b>  NY</b></p><p><b>  Y</b></p><p><

10、;b>  NY</b></p><p><b>  1.3 數據結構</b></p><p><b>  k 猜測的次數</b></p><p>  b 一次猜測后用來判斷是否繼續(xù)進行新的猜測</p><p><b>  n1 猜對的數字數</b></

11、p><p>  n2 猜對并且位置也對的數字數</p><p>  i、j 用來表示兩個數組的對應數位數</p><p>  x[4]={2,5,6,9} 定義將要被猜測的數字為2569</p><p>  y[4] 從鍵盤輸入的四位數</p><p><b>  2 詳細設計</b></p&g

12、t;<p>  通過逐步減少范圍來猜測正確結果</p><p><b>  3 參考文獻</b></p><p>  [1]譚浩強著《C語言程序設計》北京:清華大學出版社 2005</p><p><b>  [2]百度知道</b></p><p><b>  4 附錄<

13、;/b></p><p>  #include <stdio.h></p><p>  void main()</p><p><b>  {</b></p><p>  int k,n1,n2,b,x[4]={2,5,6,9},y[4]; //定義將要被猜測的數字為2569//</p>

14、<p>  int i=0,j=0;</p><p>  for(k=1;;k++) //只要不放棄,就可以使猜測無數次的進行下去//</p><p><b>  {</b></p><p>  n1=0;n2=0; //n1用來統(tǒng)計猜對的數字數,n2用來統(tǒng)計猜對并且位置也對的數字數//</p><p>  

15、printf("請輸入四個不同的數字:");</p><p>  for(j=0;j<4;j++)</p><p>  scanf("%d",&y[j]);//用來輸入四個不同的數字//</p><p>  for(i=0;i<4;i++)</p><p><b>  {&

16、lt;/b></p><p>  for(j=0;j<4;j++)</p><p>  if(x[i]==y[j]) n1++; //統(tǒng)計n1//</p><p><b>  }</b></p><p>  for(i=0;i<4;i++)</p><p>  if(y[i]==

17、x[i]) n2++; //統(tǒng)計n2//</p><p>  printf("%dA%dB\n",n1,n2);</p><p>  printf("n1=%d,n2=%d\n",n1,n2); //給出本輪猜測的結果//</p><p>  if(n2==4) break;</p><p>  pr

18、intf("如果想放棄,請輸入0;如果不想放棄,請輸入任意非零數字\n");</p><p>  scanf("%d",&b);</p><p><b>  if(b==0)</b></p><p>  printf("正確答案是:2569");</p><

19、p>  else printf("請繼續(xù)猜測\n");</p><p><b>  }</b></p><p><b>  if(n2==4)</b></p><p>  printf("恭喜你答對了!");</p><p><b>  }&l

20、t;/b></p><p><b>  5總結</b></p><p>  C語言是我們在大學學習中接觸的第一種計算機語言,將其作為我們學生學習程序設計技術的入門課程,我想這與C語言的特點是分不開的。C語言不但可以編寫系統(tǒng)軟件,而且可以根據用戶的需要編寫出滿足用戶要求的應用軟件,尤其是C語言具有很好的對計算機的硬件編程能力。同時,C語言具有邏輯性強、處理問題周密

21、、嚴謹的特點,是集知識和技能于一體,實踐性很強的課程。我們通過學習C語言可掌握程序設計的一些基本方法和技巧。然而C語言的數據類型較多、表達式豐富、語法結構較復雜,使它成為一門教師難教、學生難學的課程。就拿這次來說吧,程序是很簡單的,但是遇到的困難也不少。下面我見對我們組編的這套程序做一下概述:</p><p>  我們選的是編寫一個猜字游戲,要求才一個四位數字,每次猜完,要有一個提示“*A*B”其中A前的*代表本

22、次猜對了的數字,B前的*代表本次猜對了的數字并且位置正確的個數。</p><p>  由于程序較小,沒有太過困難的地方,所以我們最主要用到的是for循環(huán)語句,首先,假設這四位數是2569,我們定義n1,n2,讓n1代表猜對的數字個數,讓n2代表猜對的數字并且位置準確的個數,然后再定義一個k是猜測的次數(這里為了很好的顯示猜測的過程),接下來開始執(zhí)行這個語句,也就是我們利用的for循環(huán)語句,for(j=0;j<

23、;4;j++)我們先把猜的數用這個循環(huán)體執(zhí)行,進而輸入四個不同的數,for(j=0;j<4;j++) if(x[i]==y[j]) n1++;再用一次循環(huán)體統(tǒng)計出n1,這樣循環(huán)下去直至正確數字被猜出。同樣n2也是如此。在編譯過程中發(fā)現利用for循環(huán)語句只用一條語句可以了,相對于do…while更簡單一些。</p><p>  程序大體編完了,但是分配是因為大家思想不同,對于不同的地方用的語句不一致,所以在

24、把所有程序整合到一起時,不能正常的運行,做了多處修改,最后才能運行的,其次再將語句轉為流程圖時遇到了不小的麻煩,對一些較為復雜的程序,轉為ns圖比較麻煩,有次看到我們的弊端,對于這種轉化邏輯能力太差,經過反反復復的修改總算完成。</p><p>  在這次實習中我們的程序還有一個遺憾,算是缺陷吧!就是猜數字的數字是事先用int定義好的,我們本意是在每次程序運行開始時,產生一個隨機四位數,這樣需引用#include

25、 <time.h>#include <stdlib.h>可惜不大會用,最后只能放棄。這看出我們才學了些皮毛,對于一些高等的函數體不會引用,</p><p>  我覺得還是多看些書,多實踐,養(yǎng)成良好的編程習慣,在實踐的同時多思考問題,多看別人優(yōu)秀的解題思路與方法,多看別人優(yōu)秀的代碼,嘗試自己去實現或者說模仿著去實現,讓別人對你的代碼多提意見,探究別人的思維過程,增強自己的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論