《面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)》報告解析(共15頁)

上傳人:202****8-1 文檔編號:56632011 上傳時間:2022-02-22 格式:DOC 頁數(shù):15 大?。?24KB
收藏 版權(quán)申訴 舉報 下載
《面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)》報告解析(共15頁)_第1頁
第1頁 / 共15頁
《面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)》報告解析(共15頁)_第2頁
第2頁 / 共15頁
《面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)》報告解析(共15頁)_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)》報告解析(共15頁)》由會員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)》報告解析(共15頁)(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 福建農(nóng)林大學(xué)計算機與信息學(xué)院 計算機類 課程設(shè)計報告 課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計) 課題名稱: 猜數(shù)字游戲 姓 名: 學(xué) 號: 專 業(yè): 計算機科學(xué)與技術(shù) 年 級: 2012級 指導(dǎo)教師: 職 稱: 講師 2013年11月 專心---專注---專業(yè) 面向?qū)ο蟪绦蛟O(shè)計(課程設(shè)計)成績評定表 評分項目 分值 得分 程序(系統(tǒng)) 原創(chuàng)性 15 程序功能 25 代碼質(zhì)量(健壯

2、性和可擴展性) 20 核心代碼和功能模塊注釋 10 設(shè)計報告 課題來源&任務(wù)描述 5 系統(tǒng)設(shè)計 10 代碼編寫與實現(xiàn)結(jié)果說明 10 團隊合作能力 分工協(xié)作&聯(lián)合研發(fā) 5 成績總計 指導(dǎo)老師簽字: 目 錄 1. 課題來源 該作品為原創(chuàng)。 課題靈感是能否做一個小游戲,尋找了很多小游戲比如俄羅斯方塊等,發(fā)現(xiàn)其太復(fù)雜以目前的水平無法完成,于是就選擇了一個比較簡單的猜數(shù)字游戲,編寫益智類的游戲可以讓我們?nèi)粘I钪凶约菏褂脕磉_到增加樂趣的作用。 猜數(shù)字游戲

3、的原游戲規(guī)則:通常由兩個人玩,一方出數(shù)字,一方猜。出數(shù)字的人要想好一個沒有重復(fù)數(shù)字的4位數(shù),不能讓猜的人知道。猜的人就可以開始猜。每猜一個數(shù)字,出數(shù)者就要根據(jù)這個數(shù)字給出幾A幾B,其中A前面的數(shù)字表示位置正確的數(shù)的個數(shù),而B前的數(shù)字表示數(shù)字正確而位置不對的數(shù)的個數(shù)。 如正確答案為 5234,而猜的人猜 5346,則是 1A2B,其中有一個5的位置對了,記為1A,而3和4這兩個數(shù)字對了,而位置沒對,因此記為 2B,合起來就是 1A2B。 接著猜的人再根據(jù)出題者的幾A幾B繼續(xù)猜,直到猜中(即 4A0B)為止。 原游戲規(guī)則是兩個人玩,于是我們想到了將規(guī)則改為人機對戰(zhàn),電腦出題玩家來猜。

4、2. 任務(wù)描述 猜數(shù)字游戲:產(chǎn)生隨機數(shù),統(tǒng)計完全猜中的數(shù)字的個數(shù)以及統(tǒng)計猜中但位置錯誤數(shù)字的個數(shù),并給出提示。最后計算積分。此程序體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的繼承性和封裝性。 2.1. 課題的總體結(jié)構(gòu) contrast -A:int -B:int -n1:int -n2:int -n3:int -n4:int +setNum():void +count():void +getA():int +getB():int +setA(int a):void score -s1:int -s2:int -s3:int +score(): +getS1():in

5、t +getS2():int +getS3():int +setS1(int b1):void +setS2(int b2):void +setS3(int b3):void 類層次結(jié)構(gòu)圖: randNumber -num2:int -num3:int -num4:int -ran():int +randNum():void +getnum1():int +getnum2():int +getnum3():int +getnum4():int 程序有三個類, 其中randNumber類用來產(chǎn)生隨機數(shù), contrast類用來做對比并得出猜數(shù)字的結(jié)果

6、, score類用來讀取文件內(nèi)容并統(tǒng)計分數(shù), 主函數(shù)進行循環(huán)輸入猜數(shù)字,并將結(jié)果輸入文件。 讀取文件信息 程序的功能結(jié)構(gòu)圖: 猜數(shù)字 隨機數(shù)的產(chǎn)生 輸入所猜測的數(shù)據(jù) 判斷正誤,給出提示 計算積分 更新文件信息 2.2. 核心功能模塊與類設(shè)計 采用表格的形式,按照類在課題中的作用,列出核心類的功能定義和主要函數(shù)接口。 randNumber類 實現(xiàn)答案所需的隨機數(shù)的產(chǎn)生 randNum():void//制造隨機數(shù) getnum1():int//獲取隨機數(shù)的第一位 getnum2():int//獲取隨機數(shù)的第二位 getnum3

