c語言小游戲課程設計_第1頁
已閱讀1頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  C語言深入編程</b></p><p><b>  課程設計報告</b></p><p>  題目 心算如電 小游戲______________________</p><p>  ___________________________________________________<

2、;/p><p><b>  目 錄</b></p><p>  一、序言..........................................04</p><p>  二、課程設計題目..................................05</p><p>  三、設計算法與思路......

3、..........................05</p><p>  四、采用的變量和數(shù)組數(shù)據(jù)..........................06</p><p>  五、流程圖........................................08</p><p>  六、源代碼...............................

4、.........12</p><p>  七、調(diào)試分析......................................17</p><p>  八、個人課程設計心得體會..........................20</p><p>  九、致謝..........................................21</p

5、><p>  十、參考文獻......................................21</p><p>  教師評語及成績評定表..............................22</p><p><b>  序言</b></p><p>  進入21世紀以來,社會信息化進程不斷加速,信息化范

6、圍和個行個業(yè)信息化的程度都是空前的且不斷的快速推進。</p><p>  C語言功能強大,具有豐富靈活的控制與數(shù)據(jù)結(jié)構(gòu)、簡潔而高效的表達語句、清晰的程序結(jié)構(gòu)、良好的移植性、較小的空間開銷等優(yōu)點,已被廣泛應用于將系統(tǒng)軟件與應用軟件的開發(fā)中。</p><p>  C語言是目前流行的通用程序設計語言,之所以成為許多計算機專業(yè)人員和計算機愛好者學習程序設計的首選入門語言,除C語言的眾多優(yōu)點外,最主

7、要的還是C語言的實用性。</p><p>  C語言是程序設計的工具,因此學會使用C語言并不是唯一目的,掌握計算機處理問題的思維方式和程序設計的基本方法,用以解決實際問題更為重要。</p><p>  而課程設計是重要環(huán)綜合性較強的實踐環(huán)節(jié),它對幫助我們學生全面牢固地掌握課堂教學內(nèi)容、培養(yǎng)我們學生的實踐和實際動手能力、提高我們學生全面素質(zhì)具有重要的意義。</p><p&

8、gt;  通過課程設計,提高學生在實際設計操作中系統(tǒng)分析、結(jié)構(gòu)確定、算法選擇、數(shù)學建模和信息加工的能力以及C/C++語言程序設計能力;同時培養(yǎng)我們學生編寫程序設計文檔的能力。</p><p>  由于本人水平有限,加上課程設計的時間緊迫,程序仍有很多不足之處,邏輯還不夠嚴密,在算法設計上還有待改善.。希望老師見諒。我會在今后的學習,不斷改進改善程序。 </p><p><b> 

9、 二、課程設計題目</b></p><p>  為小學生設計“心算如電”的競技游戲,考驗學生的加法運算能力,提高學生的心算能力和心理素質(zhì),力求達到快、準。</p><p><b>  要求:</b></p><p>  游戲共兩關(guān),第一關(guān),每個加數(shù)范圍從0~9;第二關(guān)每個加數(shù)范圍從0~99;</p><p>

10、  必須連續(xù)答對10道題,才算通關(guān);錯一題,則歸零;</p><p>  答題期間,不給出已答題數(shù),由學生自動選擇退出與否,若選擇退出,則顯示答題總數(shù)和答對總題數(shù),連續(xù)答對10題者,外加輸出星號三角行;</p><p>  若失敗則可重新開始,也可繼續(xù)闖第二關(guān);</p><p>  第二關(guān),通關(guān)則輸出菱形。</p><p>  (注釋:為了便

11、于調(diào)試可采取答對三題過一關(guān)的方法進行程序編寫。)</p><p><b>  設計算法與思路</b></p><p>  該程序是針對小學生設計的簡單游戲,共分兩關(guān),(初步)決定調(diào)用兩個函數(shù),由系統(tǒng)自動出題,所以采用rand()提取兩個隨機數(shù),要答對10題才可以過關(guān),所以可采用先執(zhí)行后判斷的循環(huán)控制語句do-while來實現(xiàn)過關(guān)與否,星號三角形和菱形可再定義一個函數(shù)采

