C 課程設計報告猜數遊戲

2022-09-17 12:21:03 字數 3948 閱讀 1846

( 2012 -- 2013 年度第二學期)

猜數遊戲

目錄 2

1 概述 1

1.1 課程設計目的 1

1.2 課程設計內容 1

2 系統總體設計 1

2.1 系統目標 1

2.2 主體功能 2

2.3 系統流程 3

2.4 開發環境 5

3系統詳細設計 5

3.1系統主介面設計 5

3.2 提示鍵h、k的模組設計 6

3.3統計分數模組設計 8

4 測試 9

4.1 測試方案 9

4.2 測試結果 10

5 小結 11

參考文獻 13

附錄 14

附錄1 源程式清單 14

猜數遊戲的設計與實現

a)鞏固並加深學生對c++語言程式設計知識的理解;

b)培養學生物件導向的程式設計思想,使學生認識面向過程和物件導向兩種設計方法的區別;

c)進一步掌握和應用vc++ 6.0整合開發環境;

d)提高運用c++語言解決實際問題的能力;

e)初步掌握開發小型實用軟體的基本方法,能獨立設計、實現具有實際功能的小系統;

f)掌握書寫程式設計開發文件的能力(書寫課程設計實驗報告)

課程名稱:猜數遊戲

說明:使用者從鍵盤輸入4位不重複的數,來匹配計算機給出的4位隨機數,若數字和位置均等同,表示使用者贏了。每猜一次,計算機均給出提示資訊(x,y),x表示數字、位置都匹配的個數,y表示數字匹配但位置不匹配的個數。

要求:a)設計友好的中文使用者互動介面。

b)按h鍵,可得到更詳細的幫助資訊。

c)按k鍵後,可以檢視計算機所給的4位數,但檢視前需要輸入密碼,密碼自定。

d)猜的結果以分值的形式給出,每猜錯1次扣100分,若猜對1個數,獎勵20分。

e)每次遊戲結束後將分值存檔,檔名自定。

該題目是乙個通過自己的推斷猜數字小遊戲。編寫該程式要完成實現系統自定義四位不同數字、輸入四位不同數字、判斷輸入的四位不同數字的對錯情況的功能以及玩遊戲時的提示功能、管理功能和與退出功能。

這次課設是要求用c++編寫程式,實現數字之間的相互比較,讓玩家找出電腦寫的四位數字,而玩家在找出四位數字中,電腦需要給出玩家一些提示資訊,用以幫助玩家找出答案。對於猜位數不等的四位數,電腦需要在程式剛執行時,確定乙個隨機的四位數,且各個位數不相等。而在玩家輸入數字時,也需要檢驗玩家輸入的數字是否滿足條件,即乙個各個位數不重複的四位數。

只有玩家輸入正確的數字後,電腦才能進行比較數字的運算,如果玩家輸入的數字和電腦的不相等,輸出提示資訊,並應從新讀取玩家的數字進行判斷,直到玩家放棄猜數字或數字猜對為止。

當玩家在玩遊戲時每輸入一次四位不同數字電腦都會給出位置數字對錯的的資訊,並對此算出所得分數(每猜錯1次扣100分,若猜對1個數,獎勵20分。

)。。當玩家想知道電腦給出的數字時可以使用管理功能輸入正確的密碼可以知道電腦所給的正確答案。當玩家不想玩此遊戲可是使用退出鍵並且在退出時電腦會給玩家正確的答案。

該遊戲的主體功能主要有以下幾個重要的模組:電腦實現自定義模組、電腦對玩家所猜數字進行處理的模組、電腦處理玩家遊戲排名模組以及電腦處理玩家退出遊戲的模組。

其中電腦自定義模組在玩家開始玩遊戲時電腦事先確定好四位不同數字作為正確數字供玩家猜測;對玩家數字所猜測的數字處理模組主要就是把玩家所猜測的數字與正確答案做個比較然後反饋給玩家;玩家排名模組就是把各個玩家玩的遊戲統計所得分數並且做出比較排列出前三名;退出模組主要是玩家想放棄遊戲時做遊戲作出處理並與此同時告訴玩家答案。

該遊戲的各個模組功能如下圖所示:

圖2-1 系統功能模組圖

如下圖所示我畫的總體流程圖想要展現的是,開始玩家進入遊戲電腦自定義一組四位不同數字供玩家猜測,接著開始遊戲玩家輸入四位不同數字電腦會對這組數字與正確答案做出比較並告知玩家,接著玩家可有兩種選擇一是是否繼續猜數,二是是否需要提示。其中如果需要提示通過使用快捷鍵電腦會給玩家詳細的錯誤提醒。如果繼續遊戲那麼回到開始輸入四位不同數字階段,但是如果玩家想退出遊戲可以使用快捷鍵退出遊戲。

在玩遊戲的過程玩家每猜一次電腦都會給玩家所得分數

該程式是在windows系統下的c++語言開發和應用vc++ 6.0整合開發環境。

該介面清晰易懂,主要包括遊戲的前三名、遊戲的漢字提醒以及鍵盤輸入提醒。遊戲名次排序可以展現玩家玩此遊戲的熟練程度以及玩此遊戲能力,說已設立了遊戲的名次排序可以激發遊戲者競爭意識。遊戲介面的提醒部分可以使遊戲者熟練的玩此遊戲,以及遊戲的功能。

主要**有:

cout<<"輸入您所猜測的4位不同的數字(輸入9999退出,輸入h幫助,輸入k管理):"

