版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 設(shè)計題目:猜數(shù)字游戲</p><p><b> 目 錄</b></p><p><b> 目錄</b></p><p><b> 目 錄- 2 -</b></p><p> 1 程序分析與設(shè)計- 2 -</p><p>
2、 1.1 功能分析與任務(wù)分配- 2 -</p><p> 功能分析- 2 -</p><p> 1.2流程圖- 3 -</p><p> 1.3 數(shù)據(jù)結(jié)構(gòu)- 4 -</p><p> 2 詳細設(shè)計- 4 -</p><p> 3 參考文獻- 5 -</p><p> 4
3、 附錄- 5 -</p><p><b> 5總結(jié)- 6 -</b></p><p><b> 1 程序分析與設(shè)計</b></p><p> 1.1 功能分析與任務(wù)分配</p><p><b> 功能分析</b></p><p> 此游戲程
4、序通過不斷輸入以及逐漸數(shù)位對應(yīng)的方法,一步步的縮小猜測范圍,最終猜出機內(nèi)已存儲數(shù)字,達到健腦益智的效果。</p><p> 此數(shù)字游戲沒有設(shè)置猜測次數(shù)的上限.</p><p><b> 簡單策略</b></p><p> 這種策略非常直接——每次都猜可能答案中的第一個。例如,首先猜測1234,如果得到的反饋是 2A2B,那可能的答案包括1
5、256,1257,5236,等等。根據(jù)簡單策略,下一次就猜1256,因為1256是所有可能答案中最小的數(shù)字。 </p><p> 簡單策略的優(yōu)點是速度非??欤秉c是所需猜測次數(shù)很多。</p><p><b> 啟發(fā)式策略 </b></p><p> 這類策略是猜數(shù)字游戲最常用的解法。其算法步驟如下: </p><p&g
6、t; a. 首先猜 1234,得到第一個反饋(xAyB)。 </p><p> b. 從所有數(shù)字中,篩選出滿足已知反饋的所有可能數(shù)字,稱之為“可能集”。 </p><p> c. 對于所有數(shù)字(而不僅限于篩選出來的可能集),逐一評估每個數(shù)字的“好壞”,并給其打分。選取得分最高的那個數(shù)字猜。如果有多個數(shù)字的評分一樣高,則優(yōu)先選取可能集中的數(shù)字。 </p><p>
7、; d. 重復(fù)步驟 b-c,直到猜出 4A4B為止。</p><p><b> ?。?)任務(wù)分配</b></p><p> 李曉飛和譚程方同學(xué):實現(xiàn)猜測數(shù)據(jù)后的*A*B編寫功能,即規(guī)則c.</p><p> 王璐和王爽同學(xué) :實現(xiàn)統(tǒng)計每次猜對數(shù)字個數(shù)的功能,即規(guī)則d.</p><p> 王鵬宇同學(xué)
8、 :實現(xiàn)統(tǒng)計每次猜對的數(shù)字并且位置也對的數(shù)字個數(shù),即規(guī)則e.</p><p> (備注:在實際操作中由于每位同學(xué)所用變量習(xí)慣以及掌握程度不同,所以此程序任務(wù)分配可能會部分的與上不符,最后還要對任課老師魏玉芬以及指導(dǎo)老師丁艷清表示衷心的感謝,感謝兩位老師給予我們的幫助!)</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 數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> k 猜測的次數(shù)</b></p><p> b 一次猜測后用來判斷是否繼續(xù)進行新的猜測</p><p><b> n1 猜對的數(shù)字數(shù)</b></
11、p><p> n2 猜對并且位置也對的數(shù)字數(shù)</p><p> i、j 用來表示兩個數(shù)組的對應(yīng)數(shù)位數(shù)</p><p> x[4]={2,5,6,9} 定義將要被猜測的數(shù)字為2569</p><p> y[4] 從鍵盤輸入的四位數(shù)</p><p><b> 2 詳細設(shè)計</b></p&g
12、t;<p> 通過逐步減少范圍來猜測正確結(jié)果</p><p><b> 3 參考文獻</b></p><p> [1]譚浩強著《C語言程序設(shè)計》北京:清華大學(xué)出版社 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]; //定義將要被猜測的數(shù)字為2569//</p>
14、<p> int i=0,j=0;</p><p> for(k=1;;k++) //只要不放棄,就可以使猜測無數(shù)次的進行下去//</p><p><b> {</b></p><p> n1=0;n2=0; //n1用來統(tǒng)計猜對的數(shù)字數(shù),n2用來統(tǒng)計猜對并且位置也對的數(shù)字數(shù)//</p><p>
15、printf("請輸入四個不同的數(shù)字:");</p><p> for(j=0;j<4;j++)</p><p> scanf("%d",&y[j]);//用來輸入四個不同的數(shù)字//</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); //給出本輪猜測的結(jié)果//</p><p> if(n2==4) break;</p><p> pr
18、intf("如果想放棄,請輸入0;如果不想放棄,請輸入任意非零數(shù)字\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總結(jié)</b></p><p> C語言是我們在大學(xué)學(xué)習(xí)中接觸的第一種計算機語言,將其作為我們學(xué)生學(xué)習(xí)程序設(shè)計技術(shù)的入門課程,我想這與C語言的特點是分不開的。C語言不但可以編寫系統(tǒng)軟件,而且可以根據(jù)用戶的需要編寫出滿足用戶要求的應(yīng)用軟件,尤其是C語言具有很好的對計算機的硬件編程能力。同時,C語言具有邏輯性強、處理問題周密
21、、嚴謹?shù)奶攸c,是集知識和技能于一體,實踐性很強的課程。我們通過學(xué)習(xí)C語言可掌握程序設(shè)計的一些基本方法和技巧。然而C語言的數(shù)據(jù)類型較多、表達式豐富、語法結(jié)構(gòu)較復(fù)雜,使它成為一門教師難教、學(xué)生難學(xué)的課程。就拿這次來說吧,程序是很簡單的,但是遇到的困難也不少。下面我見對我們組編的這套程序做一下概述:</p><p> 我們選的是編寫一個猜字游戲,要求才一個四位數(shù)字,每次猜完,要有一個提示“*A*B”其中A前的*代表本
22、次猜對了的數(shù)字,B前的*代表本次猜對了的數(shù)字并且位置正確的個數(shù)。</p><p> 由于程序較小,沒有太過困難的地方,所以我們最主要用到的是for循環(huán)語句,首先,假設(shè)這四位數(shù)是2569,我們定義n1,n2,讓n1代表猜對的數(shù)字個數(shù),讓n2代表猜對的數(shù)字并且位置準確的個數(shù),然后再定義一個k是猜測的次數(shù)(這里為了很好的顯示猜測的過程),接下來開始執(zhí)行這個語句,也就是我們利用的for循環(huán)語句,for(j=0;j<
23、;4;j++)我們先把猜的數(shù)用這個循環(huán)體執(zhí)行,進而輸入四個不同的數(shù),for(j=0;j<4;j++) if(x[i]==y[j]) n1++;再用一次循環(huán)體統(tǒng)計出n1,這樣循環(huán)下去直至正確數(shù)字被猜出。同樣n2也是如此。在編譯過程中發(fā)現(xiàn)利用for循環(huán)語句只用一條語句可以了,相對于do…while更簡單一些。</p><p> 程序大體編完了,但是分配是因為大家思想不同,對于不同的地方用的語句不一致,所以在
24、把所有程序整合到一起時,不能正常的運行,做了多處修改,最后才能運行的,其次再將語句轉(zhuǎn)為流程圖時遇到了不小的麻煩,對一些較為復(fù)雜的程序,轉(zhuǎn)為ns圖比較麻煩,有次看到我們的弊端,對于這種轉(zhuǎn)化邏輯能力太差,經(jīng)過反反復(fù)復(fù)的修改總算完成。</p><p> 在這次實習(xí)中我們的程序還有一個遺憾,算是缺陷吧!就是猜數(shù)字的數(shù)字是事先用int定義好的,我們本意是在每次程序運行開始時,產(chǎn)生一個隨機四位數(shù),這樣需引用#include
25、 <time.h>#include <stdlib.h>可惜不大會用,最后只能放棄。這看出我們才學(xué)了些皮毛,對于一些高等的函數(shù)體不會引用,</p><p> 我覺得還是多看些書,多實踐,養(yǎng)成良好的編程習(xí)慣,在實踐的同時多思考問題,多看別人優(yōu)秀的解題思路與方法,多看別人優(yōu)秀的代碼,嘗試自己去實現(xiàn)或者說模仿著去實現(xiàn),讓別人對你的代碼多提意見,探究別人的思維過程,增強自己的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言程序課程設(shè)計-猜數(shù)字游戲
- c語言課程設(shè)計--猜數(shù)字游戲
- c語言課程設(shè)計--猜數(shù)字游戲
- c語言課程設(shè)計---猜數(shù)字游戲報告
- c語言課程設(shè)計---猜數(shù)字游戲姚成
- c語言課程設(shè)計--猜數(shù)游戲
- c語言課程設(shè)計----猜字游戲
- c語言程序設(shè)計課程設(shè)計
- c課程設(shè)計報告-- c語言程序設(shè)計
- 《c語言程序設(shè)計》課程設(shè)計報告
- c語言程序設(shè)計課程設(shè)計報告
- 猜數(shù)字游戲課程設(shè)計報告
- 課程設(shè)計報告--猜數(shù)字游戲
- java課程設(shè)計——猜數(shù)字游戲
- 設(shè)計一個gui猜數(shù)字游戲程序課程設(shè)計
- 《c++語言程序設(shè)計》課程設(shè)計報告
- 《c語言程序設(shè)計》課程設(shè)計推箱子
- 《程序設(shè)計語言(c++)》課程設(shè)計
- c語言程序設(shè)計課程設(shè)計(論文)-迷宮
- 《c語言程序設(shè)計》課程設(shè)計指導(dǎo)手冊()
評論
0/150
提交評論