7、():int//獲取隨機數(shù)的第三位 getnum4():int//獲取隨機數(shù)的第四位 contrast類 核心類,實現(xiàn)猜數(shù)字游戲主要玩法的設(shè)計 setNum():void//用于設(shè)置用戶輸入的數(shù)據(jù) count():void//統(tǒng)計幾A幾B getA():int//獲取A的值 getB():int//獲取B的值 setA(int a):void//設(shè)置A的值 score類 用于顯示和統(tǒng)計分數(shù) score()://從文件獲取排行榜數(shù)據(jù)并顯示 getS1():int getS2():int getS3():int//獲取排行榜積分 setS1(int b1):voi

8、d setS2(int b2):void setS3(int b3):void//更改排行榜 2.3. 任務(wù)分工與工作量說明 成員名字 任務(wù)分工 工作量(%) 韓澤宇 (1) 程序的初期設(shè)計制作 (2) 對積分統(tǒng)計顯示錯誤的BUG進行修復(fù),對循環(huán)的條件進行改變。 (3) 增加了文件保存功能,記錄最高分并保存至文件 (4) 程序BUG測試及調(diào)試 40% 陳智杰 (1)增加了變量對猜數(shù)字的次數(shù)進行限制,使得游戲更有挑戰(zhàn)性 (2)增加了在猜對數(shù)字時的(Y/N)退出功能,并能在退出時統(tǒng)計分數(shù) (3)程序BUG測試及調(diào)試 30% 鐘揚 (1)程序的外觀界面設(shè)計

9、 (2)增加了對輸入數(shù)字的限制,限定輸入的數(shù)字每位必須各不相同,加強了程序健壯性 (3)增加了積分統(tǒng)計 (4)程序BUG測試及調(diào)試 30% 3. 程序(系統(tǒng))詳細設(shè)計 按照程序(系統(tǒng))的總體結(jié)構(gòu),詳細介紹程序中各個類和函數(shù)的設(shè)計思想和實現(xiàn)方法,并以圖的方式說明程序的流程圖。 randNumber類實現(xiàn)答案所需的隨機數(shù)的產(chǎn)生 contrast類為核心類,繼承至randNumber類,實現(xiàn)猜數(shù)字游戲主要玩法的設(shè)計 開始 讀取并顯示排行榜記錄 產(chǎn)生隨機數(shù)字

10、 輸入所猜的數(shù)字 與生成的隨機數(shù)完全相同? 輸出猜數(shù)字的提示(?A?B) N Y 猜數(shù)字的機會減少一次 輸出“你猜對了” 次數(shù)耗盡? N 計算并打印積分 Y Y 是否繼續(xù)? N 游戲結(jié)束 統(tǒng)計總分,判斷是否上榜 更新排行榜 4. 程序(系統(tǒng))實現(xiàn)與測試 (1) 給出典型的程序(系統(tǒng))執(zhí)行結(jié)果圖。 開始界面: 猜數(shù)字界面: 猜對時的顯示界面: 破紀錄時的顯示界面: 更新后的排行榜: (2

11、) 程序(系統(tǒng))實現(xiàn)的功能 隨機數(shù)字的產(chǎn)生:產(chǎn)生四個隨機數(shù)字分別代表四位數(shù)的四個位 數(shù)字正誤判斷:給出既猜對位置也猜對的數(shù)字的個數(shù)以及猜對但是位置不對的數(shù)字的位置。 積分計算:猜錯按0分算,一次就猜對100分,兩次猜對90分,三次80分……以此類推,最后一次猜對得20分。 記錄成績的功能:給出排行榜記錄前三名的成績,保存在score.txt文件中。 (3) 根據(jù)課題的特性,列出帶有詳細注釋的核心功能模塊或類代碼; 源程序代碼: 隨機數(shù): class randNumber{ int num1; int num2; int num3; int num4; int

12、 ran(){ srand( (unsigned)time( NULL ) ); for(int i=0;i<10;i++){ return (rand()%10); } }//返回0-9的一個隨機數(shù) public: void randNum(){ cout<<"正在產(chǎn)生隨機數(shù)..."<

13、 num2=ran(); } while(num2==num1); do{ num3=ran(); } while(num3==num1||num3==num2); do{ num4=ran(); } while(num4==num1||num4==num2||num4==num3); };//產(chǎn)生四個不同的隨機數(shù) int getnum1(){ return num1; } int getnum2(){ return num2; } int getnum3(){ return num3

