猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告

猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告

ID:45083380

大?。?10.53 KB

頁數(shù):14頁

時(shí)間:2019-11-09

猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告_第1頁
猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告_第2頁
猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告_第3頁
猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告_第4頁
猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告_第5頁
資源描述:

《猜數(shù)字游戲—C++課程設(shè)計(jì) 報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、河南工業(yè)大學(xué)信息學(xué)院《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告猜數(shù)字游戲姓名王永森專業(yè)班級、學(xué)號軟件130420131692****同組人姓名張**專業(yè)班級、學(xué)號20131692****完成時(shí)間:2015-1-16指導(dǎo)老師:王獻(xiàn)榮目錄一、需求分析2二、程序的主要功能2三、程序運(yùn)行平臺(tái)2四、模塊分析3五、總框架圖3六、類UML圖4七、比較有特色的函數(shù)(分析詳見模塊分析)4八、運(yùn)行結(jié)果圖10九、存在的不足與對策13十、程序源代碼1313一、需求分析猜數(shù)字游戲,就是先由電腦隨機(jī)產(chǎn)生四個(gè)數(shù)字,然后讓用戶輸入四

2、個(gè)數(shù)字,與之比對,并給出比對結(jié)果,反饋給用戶正確的有幾個(gè)和不正確的但是數(shù)字正確的有幾個(gè),再由用戶經(jīng)過這些信息可以選擇重新輸入或者重新開始,同時(shí)對用戶每次輸入的數(shù)字比對結(jié)果進(jìn)行給分,還有個(gè)功能是用戶可以獲取幫助,查看上次輸入的正確是哪一位,也可以輸入權(quán)限密碼進(jìn)行查看謎底。從上面這些分析來看,這個(gè)程序需要用到的有隨機(jī)數(shù)的產(chǎn)生,數(shù)字去重功能,比對功能,計(jì)分功能,讀寫文件功能等。還有一些其他的如輸入優(yōu)化,防止用戶錯(cuò)誤輸入,密碼不回顯等。分析之后,我負(fù)責(zé)代碼的編寫,同組張松晚同學(xué)負(fù)責(zé)界面設(shè)計(jì),程序測試,報(bào)告

3、撰寫等。二、程序的主要功能1、新游戲開始新的游戲2、判斷功能對用戶輸入的數(shù)字進(jìn)行判斷3、隨機(jī)數(shù)功能產(chǎn)生不重復(fù)的隨機(jī)數(shù)4、去重功能去掉用戶輸入及電腦產(chǎn)生的隨機(jī)數(shù)中重復(fù)的數(shù)字,重新輸入或產(chǎn)生5、密碼不回顯功能用戶輸入密碼時(shí)在屏幕上顯示*號6、文件讀寫功能運(yùn)行游戲時(shí)對上次分?jǐn)?shù)讀取,對每次分?jǐn)?shù)進(jìn)行存儲(chǔ)7、容錯(cuò)提醒功能當(dāng)用戶輸入錯(cuò)誤時(shí)進(jìn)行提醒8、密碼校驗(yàn)功能對用戶輸入的密碼進(jìn)行校驗(yàn)9、查詢得分功能查詢用戶所得分?jǐn)?shù)三、程序運(yùn)行平臺(tái)Dev-C++13四、模塊分析1、產(chǎn)生隨機(jī)數(shù)隨機(jī)數(shù)的產(chǎn)生非常容易,關(guān)鍵是要給產(chǎn)生

4、的隨機(jī)數(shù)控制在0~9之間,然后不能重復(fù),這個(gè)我就想了大量的方法進(jìn)行去重,因?yàn)榫退膫€(gè)數(shù)字,我就把這四個(gè)數(shù)存放在一個(gè)數(shù)組里面,先給他們賦值為-1,然后再循環(huán)著產(chǎn)生隨機(jī)數(shù),分別與這個(gè)數(shù)組里面的數(shù)字進(jìn)行比較,若存在相等的就重新產(chǎn)生,不存在就將這個(gè)隨機(jī)數(shù)賦值到數(shù)組中去,這樣大的循環(huán)四次,中間可能有很多循環(huán),最后就產(chǎn)生了不重復(fù)的四個(gè)隨機(jī)數(shù)。2、用戶輸入這個(gè)模塊和產(chǎn)生隨機(jī)數(shù)的類此,這不過四個(gè)數(shù)字直接由用戶輸入,要求也是不能重復(fù),所以方法和產(chǎn)生隨機(jī)數(shù)的是一樣的??梢詤⒖忌厦骐S機(jī)數(shù)的方法。輸入之后存在另外一個(gè)數(shù)組中

5、去就行了。3、比對結(jié)果這個(gè)比對的模塊,先一看是比較簡單,但是仔細(xì)一看還不是那么簡單,比對是好比,就是比對之后需要記錄用戶輸入正確的有幾個(gè),然后還要記錄不正確但是數(shù)字正確的個(gè)數(shù),所以需要另外想辦法,想了很多之后決定用矩陣進(jìn)行比較,用二位數(shù)組存放比對后的結(jié)果,相等的就賦值為1,不相等就賦值為0。然后需要查看結(jié)果時(shí)就訪問二維數(shù)組,結(jié)果就出來了。4、密碼不回顯這個(gè)要用到getch,它的功能是直接從鍵盤獲取字符但不顯示在屏幕上,但是有個(gè)缺點(diǎn)是無法判斷輸入是否結(jié)束,所以又是一個(gè)難題,想來想去,最后想到用回車鍵

6、判斷是否輸入結(jié)束,但是直接用反斜扛零后卻不行,因?yàn)槟鞘莻€(gè)回車鍵的輸出符,但是不能放棄,最后在網(wǎng)上百度了下,找到了辦法,就是讓最后輸入的回車符與回車符的ASCLL碼進(jìn)行比較,就是與13進(jìn)行比較,結(jié)果完美解決。哈哈。發(fā)現(xiàn)字符的處理是最難的。5、輸入限制輸入限制,可以限制用戶輸入單個(gè)自然數(shù),或者多位自然數(shù),這個(gè)主要思想是全字符輸入,然后分別判斷每個(gè)字符是否符合要求,最后將符合要求的字符串轉(zhuǎn)化為整型即可。詳情可以見下面代碼示例。其實(shí)最關(guān)鍵的是要掌握好字符的運(yùn)用。五、總框架圖圖1總框架圖13六、類UML圖表

7、1UMLGuessNumber-a[4]:int-b[4]:int-c[4][4]:int-x:int-y:int-score:int-mima[10]:char+GuessNumber()+welcome()-makenumber()-inputnumber()-displaynumber()-getx()-gety()-panduan()-menu1()-menu2()-menu3()-deal1()-deal2()-deal3()-readscore()-writescore()-help(

8、)-displayscore()-yanmi()-natural1():int-natural2():int七、比較有特色的函數(shù)(分析詳見模塊分析)//makenumber()開始新游戲產(chǎn)生隨機(jī)數(shù)voidGuessNumber::makenumber(){x=0;y=0;score=0;intm;//暫時(shí)存放隨機(jī)數(shù)13for(intk=0;k<4;k++){a[k]=-1;}srand(time(0));for(intn=0;n<4;n++){do{m=rand()%10;}whi

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。