版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C+課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告姓名: XXX 學(xué)號: XXXXXXX 班級: XXXXXX 指導(dǎo)教師: XX 完成日期: XXXX年X月X日 目 錄一、問題簡述(2)二、需求分析及系統(tǒng)設(shè)計(jì)(2)(一)需求分析(2)(二)系統(tǒng)設(shè)計(jì)(2)三、程序測試結(jié)果(4)四、問題及解決方案和收獲與心得(7)(一)問題及解決方案(7)(二)收獲與心得(7)五、程序源代碼(8)一、問題簡述 本題目(參考題五)要求設(shè)計(jì)并實(shí)現(xiàn)一個打字游戲,游戲要求如下:游戲開始后,屏幕上方同時有四個數(shù)字分四列下落,每個數(shù)字由三位組成(隨機(jī)生成,但首位不可相同)。玩家用鍵盤依次輸入數(shù)字,如果輸入的數(shù)字序列與某一列正在下落的數(shù)字三位全部相同,則給
2、玩家加10分,該列數(shù)字消失,該列新產(chǎn)生數(shù)字并下落;如果輸入的數(shù)字某一位不相同,則輸入的數(shù)字序列全部作廢,重新接收輸入。某一列數(shù)字到達(dá)屏幕底部則游戲結(jié)束。對于本題目我采用C+進(jìn)行設(shè)計(jì)并實(shí)現(xiàn)。二、需求分析及系統(tǒng)設(shè)計(jì)(一)需求分析需要設(shè)計(jì)的這個游戲程序,其規(guī)則在上述問題簡述中已經(jīng)進(jìn)行了詳細(xì)描述。其中有幾個方面是這個程序所需要的主要模塊: (1)生成四組隨機(jī)的三位數(shù),并且所生成的四組隨機(jī)數(shù)要求首位不相同;(2)分析并選取合適的方式來存儲這些隨機(jī)數(shù);(3)所有顯示出的數(shù)能夠按照一定頻率向下進(jìn)行滾動;(4)鍵盤輸入一組數(shù)字,并在輸入匹配的情況下消除與之匹配的數(shù),然后產(chǎn)生一個不同于其他三組的新隨機(jī)數(shù);(5)
3、判斷游戲結(jié)束的標(biāo)準(zhǔn)并輸出分?jǐn)?shù)。(二)系統(tǒng)設(shè)計(jì)通過分析,選擇二維數(shù)組作為存儲并處理這些隨機(jī)數(shù)的容器,所有主要步驟都在這個二維數(shù)組中設(shè)計(jì)并實(shí)現(xiàn);在隨機(jī)數(shù)的生成上選擇以當(dāng)前系統(tǒng)時間為隨機(jī)種子來生成所需要的四組隨機(jī)數(shù);該程序包含的模塊:class GRN -(該類負(fù)責(zé)生成隨機(jī)數(shù) Generate Random Number) void generate()-(生成隨機(jī)數(shù)) int RN()-(將生成的隨機(jī)數(shù)返回n)class Run -(該類負(fù)責(zé)實(shí)現(xiàn)程序的其他主要功能) void initialize()-(對數(shù)組以及各類參數(shù)進(jìn)行初始化) void importing()-(將生成的符合要求的隨機(jī)數(shù)導(dǎo)
4、入到數(shù)組中) void show()-(顯示游戲運(yùn)行過程) void judge()-(判斷所輸入的數(shù)是否滿足消去條件并進(jìn)行記分) void act(int t)-(執(zhí)行,消去滿足條件的數(shù)并在該列頂端生成新隨機(jī)數(shù))系統(tǒng)流程圖:三、程序測試結(jié)果(OS:Windows 8 編譯:VS2012)1.游戲程序開始執(zhí)行界面2.輸入數(shù)字每次移動的時間間隔(單位ms)3.游戲開始運(yùn)行4.游戲進(jìn)行中5.游戲結(jié)束6.經(jīng)過測試,游戲能夠正常運(yùn)行并且所得分?jǐn)?shù)正確。四、問題及解決方案和收獲與心得(一)問題及解決方案在設(shè)計(jì)開始時,希望能把這個游戲程序做成windows圖形界面來顯示,但是由于時間和能力不足,最終選擇將程
5、序?qū)崿F(xiàn)在DOS窗口界面下。在設(shè)計(jì)過程中,對游戲進(jìn)行時的滾動速度想實(shí)現(xiàn)成逐漸加快的模式,但是實(shí)現(xiàn)過程發(fā)現(xiàn)有一些缺陷,于是改善成由用戶自己手動輸入Sleep(t)中t的數(shù)值來設(shè)置游戲中數(shù)字的滾動速度,這樣用戶可以有不同的體驗(yàn)。(二)收獲與心得 通過完成本次C+游戲程序的設(shè)計(jì)與實(shí)現(xiàn),我對C+程序的設(shè)計(jì)有了更深一層的了解,鍛煉了使用C+編程的熟練程度,對程序的設(shè)計(jì)步驟與相關(guān)細(xì)節(jié)的實(shí)現(xiàn)有了更好的認(rèn)識;在完成程序的過程中,會出現(xiàn)一些錯誤,但是有些錯誤只要細(xì)心一點(diǎn)就可以避免,這樣寫程序的效率就會提高,另外,整潔的代碼對于所寫程序的質(zhì)量也有很好的幫助與提升。五、程序源代碼Type.h#include<i
6、ostream>#include<windows.h>#include<conio.h>#include<stdlib.h>#include<time.h>using namespace std;class GRN /Generate Random Numberpublic:void generate(); /Generateint RN(); /Random Numberprivate:int n;class Runpublic:void initialize(); /初始化void importing(); /導(dǎo)入void show()
7、; /顯示void judge(); /判斷 void act(int t); /執(zhí)行private:GRN a4;int i,j,k,l,z4;int num,grade;int n254;char s4;Type.cpp#include"type.h"void GRN:generate() n=rand()%900+100; /生成三位隨機(jī)數(shù)int GRN:RN()return n;void Run:initialize()for(i=0;i<4;i+)zi=0;for(i=0;i<25;i+)for(j=0;j<4;j+)nij=0;k=0;i=0;
8、j=0;grade=0;s0='0'void Run:importing()for( ; ; )a0.generate(); a1.generate(); a2.generate(); a3.generate();if(a0.RN()/100!=a1.RN()/100 && a1.RN()/100!=a2.RN()/100 && a2.RN()/100!=a3.RN()/100 && a0.RN()/100!=a2.RN()/100 && a0.RN()/100!=a3.RN()/100 && a1
9、.RN()/100!=a3.RN()/100) /保證生成的四組隨機(jī)數(shù)的首位不相同break;n00=a0.RN();n01=a1.RN();n02=a2.RN(); n03=a3.RN();void Run:show()for(i=0;i<25;i+)for(j=0;j<4;j+)if(nij!=0)cout<<nij<<" " elsecout<<" " if(_kbhit() sk=_getch(); k+;cout<<endl; void Run:judge()if(k=3) s3=
10、39;0'num=atoi(s);if(num=a0.RN() | num=a1.RN() | num=a2.RN() | num=a3.RN() /所輸入數(shù)字與任意一已顯示數(shù)字相同grade += 10;cout<<"已得分?jǐn)?shù):"<<grade;if(num=a0.RN() /所輸入數(shù)字與第一列中顯示數(shù)字相同for( ; ; )a0.generate();if(a0.RN()/100!=a1.RN()/100 && a0.RN()/100!=a2.RN()/100 && a0.RN()/100!=a3.RN(
11、)/100)break; nl-1-z00=0; z0=l-1; if(num=a1.RN() /所輸入數(shù)字與第二列中顯示數(shù)字相同for( ; ; )a1.generate();if(a0.RN()/100!=a1.RN()/100 && a1.RN()/100!=a2.RN()/100 && a1.RN()/100!=a3.RN()/100)break;nl-1-z1 1=0; z1 = l - 1;if(num=a2.RN() /所輸入數(shù)字與第三列中顯示數(shù)字相同for( ; ; )a2.generate();if(a2.RN()/100!=a1.RN()/1
12、00 && a0.RN()/100!=a2.RN()/100 && a2.RN()/100!=a3.RN()/100)break; nl-1-z22=0; z2=l-1; if(num=a3.RN() /所輸入數(shù)字與第四列中顯示數(shù)字相同for( ; ; )a3.generate();if(a3.RN()/100!=a1.RN()/100 && a3.RN()/100!=a2.RN()/100 && a0.RN()/100!=a3.RN()/100)break;nl-1-z33=0; z3=l-1; k=0;s0='0
13、9;void Run:act(int t)for(l=1; ;l+) show();judge();nl-z0-10=0;nl-z1-11=0;nl-z2-12=0;nl-z3-13=0; nl-z00=a0.RN();nl-z11=a1.RN(); nl-z22=a2.RN();nl-z33=a3.RN(); Sleep(t);system("cls"); if(l-z0=24 | l-z1=24 | l-z2=24 | l-z3=24) cout<<"*GAME OVER*"<<endl <<"您最后的總得分是:"<<grade<<endl;exit(0);main.cpp#include"type.h"
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度銷售員銷售風(fēng)險(xiǎn)防范與控制協(xié)議3篇
- 塑料在智能投影儀散熱系統(tǒng)中的應(yīng)用考核試卷
- 2006年湖北襄陽中考滿分作文《告別非典型性文字獄》
- 2025年房產(chǎn)居間服務(wù)協(xié)議11篇
- 中藥批發(fā)商的客戶滿意度調(diào)查與改進(jìn)措施考核試卷
- Module 6 Unit 1(說課稿)-2023-2024學(xué)年外研版英語八年級下冊
- 2025年粵人版七年級地理上冊月考試卷含答案
- 二手房買賣標(biāo)準(zhǔn)化協(xié)議樣本2024版一
- Unit 6 A Greener Earth Reading,Speaking and Writing 說課稿-2024-2025學(xué)年高中英語重大版(2019)必修第二冊
- 蘇教版六年級上冊分?jǐn)?shù)四則混合運(yùn)算100題帶答案
- 2024年考研英語(一)真題及參考答案
- 醫(yī)療組長競聘
- 2024年業(yè)績換取股權(quán)的協(xié)議書模板
- 顳下頜關(guān)節(jié)疾病(口腔頜面外科學(xué)課件)
- 工業(yè)自動化設(shè)備維護(hù)保養(yǎng)指南
- 2024人教新版七年級上冊英語單詞英譯漢默寫表
- 《向心力》參考課件4
- 定制柜子保修合同協(xié)議書
- 2024至2030年中國膨潤土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報(bào)告
- 2024年深圳中考數(shù)學(xué)真題及答案
評論
0/150
提交評論