12、用for循環(huán)結(jié)構(gòu)輸出!</p><p>  我的具體的程序設計思路是這樣的:</p><p>  依題注釋,采用宏定義,定義T=3,代替10,減化程序調(diào)試過程</p><p>  定義一個函數(shù)m()來實現(xiàn)每一關(guān)的出題和答題,用rand()函數(shù)隨機提取兩個在定義范圍內(nèi)的數(shù),賦值于變量first和變量seconddid即是兩個加數(shù)。</p><p&g

13、t;  采用if語句判斷答題正確與否,定義變量did和和ok,采用自加運算符(++)在函數(shù)m()中全程跟蹤已答題數(shù)和答題正確數(shù)。</p><p>  在函數(shù)m()中采用先執(zhí)行后判斷的循環(huán)控制語句do-while實現(xiàn)局部控制,用字符來實現(xiàn),接著再使用if語句判斷是否輸出星號三角形。</p><p>  定義一個函數(shù)m1(),采用函數(shù)嵌套調(diào)用來輸出星號三角形,星號三角形用雙重for循環(huán)結(jié)構(gòu)來實

14、現(xiàn)輸出。</p><p>  第一關(guān)與第二關(guān)類似,即需再定義兩個函數(shù)n()和n2()</p><p>  主函數(shù)void()先輸出游戲的一般信息“心算入電”,用getchar()函數(shù)來占用一個回車鍵;調(diào)用函數(shù)m()實現(xiàn)第一關(guān)游戲,(用if語句鏈接是否進去第二關(guān)游戲),調(diào)用函數(shù)n()來實現(xiàn)第二關(guān)游戲。</p><p><b>  程序思路簡述完畢。</

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("好樣的!答對了!\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("答對%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("請重新開始\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("真棒!答對

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道題 答對%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("進入下一關(guā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++程序設計學習與實驗系統(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>  八、個人課程設計心得

44、體會</p><p>  回顧起此次課程設計,至今我仍感慨頗多,從老師出題,到自己選題,然后確定題目直到完成整個編程,從理論到實踐,在整整兩個多星期的日子里,我沉浸在編程的樂趣里,不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。</p><p>  通過本次論文設計,我初步學會了論文設計的基本方法,學會了怎樣去借鑒別人的方法和經(jīng)驗,知道如何去查找資料和整合處理這些資料

45、的能力,這為以后的大學畢業(yè)設計論文打下了一個初步的基礎使我收益最大的是享受到了一種成功的喜悅</p><p>  通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動。</p><p>  同時,我也感到了想要學好C語言還有很長一段路要走,要想真正掌握好編程技術(shù)一定要

46、付出更多的努力,當然基本的C語言知識一定要學好,而不是只知道皮毛而已。對于今后的學習我覺得要做好一下幾點:</p><p>  1.加深對課堂講授內(nèi)容的理解</p><p>  課堂上要老師講授許多關(guān)于c語言的語法規(guī)則,聽起來有點枯燥無味,也不容易記住,死記硬背是不可取的。課后通過多次上機練習,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規(guī)定;</p><

47、;p>  2.熟悉程序開發(fā)環(huán)境</p><p>  一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環(huán)境下才能進行; </p><p>  3.學會上機調(diào)試程序,學會自己找出問題的關(guān)鍵并解決;</p><p>  因為程序編寫完后,決不意味著萬事大吉。往往自己認為萬無一失的程序,實際上機運行時可能不斷出現(xiàn)麻煩。</p><p&g

48、t;  最后,我覺得課程設計需要一定的耐心才能做好。堅持就是勝利!我們絕不能中途放棄,要用心做好每一個設計。 </p><p><b>  九、致謝</b></p><p>  能做好這個程序設計離不開*老師的諄諄教導,丁老師這一個學期的教導,不僅讓我對C語言有了更深入的了解,自己完成此次的課程設計,同時,也讓我更深刻的明白了一些道理。丁老師嚴謹求實的教學態(tài)度、強烈的

49、時間觀念都對我產(chǎn)生了重大影響,這無疑令我在今后的編程生涯中走的更快、更遠。衷心感謝丁老師給予了我這么多幫助。</p><p><b>  十、參考文獻</b></p><p>  1.C語言程序設計----丁峻嶺</p><p>  2.高級語言C++程序設計實驗指導(第二版)周玉龍、劉璟</p><p><b&g

溫馨提示

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

評論

0/150

提交評論