猜數(shù)字游戲C語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
猜數(shù)字游戲C語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
猜數(shù)字游戲C語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
猜數(shù)字游戲C語(yǔ)言課程設(shè)計(jì)_第4頁(yè)
猜數(shù)字游戲C語(yǔ)言課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告(2014 2015學(xué)年第 2 學(xué)期)題 目: 猜數(shù)字游戲 學(xué) 院: 機(jī)械工程學(xué)院 班 級(jí): 機(jī)械1310班 學(xué) 號(hào): 1303090190 姓 名: 楊晨 指導(dǎo)教師: 羅濤華 時(shí) 間:起 2015年5月25日止2015年5月31日 一、 課程設(shè)計(jì)基本信息課程代碼:05190124課程名稱:計(jì)算機(jī)基礎(chǔ)課程設(shè)計(jì)課程英文名稱: Computer-based Course Design課程所屬單位(院(系)、教研室):數(shù)學(xué)與計(jì)算機(jī)學(xué)院計(jì)算機(jī)基礎(chǔ)課程群課程面向?qū)I(yè):食品科學(xué)與工程學(xué)院、機(jī)械工程學(xué)院、電氣與電子工程學(xué)院、土建學(xué)院、動(dòng)物科學(xué)與營(yíng)養(yǎng)工程學(xué)院、化學(xué)與環(huán)境工程學(xué)院、工商管理

2、類、國(guó)際經(jīng)濟(jì)與貿(mào)易、旅游管理、金融學(xué)、行政管理、漢語(yǔ)言文學(xué)、英語(yǔ)、護(hù)理學(xué)、康復(fù)治療專業(yè)、生物科學(xué)類、制藥工程、制藥工程(生物制藥)、藥物制劑、物流管理課程類型:必修課先修課程:大學(xué)計(jì)算機(jī)基礎(chǔ)通識(shí)選修課程、程序設(shè)計(jì)課程學(xué)分:1 總學(xué)時(shí):1周二、 課程設(shè)計(jì)目標(biāo)掌握所學(xué)語(yǔ)言程序設(shè)計(jì)的方法,熟悉 所學(xué)語(yǔ)言的開(kāi)發(fā)環(huán)境及調(diào)試過(guò)程,熟悉所學(xué)語(yǔ)言中的數(shù)據(jù)類型,數(shù)據(jù)結(jié)構(gòu)、語(yǔ)句結(jié)構(gòu)、運(yùn)算方法,鞏固和加深對(duì)理論課中知識(shí)的理解,提高學(xué)生對(duì)所學(xué)知識(shí)的綜合運(yùn)用能力。通過(guò)綜合設(shè)計(jì)要求達(dá)到下列基本技能:1培養(yǎng)查閱參考資料、手冊(cè)的自學(xué)能力,通過(guò)獨(dú)立思考深入鉆研問(wèn)題,學(xué)會(huì)自己分析、解決問(wèn)題。 2通過(guò)對(duì)所選題目方案分析比較,確立方

3、案,編制與調(diào)試程序,初步掌握程序設(shè)計(jì)的方法,能熟練調(diào)試程序。 3系統(tǒng)設(shè)計(jì)編程簡(jiǎn)練,可用,功能全面,并有一定的容錯(cuò)能力。用戶界面良好,有較好的輸出功能。在完成課題基本要求后,具有創(chuàng)新型設(shè)計(jì),具有一定的實(shí)用價(jià)值。4根據(jù)個(gè)人的設(shè)計(jì)調(diào)試過(guò)程,撰寫設(shè)計(jì)報(bào)告。三、 課程設(shè)計(jì)內(nèi)容熟練掌握所學(xué)語(yǔ)言的基本知識(shí):數(shù)據(jù)類型(整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運(yùn)算類型(算術(shù)運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算、賦值運(yùn)算等);程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的使用)等。進(jìn)一步掌握各種函數(shù)的應(yīng)用,包括時(shí)間函數(shù)、繪圖函數(shù),以及文件的讀寫操作等。四、 課程設(shè)計(jì)要求1. 要求每個(gè)同學(xué)都

