版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語言深入編程</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題目 心算如電 小游戲______________________</p><p> ___________________________________________________<
2、;/p><p><b> 目 錄</b></p><p> 一、序言..........................................04</p><p> 二、課程設(shè)計(jì)題目..................................05</p><p> 三、設(shè)計(jì)算法與思路......
3、..........................05</p><p> 四、采用的變量和數(shù)組數(shù)據(jù)..........................06</p><p> 五、流程圖........................................08</p><p> 六、源代碼...............................
4、.........12</p><p> 七、調(diào)試分析......................................17</p><p> 八、個(gè)人課程設(shè)計(jì)心得體會(huì)..........................20</p><p> 九、致謝..........................................21</p
5、><p> 十、參考文獻(xiàn)......................................21</p><p> 教師評(píng)語及成績(jī)?cè)u(píng)定表..............................22</p><p><b> 序言</b></p><p> 進(jìn)入21世紀(jì)以來,社會(huì)信息化進(jìn)程不斷加速,信息化范
6、圍和個(gè)行個(gè)業(yè)信息化的程度都是空前的且不斷的快速推進(jìn)。</p><p> C語言功能強(qiáng)大,具有豐富靈活的控制與數(shù)據(jù)結(jié)構(gòu)、簡(jiǎn)潔而高效的表達(dá)語句、清晰的程序結(jié)構(gòu)、良好的移植性、較小的空間開銷等優(yōu)點(diǎn),已被廣泛應(yīng)用于將系統(tǒng)軟件與應(yīng)用軟件的開發(fā)中。</p><p> C語言是目前流行的通用程序設(shè)計(jì)語言,之所以成為許多計(jì)算機(jī)專業(yè)人員和計(jì)算機(jī)愛好者學(xué)習(xí)程序設(shè)計(jì)的首選入門語言,除C語言的眾多優(yōu)點(diǎn)外,最主
7、要的還是C語言的實(shí)用性。</p><p> C語言是程序設(shè)計(jì)的工具,因此學(xué)會(huì)使用C語言并不是唯一目的,掌握計(jì)算機(jī)處理問題的思維方式和程序設(shè)計(jì)的基本方法,用以解決實(shí)際問題更為重要。</p><p> 而課程設(shè)計(jì)是重要環(huán)綜合性較強(qiáng)的實(shí)踐環(huán)節(jié),它對(duì)幫助我們學(xué)生全面牢固地掌握課堂教學(xué)內(nèi)容、培養(yǎng)我們學(xué)生的實(shí)踐和實(shí)際動(dòng)手能力、提高我們學(xué)生全面素質(zhì)具有重要的意義。</p><p&
8、gt; 通過課程設(shè)計(jì),提高學(xué)生在實(shí)際設(shè)計(jì)操作中系統(tǒng)分析、結(jié)構(gòu)確定、算法選擇、數(shù)學(xué)建模和信息加工的能力以及C/C++語言程序設(shè)計(jì)能力;同時(shí)培養(yǎng)我們學(xué)生編寫程序設(shè)計(jì)文檔的能力。</p><p> 由于本人水平有限,加上課程設(shè)計(jì)的時(shí)間緊迫,程序仍有很多不足之處,邏輯還不夠嚴(yán)密,在算法設(shè)計(jì)上還有待改善.。希望老師見諒。我會(huì)在今后的學(xué)習(xí),不斷改進(jìn)改善程序。 </p><p><b>
9、 二、課程設(shè)計(jì)題目</b></p><p> 為小學(xué)生設(shè)計(jì)“心算如電”的競(jìng)技游戲,考驗(yàn)學(xué)生的加法運(yùn)算能力,提高學(xué)生的心算能力和心理素質(zhì),力求達(dá)到快、準(zhǔn)。</p><p><b> 要求:</b></p><p> 游戲共兩關(guān),第一關(guān),每個(gè)加數(shù)范圍從0~9;第二關(guān)每個(gè)加數(shù)范圍從0~99;</p><p>
10、 必須連續(xù)答對(duì)10道題,才算通關(guān);錯(cuò)一題,則歸零;</p><p> 答題期間,不給出已答題數(shù),由學(xué)生自動(dòng)選擇退出與否,若選擇退出,則顯示答題總數(shù)和答對(duì)總題數(shù),連續(xù)答對(duì)10題者,外加輸出星號(hào)三角行;</p><p> 若失敗則可重新開始,也可繼續(xù)闖第二關(guān);</p><p> 第二關(guān),通關(guān)則輸出菱形。</p><p> ?。ㄗ⑨專簽榱吮?/p>
11、于調(diào)試可采取答對(duì)三題過一關(guān)的方法進(jìn)行程序編寫。)</p><p><b> 設(shè)計(jì)算法與思路</b></p><p> 該程序是針對(duì)小學(xué)生設(shè)計(jì)的簡(jiǎn)單游戲,共分兩關(guān),(初步)決定調(diào)用兩個(gè)函數(shù),由系統(tǒng)自動(dòng)出題,所以采用rand()提取兩個(gè)隨機(jī)數(shù),要答對(duì)10題才可以過關(guān),所以可采用先執(zhí)行后判斷的循環(huán)控制語句do-while來實(shí)現(xiàn)過關(guān)與否,星號(hào)三角形和菱形可再定義一個(gè)函數(shù)采
12、用for循環(huán)結(jié)構(gòu)輸出!</p><p> 我的具體的程序設(shè)計(jì)思路是這樣的:</p><p> 依題注釋,采用宏定義,定義T=3,代替10,減化程序調(diào)試過程</p><p> 定義一個(gè)函數(shù)m()來實(shí)現(xiàn)每一關(guān)的出題和答題,用rand()函數(shù)隨機(jī)提取兩個(gè)在定義范圍內(nèi)的數(shù),賦值于變量first和變量seconddid即是兩個(gè)加數(shù)。</p><p&g
13、t; 采用if語句判斷答題正確與否,定義變量did和和ok,采用自加運(yùn)算符(++)在函數(shù)m()中全程跟蹤已答題數(shù)和答題正確數(shù)。</p><p> 在函數(shù)m()中采用先執(zhí)行后判斷的循環(huán)控制語句do-while實(shí)現(xiàn)局部控制,用字符來實(shí)現(xiàn),接著再使用if語句判斷是否輸出星號(hào)三角形。</p><p> 定義一個(gè)函數(shù)m1(),采用函數(shù)嵌套調(diào)用來輸出星號(hào)三角形,星號(hào)三角形用雙重for循環(huán)結(jié)構(gòu)來實(shí)
14、現(xiàn)輸出。</p><p> 第一關(guān)與第二關(guān)類似,即需再定義兩個(gè)函數(shù)n()和n2()</p><p> 主函數(shù)void()先輸出游戲的一般信息“心算入電”,用getchar()函數(shù)來占用一個(gè)回車鍵;調(diào)用函數(shù)m()實(shí)現(xiàn)第一關(guān)游戲,(用if語句鏈接是否進(jìn)去第二關(guān)游戲),調(diào)用函數(shù)n()來實(shí)現(xiàn)第二關(guān)游戲。</p><p><b> 程序思路簡(jiǎn)述完畢。</
15、b></p><p> 四、采用的變量和數(shù)據(jù)</p><p><b> 五、流程圖</b></p><p><b> 流程圖如:</b></p><p><b> 六、源代碼</b></p><p> #include<stdio.
16、h></p><p> #include<stdlib.h></p><p> #include<time.h></p><p> #define T 3</p><p> #define M 10</p><p> #define N 10</p><p&g
17、t;<b> void m1()</b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> for(i=1;i<=3;i++)</p><p><b> {</b></p>
18、;<p> for(j=1;j<=20-2*i;j++)</p><p> printf("%c",' ');</p><p> for(j=1;j<=2*i-1;j++)</p><p> printf("%2c",'*');</p><p
19、> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> void m()</b></p><p><b> {</b></p>
20、<p> int ok=0,did=0,first,second,answer,correct;</p><p> char contin='y';</p><p><b> do{ </b></p><p> srand((unsigned)time(NULL));</p><p>
21、 first=rand()%N;</p><p> second=rand()%M;</p><p> printf("%d +%d =? ",first,second);</p><p> scanf("%d",&answer);</p><p><b> did++;&l
22、t;/b></p><p> correct=first+second;</p><p> if(answer==correct)</p><p><b> {</b></p><p> printf("好樣的!答對(duì)了!\n");</p><p><b>
23、; ok++;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("NO! 正確答案是 %d\n",correct);</p><p> printf("\n");&
24、lt;/p><p> printf("繼續(xù)答題?(y,n) ");</p><p> scanf("%s",&contin);</p><p> if(contin=='Y')</p><p> contin='y';</p><p>
25、; } while(contin=='y');</p><p> printf("做了%d道題\n",did);</p><p> printf("答對(duì)%d道題",ok);</p><p> printf("\n");</p><p> if(ok>=
26、T&&ok%did==0)</p><p><b> m1();</b></p><p><b> else </b></p><p> printf("請(qǐng)重新開始\n");</p><p> printf("\n");</p&g
27、t;<p> getchar();</p><p><b> }</b></p><p><b> void n2()</b></p><p><b> {</b></p><p><b> int i,j;</b></p&g
28、t;<p> for(i=1;i<=4;i++)</p><p><b> {</b></p><p> for(j=1;j<=20-2*i;j++)</p><p> printf("%c",' ');</p><p> for(j=1;j<
29、=2*i-1;j++)</p><p> printf("%2c",'*');</p><p> printf("\n");</p><p><b> }</b></p><p> for(i=3;i>=1;i--)</p><p&
30、gt;<b> {</b></p><p> for(j=1;j<=20-2*i;j++)</p><p> printf("%c",' ');</p><p> for(j=1;j<=2*i-1;j++)</p><p> printf("%2c&qu
31、ot;,'*');</p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> void n()</b></p><p>
32、<b> {</b></p><p> int ok=0,did=0,three,four,answer1,correct1;</p><p> char contin='y';</p><p><b> do{</b></p><p> srand((unsigned)t
33、ime(NULL));</p><p> three=rand()%(10*M);</p><p> four=rand()%(10*N);</p><p> printf("%d + %d =? ",three,four);</p><p> scanf("%d",&answer1)
34、;</p><p><b> did++;</b></p><p> correct1=three+four;</p><p> if(answer1==correct1)</p><p><b> {</b></p><p> printf("真棒!答對(duì)
35、了\n");</p><p><b> ok++;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("NO!正確答案是%d",correct1);</p>
36、<p> printf("\n");</p><p> printf("繼續(xù)答題?(y,n): ");</p><p> scanf("%s",&contin);</p><p> if(contin=='Y')</p><p> c
37、ontin='y';</p><p> }while(contin=='y');</p><p> printf("一共做了%d道題 答對(duì)%d道題\n",did,ok);</p><p> if(ok>=T&&ok%did==0)</p><p><b
38、> { </b></p><p> printf("恭喜你!成功了!\n");</p><p><b> n2();</b></p><p><b> }</b></p><p><b> }</b></p><
39、;p> void main()</p><p><b> {</b></p><p><b> char go;</b></p><p> printf("歡迎使用 心算如電 益智游戲 按Enter鍵開始\n");</p><p> getchar();</
40、p><p><b> m();</b></p><p> printf("進(jìn)入下一關(guān),你準(zhǔn)備好了嗎?(go or not) ");</p><p> scanf("%s",&go);</p><p> if(go=='g')</p>&l
41、t;p><b> n();</b></p><p> printf("Game Over!!!\n");</p><p> getchar();</p><p><b> }</b></p><p><b> 七、調(diào)試分析</b></p
42、><p> 此程序在“C與C++程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)系統(tǒng)2008.10”與“VC6.0”上調(diào)試皆通過,其結(jié)果如下:</p><p><b> 1、主界面 </b></p><p><b> 2、游戲開始</b></p><p><b> 3、第一關(guān)失敗</b></p&g
43、t;<p><b> 4、第一關(guān)成功</b></p><p><b> 5、闖第二關(guān)</b></p><p><b> 6、第二關(guān)功成</b></p><p><b> 7、第二關(guān)失敗</b></p><p> 八、個(gè)人課程設(shè)計(jì)心得
44、體會(huì)</p><p> 回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,從老師出題,到自己選題,然后確定題目直到完成整個(gè)編程,從理論到實(shí)踐,在整整兩個(gè)多星期的日子里,我沉浸在編程的樂趣里,不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。</p><p> 通過本次論文設(shè)計(jì),我初步學(xué)會(huì)了論文設(shè)計(jì)的基本方法,學(xué)會(huì)了怎樣去借鑒別人的方法和經(jīng)驗(yàn),知道如何去查找資料和整合處理這些資料
45、的能力,這為以后的大學(xué)畢業(yè)設(shè)計(jì)論文打下了一個(gè)初步的基礎(chǔ)使我收益最大的是享受到了一種成功的喜悅</p><p> 通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)。</p><p> 同時(shí),我也感到了想要學(xué)好C語言還有很長(zhǎng)一段路要走,要想真正掌握好編程技術(shù)一定要
46、付出更多的努力,當(dāng)然基本的C語言知識(shí)一定要學(xué)好,而不是只知道皮毛而已。對(duì)于今后的學(xué)習(xí)我覺得要做好一下幾點(diǎn):</p><p> 1.加深對(duì)課堂講授內(nèi)容的理解</p><p> 課堂上要老師講授許多關(guān)于c語言的語法規(guī)則,聽起來有點(diǎn)枯燥無味,也不容易記住,死記硬背是不可取的。課后通過多次上機(jī)練習(xí),加深對(duì)它的理解,在理解的基礎(chǔ)上就會(huì)自然而然地掌握c語言的語法規(guī)定;</p><
47、;p> 2.熟悉程序開發(fā)環(huán)境</p><p> 一個(gè)c語言程序從編輯、編譯、連接到運(yùn)行,都要在一定的外部操作環(huán)境下才能進(jìn)行; </p><p> 3.學(xué)會(huì)上機(jī)調(diào)試程序,學(xué)會(huì)自己找出問題的關(guān)鍵并解決;</p><p> 因?yàn)槌绦蚓帉懲旰?,決不意味著萬事大吉。往往自己認(rèn)為萬無一失的程序,實(shí)際上機(jī)運(yùn)行時(shí)可能不斷出現(xiàn)麻煩。</p><p&g
48、t; 最后,我覺得課程設(shè)計(jì)需要一定的耐心才能做好。堅(jiān)持就是勝利!我們絕不能中途放棄,要用心做好每一個(gè)設(shè)計(jì)。 </p><p><b> 九、致謝</b></p><p> 能做好這個(gè)程序設(shè)計(jì)離不開*老師的諄諄教導(dǎo),丁老師這一個(gè)學(xué)期的教導(dǎo),不僅讓我對(duì)C語言有了更深入的了解,自己完成此次的課程設(shè)計(jì),同時(shí),也讓我更深刻的明白了一些道理。丁老師嚴(yán)謹(jǐn)求實(shí)的教學(xué)態(tài)度、強(qiáng)烈的
49、時(shí)間觀念都對(duì)我產(chǎn)生了重大影響,這無疑令我在今后的編程生涯中走的更快、更遠(yuǎn)。衷心感謝丁老師給予了我這么多幫助。</p><p><b> 十、參考文獻(xiàn)</b></p><p> 1.C語言程序設(shè)計(jì)----丁峻嶺</p><p> 2.高級(jí)語言C++程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)(第二版)周玉龍、劉璟</p><p><b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)-數(shù)組游戲
- 掃雷小游戲課程設(shè)計(jì)
- vb課程設(shè)計(jì)-- 基于vb語言的賽車小游戲
- c語言課程設(shè)計(jì)報(bào)告---游戲設(shè)計(jì)
- c語言課程設(shè)計(jì)----猜字游戲
- c語言課程設(shè)計(jì)報(bào)告-游戲2048
- c語言課程設(shè)計(jì)--推箱子游戲
- c語言課程設(shè)計(jì)--推箱子游戲
- c語言課程設(shè)計(jì)--猜數(shù)游戲
- c語言課程設(shè)計(jì)--猜數(shù)字游戲
- c語言課程設(shè)計(jì)--猜數(shù)字游戲
- c++課程設(shè)計(jì)--gui小游戲的設(shè)計(jì)與實(shí)現(xiàn)
- 《猜拳小游戲》課程設(shè)計(jì)報(bào)告
- vb課程設(shè)計(jì)--制作小游戲
- c語言課程設(shè)計(jì)--- 21點(diǎn)游戲設(shè)計(jì)
- c語言課程設(shè)計(jì)---黑白棋游戲
- c語言課程設(shè)計(jì)---猜數(shù)字游戲報(bào)告
- c語言課程設(shè)計(jì)--黑白棋游戲
- c語言貪吃蛇游戲課程設(shè)計(jì)
- 擲骰子游戲-c語言程序課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論