玩家在玩遊戲時通過h、k鍵完成遊戲的幫助和管理。當玩家想放棄玩遊戲想知道正確答案時可以使用k鍵,但是因為屬於管理者的捷徑所以要輸入密碼。當密碼輸入錯誤時介面會提示輸入錯誤玩家會再次進入遊戲狀態。

但玩家玩遊戲時覺得比較難不好猜測可以使用h鍵,電腦會給出詳細的提示(例如:玩家要猜測的數字4369可是玩家猜測是3568這時使用h鍵電腦會給出提示「您的第一位數字猜對,但位置不對;您的第三位數字猜對,位置猜對」)

其詳細的流程圖如下:

玩家在玩遊戲輸入四位不同數字之後電腦系統會為玩家做一次分數統計。遊戲開始時電腦給玩家自定義分數為1000分,當玩家開始猜數的遊戲時沒猜錯一次扣100分,若猜對乙個數,獎勵20分。(例如:

玩家要猜數9852,但玩家輸入1234時玩家得分為960分當玩家再次輸入數字1235時玩家得分為920分)

其流程圖如下所示:

測試方案一:測試執行時出現重複的情況

圖4-1 錯誤輸入數字執行圖

測試方案二:測試在需要幫助時鍵盤輸h及h的情況

圖4-2 在鍵盤輸入小寫字母錯誤時執**況

測試結果一:但玩家想知道遊戲答案時可以輸入大寫字母k並輸入密碼得以實現

圖4-3 玩家進行管理狀態執**況

測試結果二:玩家如果想結束遊戲輸入9999來實現

圖4-4 玩家終止遊戲的情況

測試結果三:玩家想知道遊戲答案是密碼輸入密碼錯誤。

圖4-5玩家執行公布遊戲答案密碼錯誤的情況

這週的課程設計就要結束了。從最開始的做題到現在的報告總結我完成乙個過程。在這個過程裡我領悟了很多。

在最開始的做實驗報告時感覺挺難的之前根本就沒有寫過關於遊戲的實驗報告,不過還好我以前沒事的時候玩過這遊戲,所以比較了解這個遊戲各個部分。雖然在中間寫的過程中還有很多不會的東西,但是通過檢視書本和資料還有問同學和老師,基本上都解決了。其中有一部分的程式無法滿足題目的要求在老師的幫助下最後得到了解決,通過這件事我感覺自己還有還有很多不足,仍然有一些有待提高的地方。

我覺得課程設計的作用一方面是最基本的就是要完成這一科目,差不多也是對自己的乙個階段性的總結;還有就是在整個設計的過程中,讓我們認真的獨立思考,在和同學交流的過程中也增強了我們的語言組織能力和彼此之間的友誼。通過課程設計讓我們不斷的發現自己的不足從而去改善,這是一種學習的態度,不僅僅是在這次的課程設計中,在以後的無論生活還是學習方面都應該注意和努力改善。通過這次比較完整的乙個程式的設計,我擺脫了單純的理論知識學習狀態,和實際設計的結合鍛鍊了我的綜合運用所學的基礎知識,解決實際問題的能力,同時也提高我查閱文獻資料、對程式整體的把握等其他能力水平,而且通過對整體的掌控,對區域性的取捨,以及對細節的斟酌處理,都使我的能力得到了鍛鍊,經驗得到了豐富。

這是我們都希望看到的也正是我們進行課程設計的目的所在。雖然設計內容繁多,過程繁瑣但我的收穫卻更加豐富。各種元件的運用,各種演算法的應用,各種控制項的利用我都是隨著設計的不斷深入而不斷熟悉並逐步掌握的。

和老師以及同學的溝通交流更使我對程式整體的規劃與設計有了新的認識也對自己提出了新的要求。提高是有限的但提高也是全面的,正是這一次設計讓我積累了許多實際經驗,也必然會讓我在未來的工作學習中表現出更高的應變能力和理解力。

[1]譚浩強.c++程式設計(第二版)[m].北京:清華大學出版社,2012.

[2]譚浩強.c++程式設計題解與上機指導(第二版)[m].北京:清華大學出版社,2012.

VB猜數字遊戲課程設計報告

學院機械班級機設054 學號 050374 姓名和寧成績 一 設計思路 1.要達到的目的 培養學生綜合利用vb語言進行程式設計的能力,主要是培養學生利用系統提供的標準函式進行創新設計。2.關鍵問題的解決 1.問題描述 由計算機隨機生成四位不重複的數字,然後根據遊戲者猜的數字,向其提供反饋資訊 正確地...

C語言課題設計報告 猜數字遊戲

課程設計報告 課程名稱 c 語言課程設計 課題名稱猜數字遊戲 專業電氣工程及其自動化 班級1183 學號13 姓名魯響 指導教師王穎 2012年 6 月 25 日 湖南工程學院 課程設計任務書 課程名稱 c語言程式設計 課題猜數字遊戲 專業班級電氣1183 學生姓名魯響 學號201113010313...

VB猜數字課程設計報告

學院班級學號姓名成績 一 設計思路 1.要達到的目的 培養學生綜合利用vb語言進行程式設計的能力,主要是培養學生利用系統提供的標準函式進行創新設計。2.關鍵問題的解決 1.問題描述 由計算機隨機生成四位不重複的數字,然後根據遊戲者猜的數字,向其提供反饋資訊 正確地數字有幾個以及數字正確而且位置正確的...