4、要認(rèn)真對(duì)待,積極參與。2. 課程設(shè)計(jì)結(jié)束時(shí),提交完成的所有源程序、相關(guān)文件和可執(zhí)行文件。同時(shí)填寫并完成課程設(shè)計(jì)報(bào)告冊(cè)。3. 不符合要求的程序、設(shè)計(jì)報(bào)告、抄襲的設(shè)計(jì)報(bào)告或源程序代碼、在設(shè)計(jì)中完全未參與的將作不及格處理。五、 考核方式指導(dǎo)老師負(fù)責(zé)驗(yàn)收程序的運(yùn)行結(jié)果,并結(jié)合學(xué)生的工作態(tài)度、實(shí)際動(dòng)手能力、創(chuàng)新精神和設(shè)計(jì)報(bào)告等進(jìn)行綜合考評(píng),百分制計(jì)算,具體考核標(biāo)準(zhǔn)主要包含以下幾個(gè)部分:1. 程序運(yùn)行情況20分2. 程序功能的完善程度10分3. 程序結(jié)構(gòu)的合理性10分4. 對(duì)問(wèn)題的答辯情況20分5. 創(chuàng)新情況10分6. 學(xué)生的工作態(tài)度與獨(dú)立工作能力10分7. 設(shè)計(jì)報(bào)告內(nèi)容的規(guī)范性20分備注:1. 按規(guī)定時(shí)

5、間填寫各階段文檔,學(xué)習(xí)態(tài)度加5分2. 設(shè)計(jì)報(bào)告內(nèi)容雷同扣40分,無(wú)調(diào)試過(guò)程問(wèn)題分析扣10分,無(wú)參考文獻(xiàn)扣10分3. 源程序無(wú)注釋則在程序結(jié)構(gòu)合理性扣10分六、 課程設(shè)計(jì)主要參考資料1. 譚浩強(qiáng)著. C程序設(shè)計(jì)(第3版). 北京:清華大學(xué)出版社,2005.72. 劉光蓉、汪靖、陸登波主編. C程序設(shè)計(jì)實(shí)驗(yàn)與實(shí)踐教程. 北京:清華大學(xué)出版社,2011.23. 游洪躍主編. C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)與課程設(shè)計(jì)教程. 北京:清華大學(xué)出版社,2011.54. (美)PerterVan DerLinden著,徐波譯. C 專家編程(C編程語(yǔ)言經(jīng)典之作) . 北京:人民郵電出版社,2008.25. 凱尼格 著,高

6、巍 譯. C陷阱與缺陷. 北京:人民郵電出版社,2008.26. Mark de Berg等著,鄧俊輝譯,計(jì)算幾何-算法與應(yīng)用(第3版),清華大學(xué)出版社,2009年8月7. 楊克昌編著,計(jì)算機(jī)程序設(shè)計(jì)典型例題精解,國(guó)防科技大學(xué)大學(xué)出版社,1999年3月七、 課程設(shè)計(jì)計(jì)劃安排時(shí) 間任 務(wù)課程設(shè)計(jì)前一周選擇課程設(shè)計(jì)題目,分析課題的要求,確定設(shè)計(jì)方案,完成報(bào)告冊(cè)中“課程設(shè)計(jì)概述”課程設(shè)計(jì)第1天按功能模塊編寫詳細(xì)設(shè)計(jì)說(shuō)明,完成報(bào)告冊(cè)中“總體設(shè)計(jì)”課程設(shè)計(jì)第2天編寫程序、調(diào)試程序課程設(shè)計(jì)第3天編寫程序、調(diào)試程序,完成報(bào)告冊(cè)中“詳細(xì)設(shè)計(jì)”課程設(shè)計(jì)第4天調(diào)試程序,完成報(bào)告冊(cè)中“調(diào)試分析過(guò)程”課程設(shè)計(jì)第5天完

