版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《面向?qū)ο蟪绦蛟O(shè)計》</p><p><b> 課程設(shè)計</b></p><p> 題 目: 數(shù)字教學(xué)游戲 </p><p> 院 系: </p><p> 專 業(yè):
2、 </p><p> 姓名學(xué)號: </p><p> 指導(dǎo)老師: 寧黎華 </p><p> 日 期: 年 月 日</p><p><b> 摘要</b
3、></p><p> 本次課設(shè)的目的是編寫一個教學(xué)游戲,教授學(xué)生學(xué)習(xí)算術(shù)計算。程序?qū)臃ê蜏p法進(jìn)行測試。程序共有4個難度級別,第1級測試兩個小于10并且和也小于10的數(shù)字加法;第2級進(jìn)行任何兩個1位數(shù)字的加法;第3級是差為非負(fù)的兩個1位數(shù)的減法;第4級是執(zhí)行一個兩位數(shù)的加法。程序?qū)㈦S機產(chǎn)生問題并讀取游戲參與者輸入的答案。對于每一個問題,游戲參與者都有兩次回答問題的機會。</p><p&
4、gt; 關(guān)鍵字:數(shù)字游戲,加法,減法</p><p><b> 目錄</b></p><p> 一、課程設(shè)計題目及分析1</p><p> 二、CRC卡片和UML類圖1</p><p> 三、設(shè)計步驟及關(guān)鍵代碼說明3</p><p><b> 四、軟件測試4&
5、lt;/b></p><p> 五、總結(jié)與心得體會5</p><p> 六、附錄(新增以及修改的代碼)6</p><p><b> 課程設(shè)計題目及分析</b></p><p> 編寫一個教學(xué)游戲,教授學(xué)生學(xué)習(xí)算術(shù)計算。程序?qū)臃ê蜏p法進(jìn)行測試。程序共有四個難度級別,第1級測試兩個小于10并且和也小
6、于10的數(shù)字加法;第2級進(jìn)行任何兩個1位數(shù)字的加法;第3級是差為非負(fù)的兩個1位數(shù)的減法;第4級是執(zhí)行一個兩位數(shù)的加法。程序?qū)㈦S機產(chǎn)生問題并讀取游戲參與者輸入的答案。對于每一個問題,游戲參與者都有兩次回答問題的機會。在得到5分后游戲進(jìn)入下一級。要實現(xiàn)4個等級的功能特征,需要用4個if語句判斷選擇的關(guān)數(shù),然后通過rand()函數(shù)限定生成兩個隨機數(shù)并完成相關(guān)運算。通過玩家類Player儲存玩家的分?jǐn)?shù)以及關(guān)數(shù)信息,Game類進(jìn)行游戲的運轉(zhuǎn)。&l
7、t;/p><p><b> ?。?)CRC卡片</b></p><p><b> ?。?)UML類圖</b></p><p> 設(shè)計步驟及關(guān)鍵代碼說明</p><p> 1.由于源代碼中已給出前三個等級的條件判斷,增加第四等級需要在play_round函數(shù)中多加一個如下第四等級的條件判斷以及修改下相
8、應(yīng)的界面提示和選關(guān)</p><p> else if(player.get_level()==4)</p><p><b> {</b></p><p> i1=rand_int(10,99);</p><p> i2=rand_int(10,99);</p><p> answer=i
9、1+i2;</p><p><b> }</b></p><p> 2.因為只有第三等級是減法,一、二、四等級都是求和,所以把通過選關(guān)讀取讀者輸入結(jié)果的條件語句修改如下,這樣就可實現(xiàn)第四難度等級的增加。</p><p> if (player.get_level()!=3)</p><p> guess = ge
10、t_guess(i1, i2, answer, "sum");</p><p><b> else</b></p><p> guess = get_guess(i1, i2, answer, "difference");</p><p> 3.實現(xiàn)查詢游戲玩家等級的功能,只需加一句如下的輸出玩家等
11、級語句即可,由于每得五分后游戲等級會增加,并且分?jǐn)?shù)也在不停變化,所以把輸出玩家等級的語句加在輸出分?jǐn)?shù)的后面,這樣玩家每次計算后都能看到自己的分?jǐn)?shù)和等級。</p><p> cout<<"Your level is "<<player.get_level()<<endl;</p><p><b> 四、軟件測試</b
12、></p><p> 1.輸入姓名,選擇相應(yīng)等級,進(jìn)行運算,運行的界面如下</p><p> 2.當(dāng)所得分?jǐn)?shù)為5時,自動跳入下一等級,運行的結(jié)果如下</p><p> 當(dāng)計算錯誤時的運行結(jié)果如下</p><p> 4.第4等級的運行結(jié)果如下</p><p><b> 五、總結(jié)與心得體會<
13、/b></p><p> 經(jīng)過一個學(xué)期的《C++面向?qū)ο蟪绦蛟O(shè)計》學(xué)習(xí),讓我對C++的理論知識有了一定的認(rèn)知,了解了C++程序設(shè)計的思想,這些知識及相關(guān)的C++實驗也給我們下一步的學(xué)習(xí)打下堅實的基礎(chǔ)。這次課程設(shè)計是我一個人完成的,雖然課程設(shè)計題目老師給出了源代碼參考,但還是花了幾天才完成。通過需求分析后,要經(jīng)過CRC卡片理清設(shè)計思路,然后再通過UML圖確定需要什么樣的類以及對應(yīng)的函數(shù)實現(xiàn)想要達(dá)到的功能。
14、并且這次課設(shè)讓我充分認(rèn)識到了自己的不足,認(rèn)識到了動手能力的重要性。我會在以后的學(xué)習(xí)中更加努力鍛煉自己,提高自己。最后感謝老師這個學(xué)期的辛勤教學(xué)!</p><p> 六、附錄(新增以及修改的代碼)</p><p><b> 1.</b></p><p> void Player::increment_score() // 答對加一分,每得
15、于5分時自動進(jìn)入下一關(guān) </p><p><b> {</b></p><p><b> score++;</b></p><p> if (score % 5 == 0 && level < 3) //自動進(jìn)入下一關(guān)的條件改為小于4</p><p><b>
16、 level++;</b></p><p><b> }</b></p><p><b> 2.</b></p><p> void Game::read_player_information()</p><p><b> {</b></p>
17、<p> cout << "What is your name? ";</p><p> string name;</p><p> cin >> name;</p><p> int initial_level = 0;</p><p><b> do</b&g
18、t;</p><p><b> {</b></p><p> cout << "At what level do you want to start? (1-3) "; //修改界面的提示為1-4等級 </p><p> cin >> initial_level;</p><
19、p> } while (initial_level < 1 || initial_level > 3);//修改循環(huán)條件為1-4等級 </p><p> player = Player(name, initial_level);</p><p><b> }</b></p><p><b> 3.</b
20、></p><p> void Game::play_round()</p><p><b> {</b></p><p> int i1 = 0;</p><p> int i2 = 0;</p><p> int answer = 0;</p><p>
21、 if (player.get_level() == 1)</p><p><b> do</b></p><p><b> {</b></p><p> i1 = rand_int(1,9);</p><p> i2 = rand_int(1,9);</p><p&g
22、t; answer = i1 + i2;</p><p> } while (answer > 9);</p><p> else if (player.get_level() == 2)</p><p><b> {</b></p><p> i1 = rand_int(1,9);</p>
23、<p> i2 = rand_int(1,9);</p><p> answer = i1 + i2;</p><p><b> }</b></p><p> else if (player.get_level() == 3)</p><p><b> do</b></p
24、><p><b> {</b></p><p> i1 = rand_int(1,9);</p><p> i2 = rand_int(1,9);</p><p> answer = i1 - i2;</p><p> } while (answer < 0);</p>
25、<p> else if(player.get_level()==4) //增加等級4的判斷,讓兩個兩位隨機數(shù)相加</p><p><b> {</b></p><p> i1=rand_int(10,99);</p><p> i2=rand_int(10,99);</p><p> answer=
26、i1+i2;</p><p><b> }</b></p><p> int guess;</p><p> if (player.get_level()!=3) //判斷改為不等于3等級時為求和,否則求差</p><p> guess = get_guess(i1, i2, answer, "sum
27、");</p><p><b> else</b></p><p> guess = get_guess(i1, i2, answer, "difference");</p><p> if (answer == guess)</p><p><b> {</b>
28、;</p><p> player.increment_score();</p><p> cout << "Congratulations, " << player.get_name() << "! That is correct." << "\n";</p>&
29、lt;p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout << "Sorry, " << player.get_name() << ".
30、The correct answer is "</p><p> << answer << ".\n"; </p><p><b> }</b></p><p> cout << "Your score is " << play
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計---猜數(shù)字游戲報告
- 拼數(shù)字游戲c#課程設(shè)計
- c語言課程設(shè)計--猜數(shù)字游戲
- c語言課程設(shè)計--猜數(shù)字游戲
- c++課程設(shè)計-教學(xué)游戲
- 猜數(shù)字游戲課程設(shè)計報告
- 課程設(shè)計報告--猜數(shù)字游戲
- c課程設(shè)計報告-打字游戲
- c語言程序課程設(shè)計-猜數(shù)字游戲
- c語言課程設(shè)計報告---游戲設(shè)計
- c語言課程設(shè)計報告-游戲2048
- c程序課程設(shè)計報告(掃雷游戲)
- c++課程設(shè)計報告--坦克游戲
- c語言課程設(shè)計---猜數(shù)字游戲姚成
- 《c語言程序設(shè)計》課程設(shè)計---猜數(shù)字游戲
- android課程設(shè)計報告--猜數(shù)字小游戲
- c++課程設(shè)計報告--猜數(shù)游戲
- 猜單詞游戲c++課程設(shè)計報告
- c程序課程設(shè)計報告(24點游戲)
- android課程設(shè)計報告--猜數(shù)字小游戲.doc
評論
0/150
提交評論