14、; } int getnum4(){ return num4; } };//獲取隨機數(shù)的方法 用于比較: class contrast:public randNumber{ int A; int B;//用于記錄結(jié)果(幾A幾B) int n1; int n2; int n3; int n4;//(用于記錄輸入的數(shù)字) public: void setNum(int a1,int a2,int a3,int a4){ n1=a1; n2=a2; n3=a3; n4=a4; } void count(){

15、A=0; B=0;//每一次都重置A、B if(n1==getnum1()){A++;} if(n2==getnum2()){A++;} if(n3==getnum3()){A++;} if(n4==getnum4()){A++;}//統(tǒng)計完全猜中的數(shù)字的個數(shù)(A) if(n1==getnum2()||n1==getnum3()||n1==getnum4()){B++;} if(n2==getnum1()||n2==getnum3()||n2==getnum4()){B++;} if(n3==getnum2()||n3==getnum1(

16、)||n3==getnum4()){B++;} if(n4==getnum2()||n4==getnum3()||n4==getnum1()){B++;}//統(tǒng)計猜中但位置錯誤數(shù)字的個數(shù)(B) } int getA(){ return A; } int getB(){ return B; } void setA(int a){ A=a; } }; class score{ int s1; int s2; int s3;//用于記錄前三名積分 public: int getS1(){ return s1; }

17、 int getS2(){ return s2; } int getS3(){ return s3; }//用于獲取積分的方法 void setS1(int b1){ s1=b1; } void setS2(int b2){ s2=b2; } void setS3(int b3){ s3=b3; }//用于最后修改積分排名 score(){ s1=0; s2=0; s3=0; FILE *fp; fp=fopen("score.txt","r");//打開文件 if(!fp){ c

18、out<<"當前暫無積分排名"<

19、se(fp); } } }; 主函數(shù): void main(){ score score;//從文件讀取并輸出上次成績 contrast number; int s=0;//用于統(tǒng)計總分 do{ number.randNum(); int n1,n2,n3,n4; int k=9;//用于統(tǒng)計剩余次數(shù) do{ cout<<"請輸入您所猜的四位數(shù)字"<

20、|n2==n3||n2==n4||n3==n4){//當輸入的數(shù)字中含有相同的數(shù)字 cout<<"請重新輸入正確格式的數(shù)字"<

21、mber.getA()==4){ cout<<"你猜對了"<>yn; if(yn=='N'||yn=='n'){number.setA(-1);} }while(yn!='Y'&&yn

22、!='y'&&yn!='N'&&yn!='n');//當輸入格式正確時退出循環(huán) } if(number.getA()!=4&&number.getA()!=-1){ cout<<"你還有"<

23、t<<"正確的數(shù)字為"<score.getS3()&&s

24、s>score.getS2()&&sscore.getS1()){ score.setS3(score.getS2()); score.setS2(score.getS1()); score.setS1(s); }//當成績大于第一名時修改第一、二、三名成績 if (s>score.getS3()){ cout<<"你破記錄了!你的成績將寫入新記錄中"<

25、; FILE *stream; stream = fopen( "score.txt", "w" ); fprintf( stream, "%d %d %d",score.getS1(),score.getS2(),score.getS3());//將成績寫入文件 } } (4) 游戲開始之前會產(chǎn)生一個隨機的4位數(shù)字,然后會讓玩家輸入自己猜的數(shù)字,在猜的數(shù)字為有重復(fù)的4位數(shù)或者不為4位數(shù)時會提示輸入數(shù)字錯誤并返回重新輸入。 比如輸入錯誤格式的數(shù)字后(數(shù)字中有兩個1,位數(shù)重復(fù)) 結(jié)果提示重新輸入正確格式的數(shù)字 5. 分析與討論 程序提供了一個猜數(shù)字的游戲,程序解決了產(chǎn)生隨機數(shù),判斷猜中數(shù)字的位數(shù)、計算積分,保存成績的問題。 但是在產(chǎn)生隨機數(shù)的方面處理不夠完善,隨機數(shù)產(chǎn)生耗時過長。 在進行此程序設(shè)計的過程中,發(fā)現(xiàn)我們還有很多方面不會,必須一邊查書一邊進行設(shè)計,其中文件讀取和寫入功能還用到了百度,下次進行設(shè)計時會拓展自己的知識。 6. 結(jié)束語 進行此課程設(shè)計,讓我們發(fā)現(xiàn)自己很多的不足,也在設(shè)計的過程中進行查詢,得到很多以前不會的知識,并且發(fā)現(xiàn)團隊合作的重要性,只有團隊更好地合作才能寫出更好,更精簡的代碼。

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