7、成報(bào)告冊(cè)中“總結(jié)”、“參考文獻(xiàn)”、“課程設(shè)計(jì)評(píng)審表”部分內(nèi)容,提交課程設(shè)計(jì)報(bào)告、源程序、面試或答辯一、課程設(shè)計(jì)概述課程設(shè)計(jì)問(wèn)題描述計(jì)算機(jī)隨機(jī)生成一個(gè)各位數(shù)字不重復(fù)的四位數(shù),系統(tǒng)根據(jù)玩家輸入的數(shù)字給出提示信息: A-表示位置與數(shù)字均正確的個(gè)數(shù); B-表示數(shù)字正確但位置不正確的個(gè)數(shù)。玩家根據(jù)提示調(diào)整輸入,如果玩家輸入超過(guò)八次仍不成功,游戲自動(dòng)結(jié)束。設(shè)計(jì)要求1. 主函數(shù)實(shí)現(xiàn)正整數(shù)的隨機(jī)產(chǎn)生,主菜單的顯示(圖18.1)2. 編寫一函數(shù)實(shí)現(xiàn)幫助信息的輸出(圖18.2)3. 編寫一函數(shù)控制比較的次數(shù)和信息的輸出。當(dāng)玩家輸入次數(shù)不超過(guò)8時(shí),每次將玩家輸入的數(shù)字和隨機(jī)數(shù)依次進(jìn)行比較,如果匹配,則輸出“You

8、Win !”,否則輸出提示信息。設(shè)計(jì)目的掌握結(jié)構(gòu)化程序設(shè)計(jì)的主體思想,以自頂向下逐步求精的方法編制程序解決一些實(shí)際的問(wèn)題,為將來(lái)編寫軟件積累一些典型的案例處理經(jīng)驗(yàn)。開(kāi)發(fā)環(huán)境操作系統(tǒng):Windows7軟件環(huán)境:Microsoft Visual C+ 6.0二、總體設(shè)計(jì)(1)系統(tǒng)功能需求分析猜數(shù)字游戲軟件的總體目標(biāo)是按照特定游戲規(guī)則為用戶提供一個(gè)方便友好的游戲界面,同時(shí)給用戶提供排行榜的功能使用戶能夠按照特定的目標(biāo)提高自己的成績(jī),并且提供相應(yīng)的幫助功能。游戲規(guī)則如下。游戲軟件隨機(jī)產(chǎn)生4個(gè)數(shù)字,但不顯示,給用戶提供輸入提示符,讓用戶猜4個(gè)數(shù)字的值和位置順序。如果數(shù)字值和位置順序均正確,則猜數(shù)字成功。

9、玩家有8次猜數(shù)字的機(jī)會(huì),如果在8次之內(nèi)仍末猜出正確的數(shù)字值和數(shù)字位置順序,則提示用戶游戲失敗。一旦玩家在8次的次數(shù)限制內(nèi)猜出正確的數(shù)字值和位置順序,則贏得游戲。本游戲軟件需要實(shí)現(xiàn)以下一些基本功能。 游戲區(qū):玩家可以在游戲區(qū)逐次猜數(shù)字,系統(tǒng)給出玩家每次猜數(shù)字后的提示,包括數(shù)值、位置均正確的數(shù)字個(gè)數(shù)和數(shù)值正確但位置不正確的數(shù)字個(gè)數(shù)。 幫助:玩家通過(guò)幫助功能了解游戲規(guī)則。退出:玩家想結(jié)束并退出游戲系統(tǒng)。二、總體設(shè)計(jì)(2)系統(tǒng)總體設(shè)計(jì)框架 三、詳細(xì)設(shè)計(jì)(1)主要功能模塊 的算法設(shè)計(jì)C編譯器提供了基于ANSI標(biāo)準(zhǔn)的偽隨機(jī)數(shù)發(fā)生器函數(shù)rand()和srand(),用來(lái)生成隨機(jī)數(shù)。這二個(gè)函數(shù)的工作過(guò)程如下:

10、 srand()提供一個(gè)種子,它是一個(gè)unsigned int類型,其取值范圍從065535; 然后調(diào)用srand(),它會(huì)根據(jù)提供給srand()的種子值返回一個(gè)隨機(jī)數(shù)(在0到32767之間); 根據(jù)需要多次調(diào)用srand(),從而不間斷地得到新的隨機(jī)數(shù); 無(wú)論什么時(shí)候,都可以給srand()提供一個(gè)新的種子,從而進(jìn)一步“隨機(jī)化”srand()的輸出結(jié)果。三、詳細(xì)設(shè)計(jì)(1)主要功能模塊源程序#include #include #include void main( void ) void help(); /函數(shù)聲明 void compare(int a); /函數(shù)聲明int i,k = 0,

