猜數(shù)字游戲—C++課程設(shè)計 報告

猜數(shù)字游戲—C++課程設(shè)計 報告

ID:45083380

大小:210.53 KB

頁數(shù):14頁

時間:2019-11-09

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

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

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

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

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

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

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

6、判斷是否輸入結(jié)束,但是直接用反斜扛零后卻不行,因為那是個回車鍵的輸出符,但是不能放棄,最后在網(wǎng)上百度了下,找到了辦法,就是讓最后輸入的回車符與回車符的ASCLL碼進(jìn)行比較,就是與13進(jìn)行比較,結(jié)果完美解決。哈哈。發(fā)現(xiàn)字符的處理是最難的。5、輸入限制輸入限制,可以限制用戶輸入單個自然數(shù),或者多位自然數(shù),這個主要思想是全字符輸入,然后分別判斷每個字符是否符合要求,最后將符合要求的字符串轉(zhuǎn)化為整型即可。詳情可以見下面代碼示例。其實最關(guā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)生隨機數(shù)voidGuessNumber::makenumber(){x=0;y=0;score=0;intm;//暫時存放隨機數(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動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。