版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《面向對象程序設計》</p><p><b> 課程設計</b></p><p> 題 目: 數(shù)字教學游戲 </p><p> 院 系: </p><p> 專 業(yè):
2、 </p><p> 姓名學號: </p><p> 指導老師: 寧黎華 </p><p> 日 期: 年 月 日</p><p><b> 摘要</b
3、></p><p> 本次課設的目的是編寫一個教學游戲,教授學生學習算術計算。程序對加法和減法進行測試。程序共有4個難度級別,第1級測試兩個小于10并且和也小于10的數(shù)字加法;第2級進行任何兩個1位數(shù)字的加法;第3級是差為非負的兩個1位數(shù)的減法;第4級是執(zhí)行一個兩位數(shù)的加法。程序將隨機產(chǎn)生問題并讀取游戲參與者輸入的答案。對于每一個問題,游戲參與者都有兩次回答問題的機會。</p><p&
4、gt; 關鍵字:數(shù)字游戲,加法,減法</p><p><b> 目錄</b></p><p> 一、課程設計題目及分析1</p><p> 二、CRC卡片和UML類圖1</p><p> 三、設計步驟及關鍵代碼說明3</p><p><b> 四、軟件測試4&
5、lt;/b></p><p> 五、總結與心得體會5</p><p> 六、附錄(新增以及修改的代碼)6</p><p><b> 課程設計題目及分析</b></p><p> 編寫一個教學游戲,教授學生學習算術計算。程序將對加法和減法進行測試。程序共有四個難度級別,第1級測試兩個小于10并且和也小
6、于10的數(shù)字加法;第2級進行任何兩個1位數(shù)字的加法;第3級是差為非負的兩個1位數(shù)的減法;第4級是執(zhí)行一個兩位數(shù)的加法。程序將隨機產(chǎn)生問題并讀取游戲參與者輸入的答案。對于每一個問題,游戲參與者都有兩次回答問題的機會。在得到5分后游戲進入下一級。要實現(xiàn)4個等級的功能特征,需要用4個if語句判斷選擇的關數(shù),然后通過rand()函數(shù)限定生成兩個隨機數(shù)并完成相關運算。通過玩家類Player儲存玩家的分數(shù)以及關數(shù)信息,Game類進行游戲的運轉。&l
7、t;/p><p><b> (1)CRC卡片</b></p><p><b> ?。?)UML類圖</b></p><p> 設計步驟及關鍵代碼說明</p><p> 1.由于源代碼中已給出前三個等級的條件判斷,增加第四等級需要在play_round函數(shù)中多加一個如下第四等級的條件判斷以及修改下相
8、應的界面提示和選關</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.因為只有第三等級是減法,一、二、四等級都是求和,所以把通過選關讀取讀者輸入結果的條件語句修改如下,這樣就可實現(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、級語句即可,由于每得五分后游戲等級會增加,并且分數(shù)也在不停變化,所以把輸出玩家等級的語句加在輸出分數(shù)的后面,這樣玩家每次計算后都能看到自己的分數(shù)和等級。</p><p> cout<<"Your level is "<<player.get_level()<<endl;</p><p><b> 四、軟件測試</b
12、></p><p> 1.輸入姓名,選擇相應等級,進行運算,運行的界面如下</p><p> 2.當所得分數(shù)為5時,自動跳入下一等級,運行的結果如下</p><p> 當計算錯誤時的運行結果如下</p><p> 4.第4等級的運行結果如下</p><p><b> 五、總結與心得體會<
13、/b></p><p> 經(jīng)過一個學期的《C++面向對象程序設計》學習,讓我對C++的理論知識有了一定的認知,了解了C++程序設計的思想,這些知識及相關的C++實驗也給我們下一步的學習打下堅實的基礎。這次課程設計是我一個人完成的,雖然課程設計題目老師給出了源代碼參考,但還是花了幾天才完成。通過需求分析后,要經(jīng)過CRC卡片理清設計思路,然后再通過UML圖確定需要什么樣的類以及對應的函數(shù)實現(xiàn)想要達到的功能。
14、并且這次課設讓我充分認識到了自己的不足,認識到了動手能力的重要性。我會在以后的學習中更加努力鍛煉自己,提高自己。最后感謝老師這個學期的辛勤教學!</p><p> 六、附錄(新增以及修改的代碼)</p><p><b> 1.</b></p><p> void Player::increment_score() // 答對加一分,每得
15、于5分時自動進入下一關 </p><p><b> {</b></p><p><b> score++;</b></p><p> if (score % 5 == 0 && level < 3) //自動進入下一關的條件改為小于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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計---猜數(shù)字游戲報告
- 拼數(shù)字游戲c#課程設計
- c語言課程設計--猜數(shù)字游戲
- c語言課程設計--猜數(shù)字游戲
- c++課程設計-教學游戲
- 猜數(shù)字游戲課程設計報告
- 課程設計報告--猜數(shù)字游戲
- c課程設計報告-打字游戲
- c語言程序課程設計-猜數(shù)字游戲
- c語言課程設計報告---游戲設計
- c語言課程設計報告-游戲2048
- c程序課程設計報告(掃雷游戲)
- c++課程設計報告--坦克游戲
- c語言課程設計---猜數(shù)字游戲姚成
- 《c語言程序設計》課程設計---猜數(shù)字游戲
- android課程設計報告--猜數(shù)字小游戲
- c++課程設計報告--猜數(shù)游戲
- 猜單詞游戲c++課程設計報告
- c程序課程設計報告(24點游戲)
- android課程設計報告--猜數(shù)字小游戲.doc
評論
0/150
提交評論