11、a4,b;srand( (unsigned)time( NULL ) );while (1)for(i=0;i4;i+)ai=rand()%10; if(a0 != 0)break;三、詳細(xì)設(shè)計(jì)(2)主要功能模塊 的算法設(shè)計(jì)1. 輸出游戲菜單2. 輸出游戲規(guī)則3. 比較用戶輸入數(shù)據(jù)與系統(tǒng)隨機(jī)數(shù),并產(chǎn)生提示信息4. 玩家從鍵盤輸入數(shù)據(jù)5. 比較對(duì)應(yīng)位置上的數(shù)6. 輸出游戲結(jié)果三、詳細(xì)設(shè)計(jì)(2)主要功能模塊 源程序printf(猜數(shù)字游戲:n);printf(*n);printf( 1.新游戲n); printf( 2.幫助n);printf( 3.退出n);printf(*n);printf(n

12、請(qǐng)輸入選擇:n); scanf(%d,&b); while(b!=3) switch(b) case 1:compare(a);break;case 2:help();break;default:printf(error!); scanf(%d,&b);void help()/游戲規(guī)則說(shuō)明函數(shù)printf(該游戲由程序隨機(jī)生成四個(gè)0到9的數(shù)字n游戲者有八次機(jī)會(huì)來(lái)根據(jù)系統(tǒng)提示猜測(cè)數(shù)字n);printf(nA-表示位置與數(shù)字均正確的個(gè)數(shù)nB-表示數(shù)字正確但位置不正確的個(gè)數(shù)n);void compare(int a)/比較用戶輸入數(shù)據(jù)與系統(tǒng)隨機(jī)數(shù),并產(chǎn)生提示信息int b4,i,j,k=1,A=0,

13、B=0,N=8,x;printf(請(qǐng)輸入猜測(cè)的四位數(shù):n);while(A!=4&k=N) A=0;B=0;scanf(%d,&x);/玩家從鍵盤輸入的數(shù)據(jù)while(x10000)printf(輸入不合法!n);scanf(%d,&x);for(i=3;i=0;i-)bi=x%10;x=x/10;for(i=0;i4;i+)/比較對(duì)應(yīng)位置上的數(shù)if(ai=bi) A+;for(i=0;i4;i+)for(j=0;j8) printf(游戲失敗!n);四、調(diào)試分析過(guò)程(1)調(diào)試過(guò)程出現(xiàn)的問(wèn)題及解決方法剛開(kāi)始執(zhí)行輸入函數(shù),按數(shù)字順序輸入,輸完后執(zhí)行顯示功能,數(shù)字、字母的位置顯示不對(duì),試著在其中增

14、加一些語(yǔ)句,希望能把所需結(jié)果按正常順序顯示,但暫時(shí)沒(méi)有成功,最后在老師的幫助下,所需結(jié)果能按正常順序輸出了。在前面對(duì)猜數(shù)字游 戲進(jìn)行需求分析的過(guò)程中,已經(jīng)初步明確了系統(tǒng)的主要功能模塊和用戶需求,下面將在總體設(shè)計(jì)的過(guò)程中,給出猜數(shù)字游戲的模塊結(jié)構(gòu)、流程描述以及界面布局,并使得系統(tǒng)的總體設(shè)計(jì)符合軟件工程中總體設(shè)計(jì)的基本原則。開(kāi)發(fā)與設(shè)計(jì)的總體思想: 猜數(shù)字游戲是一種大眾娛樂(lè)游戲,開(kāi)發(fā)與設(shè)計(jì)的重點(diǎn)在于游戲供玩家進(jìn)行猜數(shù)字游戲的原始數(shù)字的產(chǎn)生和用戶每次進(jìn)行猜數(shù)字操作之后的游戲提示,這兩方面的規(guī)則設(shè)計(jì)往往決定了軟件運(yùn)行的正確性和質(zhì)量。同時(shí),要謹(jǐn)記調(diào)試失敗的原因,以免下次犯同類錯(cuò)誤。四、調(diào)試分析過(guò)程(2)測(cè)

15、試數(shù)據(jù)及測(cè)試結(jié)果游戲初始畫面進(jìn)入系統(tǒng)選擇1進(jìn)行游戲,隨機(jī)輸入4個(gè)不同的數(shù)字輸入3個(gè)不同的數(shù)則會(huì)提示輸入有誤選擇2系統(tǒng)幫助界面五、總結(jié)設(shè)計(jì)用到的知識(shí)點(diǎn)C編譯器提供了基于ANSI標(biāo)準(zhǔn)的偽隨機(jī)數(shù)發(fā)生器函數(shù)rand()和srand(),用來(lái)生成隨機(jī)數(shù)。這二個(gè)函數(shù)的工作過(guò)程如下:srand()提供一個(gè)種子,它是一個(gè)unsigned int類型,其取值范圍從065535; 然后調(diào)用rand(),它會(huì)根據(jù)提供給srand()的種子值返回一個(gè)隨機(jī)數(shù)(在0到32767之間); 根據(jù)需要多次調(diào)用rand(),從而不間斷地得到新的隨機(jī)數(shù); 無(wú)論什么時(shí)候,都可以給srand()提供一個(gè)新的種子,從而進(jìn)一步“隨機(jī)化”r

16、and()的輸出結(jié)果。收獲與體會(huì)在進(jìn)行課程設(shè)計(jì)之前幾天,不知從何入手,一臉茫然。為什么呢?因?yàn)槲覀兿胱约鹤约鹤龀鰜?lái)而不參考任何資料,以為這樣才可體現(xiàn)我們的智慧和能力,其實(shí)這是大錯(cuò)特錯(cuò)的。當(dāng)然也不是一味強(qiáng)調(diào)自己動(dòng)腦自己做出來(lái)不好,從開(kāi)發(fā)方面角度來(lái)說(shuō)是可以的,有些東西也并不是一味的照搬照抄。抱著這樣的態(tài)度迷茫了三四天只想出了一丁點(diǎn)大至結(jié)構(gòu)。最后決定上網(wǎng)找資料,不查不知道,一查大吃一驚,不但自己的想法網(wǎng)上比比皆是,比自己的想法更完美更合理的多得看都看不完。此時(shí)真是自愧不如,如早從網(wǎng)上借鑒,集大家之所成,加上自己的修改完善,早已做出了更好的系統(tǒng)結(jié)結(jié)構(gòu)和想法了?,F(xiàn)在才知道,一個(gè)人的智慧敵不過(guò)千萬(wàn)人智慧的

17、集成,能借鑒的盡量借鑒,然后再修改完善,增加自己所需的功能,做出自己的特色。偉大的物理學(xué)家牛頓不也說(shuō)過(guò)他之所以成功是站在偉人的肩上嗎?完成設(shè)計(jì)后,我覺(jué)得收獲不少,首先是自己首次應(yīng)用所學(xué)知識(shí)做出了這個(gè)游戲系統(tǒng),以前從未做過(guò)這樣大(這是對(duì)我而言,在專業(yè)人仕看來(lái)是小菜一碟)的程序,多少心里有點(diǎn)甜美的感覺(jué);而收獲更大的是讓我學(xué)到了怎樣和他人合作完成一件任務(wù),以及在完成的過(guò)程中如何溝通。不足與努力方向完成設(shè)計(jì)是在一定時(shí)間內(nèi)完成的,在完成這個(gè)設(shè)計(jì)時(shí),我們做得顯然有一些緊迫,我想是沒(méi)合理安排好時(shí)間和開(kāi)始態(tài)度不正確所致,做守完后我覺(jué)得合理安排時(shí)間是非常重要的否則可能時(shí)間已到而還無(wú)法完成或完成得倉(cāng)促,應(yīng)合理安排時(shí)間給各個(gè)環(huán)節(jié)。六、參考文獻(xiàn)參考書籍及參考論文與網(wǎng)址C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答 蔣清明 人民郵電出版社 C語(yǔ)言程序設(shè)計(jì)案例教程 張基溫 清華大學(xué)出版社課程設(shè)計(jì)與系統(tǒng)開(kāi)發(fā)案例 伍俊良 清華大學(xué)出版社 C程序設(shè)計(jì) (第三版) 譚浩強(qiáng) 清華大學(xué)出版社 C語(yǔ)言程序設(shè)計(jì) 蔣清明 人民郵電出版社 課程設(shè)計(jì)成績(jī)?cè)u(píng)審表姓名楊晨學(xué)號(hào)1303090190班級(jí)機(jī)械1310班設(shè)計(jì)題目猜數(shù)字游戲作品描述計(jì)算機(jī)隨機(jī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論