c語言課程設計--猜數(shù)字游戲_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 C語言程序設計 </p><p>  課題名稱 猜 數(shù) 字 游 戲 </p><p>  專 業(yè) 機械設計及其自造化 </p><p>  班 級

2、 </p><p>  學 號 </p><p>  姓 名 </p><p>  指導教師 </p><p>  2 0 1 2年 6 月 2 2 日<

3、/p><p>  設計課題四:猜數(shù)字游戲</p><p><b>  一、問題描述:</b></p><p>  該游戲可以由程序隨機產(chǎn)生或由用戶輸入四個0到9之間的數(shù)字,且不重復。玩游戲者通過游戲提示輸入八次來匹配上面所輸入的數(shù)字。A表示位置正確且數(shù)字正確,B表示數(shù)字正確而位置不正確。</p><p><b> 

4、 二、功能要求:</b></p><p>  1、本游戲顯示這樣的菜單:</p><p><b>  隨機產(chǎn)生數(shù)據(jù)</b></p><p><b>  用戶輸入數(shù)據(jù)</b></p><p><b>  退出游戲</b></p><p>  2

5、、游戲成功與否都能返回主菜單</p><p><b>  三、算法提示:</b></p><p><b>  數(shù)據(jù)結(jié)構:數(shù)組</b></p><p>  用簡單的程序設計方法</p><p><b>  四、測試數(shù)據(jù):</b></p><p>  測試數(shù)

6、據(jù): 3792</p><p>  第一次輸入: 1234</p><p><b>  0A2B</b></p><p>  第二次輸入: 5678</p><p><b>  0A1B</b></p><p>  第三次輸入: 0867</p>&

7、lt;p><b>  0A1B</b></p><p>  第四次輸入: 9786</p><p><b>  1A1B</b></p><p>  第五次輸入: 1794</p><p><b>  2A0B</b></p><p>  第六

8、次輸入: 2793</p><p><b>  2A2B</b></p><p>  第七次輸入: 3792</p><p><b>  4A0B</b></p><p><b>  游戲過關!??!</b></p><p><b>  五、

9、其它:</b></p><p>  對該系統(tǒng)有興趣的同學可以在實現(xiàn)系統(tǒng)基本功能后,完善系統(tǒng)的其它功能,如:破記錄功能,若你所匹配的次數(shù)小于紀錄保持者,則為破紀錄。</p><p><b>  目錄</b></p><p><b>  第一章 緒論1</b></p><p>  第一節(jié)

10、項目背景1</p><p>  第二節(jié) 本課題所做的工作2</p><p><b>  第二章 需求分析</b></p><p>  第一節(jié) 用戶需求分析…………………………………………………………...3</p><p>  第二節(jié) 開發(fā)環(huán)境分析…………………………………………………………...4</p

11、><p>  第三章 程序設計5</p><p>  第一節(jié) 程序的功能5</p><p>  第二節(jié) 輸入輸出的要求5</p><p>  第三節(jié) 程序模塊6</p><p>  第一條 模塊組成6</p><p>  第二條 層次結(jié)構8</p><p>  第

12、三條 模塊調(diào)用9</p><p><b>  第四章 分析10</b></p><p>  第一節(jié) 模塊解釋與功能10</p><p><b>  第五章 調(diào)試14</b></p><p>  第一節(jié) 菜單測試14</p><p>  第二節(jié) 游戲測試16<

13、/p><p>  第一條 在自定義中16</p><p>  第二條 在隨機游戲中19</p><p><b>  第六章 總結(jié)21</b></p><p><b>  第七章 附錄23</b></p><p>  第一節(jié) 附錄A 源程序23</p>&

14、lt;p>  第二節(jié) 附錄B 參考文獻32</p><p>  課程設計評分表............................................33</p><p><b>  緒論</b></p><p><b>  項目背景</b></p><p>  C語言一共

15、有32個關鍵字,9種控制語句,程序書寫形式自由,主要用小寫字母表示。它把高級語言的基本結(jié)構和語句與低級語言的實用性結(jié)合起來。 C語言可以像匯編語言一樣對位、字節(jié)、和地址進行操作,而這三者是計算機最基本的工作單元。并且它功能豐富,表達能力強,程序執(zhí)行效率高,可移植性好;C語言既有高級計算機程序設計語言的特點,同時又具有部分匯編語言的特點,因而C語言具有較強的系統(tǒng)處理能力。通過C語言函數(shù)結(jié)構可以方便的實現(xiàn)程序的模塊化;在C語言的基礎上發(fā)展起

16、來的面向?qū)ο蟪绦蛟O計語言如C++,java,c#等于C語言有許多的共同特征,掌握C語言對學習進而應用這些面向?qū)ο蟮某绦蛟O計語言有極大的幫助。因為其獨特的語言機制在計算機科學領域中得到了廣泛的應用。目前,大部分工科專業(yè)的計算機程序語言都是C語言,主要學習面向過程的程序設計方法。</p><p>  課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體

17、訓練和考察過程.隨著科學技術發(fā)展的日新日異,當今計算機應用在是生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發(fā)技術十分重要的。而C語言課程設計是綜合性比較強的一門設計課程,它考察了學生對C語言的掌握及運用情況。有助于提高學生的分析,理解及動手實踐能力。是計算機的基礎課程。本題目運用了結(jié)構體變量的定義及初始化,for,do-while循環(huán),if,switch-case語句,文件打開,文件保存及其復合使用。</p&

18、gt;<p><b>  本課題所做的工作</b></p><p>  本課題設計一個猜數(shù)字游戲,用戶根據(jù)自己的愛好與興趣進行隨機游戲與自定義游戲,如果用戶想自定義一個數(shù)字來猜,可以由用戶自己進行輸入,如果想挑戰(zhàn)高難度,用戶可以猜測由電腦產(chǎn)生的一個隨機數(shù),具體工作有:系統(tǒng)自動產(chǎn)生一個隨機數(shù)或用戶自己定義一個隨機數(shù),制作游戲主菜單,制作游戲繼續(xù)菜單,設計游戲程序,設計友好的界面提

19、示與幫助。</p><p>  本課程設計分為六個章節(jié),每個章節(jié)為課題展開,重程序的需求分析,程序總體設計,程序設計等逐步向老師介紹,說明本課題。還提供了源程序供老師參考。 </p><p><b>  課程設計的任務:</b></p><p>  根據(jù)所選題目,完成課程設計的分析、設計和編碼,寫出課程設計報告。</p><

20、p>  (1)掌握Java的語言規(guī)范,面向?qū)ο蟮暮诵母拍詈吞匦裕?lt;/p><p>  (2)掌握Java的編程技術,包括異常處理,圖形界面設計,多線程,網(wǎng)絡通信程序等;</p><p>  (3)掌握Java應用軟件的開發(fā)環(huán)境和開發(fā)過程;</p><p>  (4)掌握面向?qū)ο蟮乃枷牒统绦蛟O計方法。</p><p>  關鍵詞:猜數(shù)字游

21、戲,JAVA編程,課程設計第二章 需求分析</p><p>  本程序為猜數(shù)字游戲,用戶可以根據(jù)自己的愛好與興趣進行隨機游戲與自定義游戲,如果用戶想自定義一個數(shù)字來猜,可以由用戶自己進行輸入,如果想挑戰(zhàn)高難度,用戶可以猜測由電腦產(chǎn)生的一個隨機數(shù);</p><p>  每個游戲者都想在自己游戲結(jié)束時看到自己的得分情況,因此需要對游戲結(jié)果進行打分;</p><p>  

22、游戲者在游戲時,可能想到在任意時候都可以退出游戲,因此,無論游戲進行到任何階段,都能夠返回到主菜單或退出游戲;</p><p>  在退出游戲之前,如果游戲者要再次進行挑戰(zhàn),應該設置一個提示游戲繼續(xù)提示模塊;</p><p>  為了能夠更好的迎合游戲者,界面設置要和諧,要能給用戶有足夠的提示,因此,系統(tǒng)菜單應該包括游戲開始,游戲退出,游戲說明,顯示分數(shù)四個部分。</p>&

23、lt;p>  第一節(jié) 用戶需求分析</p><p>  猜數(shù)字(又稱 Bulls and Cows )是一種大概于20世紀中期興起于英國的益智類小游戲。一般由兩個人玩,也可以由一個人和電腦玩,在紙上、在網(wǎng)上都可以玩。這種游戲規(guī)則簡單,但可以考驗人的嚴謹和耐心。 通常由兩個人玩,一方出數(shù)字,一方猜。出數(shù)字的人要想好一個沒有重復數(shù)字的4位數(shù),不能讓猜的人知道。猜的人就可以開始猜。每猜一個數(shù)字,出數(shù)者

24、就要根據(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)為止。</p><p>  設計一個猜數(shù)字游戲程序,

25、要求具體如下特性: (1) 趣味性:要求游戲內(nèi)容豐富多彩,語言風趣幽默。 (2) 大眾性:要求游戲界面操作簡單,游戲規(guī)則簡單易懂。 (3) 合理性:游戲設計嚴謹,有條理,具體需求如下 ① 輸入任意一個數(shù)字。數(shù)字的要求是 1—100 的自然數(shù)即可。 ② 系統(tǒng)對您輸入的數(shù)字進行判斷。 如果玩家輸入的數(shù)字與計算機隨機生成數(shù)相比較,輸入的數(shù)字比隨機生成數(shù) 小.系統(tǒng)將提示您,數(shù)字太小請您重新輸入。 如果玩家輸入的數(shù)字與計算機隨機生成數(shù)相比較,如果

26、輸入的數(shù)字比隨機生 成數(shù)大。系統(tǒng)將提示您,數(shù)字太大請您重新輸入。 如果玩家輸入的字符不是合法字符,系統(tǒng)將提示您,您輸入的數(shù)字不合法, 請從新輸入。 ③ 游戲開始時,系統(tǒng)自動記錄您猜數(shù)字的時間,結(jié)束后顯示游戲共花費的時間。 ④ 每猜測一次,系統(tǒng)會記錄下來,游戲結(jié)束后,顯示共猜測多少次。 ⑤ 在游戲開始時,自動顯示游戲規(guī)則。 ⑥ 在游戲結(jié)束時,可以選擇關閉游戲,或者再來一局。</p><p>  第二節(jié) 開發(fā)環(huán)境分析

27、</p><p>  硬件要求能運行 Windows 9.X 操作系統(tǒng)的微機系統(tǒng)。JAVA 程序設計語言及相應的集 成開發(fā)環(huán)境,J2SDK 和 eclipse 開發(fā)工具。 J2SDK 簡介: j2sdk 是就阿 Java 的開發(fā)環(huán)境包。 它包含 JDK(開發(fā)工具包)和 JRE(運 行時環(huán)境包) 。JDK 包含 JRE ,JDK 是開發(fā)人員必裝軟件,JRE 是客戶端運行時必裝 軟件 ,J2SDK 就是 JDK,J2

28、JRE 就是 JRE。Jcreator 是開發(fā) JAVA 的軟件。開發(fā) JAVA 也可以用記事本開發(fā)原程序 eclipse 簡介:Eclipse 是一個開放源代碼的、基于Java 的可擴展開發(fā)平臺。 就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸 運 的 是 , Eclipse 附 帶 了 一 個 標 準 的 插 件 集 , 包 括 Java 開 發(fā) 工 具 ( Java Development Tools,J

29、DT) 。Eclipse 的設計思想是:一切皆為插件。它自身的核心是非 常小的,其它所有的功能都以插件的形式附加到該核心上。Eclipse 中三個最吸引人的地 方:一</p><p><b>  程序設計</b></p><p>  第一節(jié) 程序的功能 </p><p>  該游戲環(huán)節(jié)有2個部分1是由程序隨機產(chǎn)生,2是由用戶自定義四個0

30、到9之間的數(shù)字,且不重復。玩游戲者通過游戲提示輸入八次來匹配上面所輸入的數(shù)字。輸入正確則為成功, 累計八次錯誤則游戲失敗。游戲成功根據(jù)猜測次數(shù)給出相應的得分!該游戲還能自動判斷你輸入是否有誤,如果輸入有誤,則自動彈出程序界面,要求你選擇并提示您正確的操作。</p><p>  第二節(jié) 輸入輸出的要求 </p><p>  按提示輸入0-9之間的數(shù)字進行操作</p><

31、;p> ?、?輸入 如:在菜單頁面時</p><p><b>  輸入1進入游戲;</b></p><p><b>  輸入2退出游戲;</b></p><p>  輸入3進入游戲說明頁面;</p><p>  輸入4看游戲得分榜。</p><p><b>

32、; ?、?輸出 如:</b></p><p>  在游戲成功時輸出游戲得分,8次輸入錯誤為挑戰(zhàn)失?。∪绻斴斎氲倪x項出現(xiàn)錯誤時,則系統(tǒng)輸出游戲提示“你輸入有誤,請確定后重新輸入!”。</p><p>  第三節(jié) 程序模塊</p><p><b>  模塊組成</b></p><p>  本程序分為七

33、個模塊,main()主模塊,menu()菜單模塊,startf()開始模塊,save()存儲模塊,display()排行榜模塊,,GZ()說明模塊,TC()退出模塊。</p><p><b>  隨機數(shù)的產(chǎn)生模塊</b></p><p>  我們可以借助Java API提供的Random類來產(chǎn)生一個隨機數(shù)。</p><p>  首先在main函

34、數(shù)中加入以下代碼:</p><p>  Random random = new Random().</p><p><b>  記錄猜測次數(shù)模塊</b></p><p>  // 記錄玩家猜測的次數(shù)</p><p><b>  m = 0;</b></p><p><b

35、>  // 計數(shù)器增加一</b></p><p><b>  m++;</b></p><p>  首先定義了一個m量來記錄玩家猜測的次數(shù),并直接初始化為 0。在打印一 行游戲提示以后,便開始一個do-while 語句。 在 do-while 語句中首先用異常處理語句獲取玩家的輸入,如果玩家輸入不合法,提 示以后用 continue 語句從頭重新執(zhí)行

36、循環(huán)語句,等待玩家的輸入。從而變量一定包含一個合法的整數(shù)。之后要對玩家的輸入進行判斷。如果玩家的猜測太大或者太小,都做出提示。接著把計數(shù)器增加 1,表示玩家做過一 次猜測。最后便是 do-while 語句的判斷:當玩家猜測的數(shù)字和隨機產(chǎn)生的答案不同,則再次進入循環(huán),否則便結(jié)束循環(huán),執(zhí)行下面的代碼。</p><p><b>  成績判斷模塊</b></p><p>  

37、while(m<8);//游戲區(qū)//</p><p><b>  {</b></p><p>  if(m<8||cs==n)//游戲得分情況//</p><p><b>  {</b></p><p><b>  switch(m)</b></p>

38、<p><b>  {</b></p><p>  case 1: system("cls");</p><p>  printf("\t\t\t\tscore:90\n\t\t\t\t游戲過關!!!\n");Save(90);break;</p><p>  case 2: system(

39、"cls");</p><p>  printf("\t\t\t\tscore:80\n\t\t\t\t游戲過關!!!\n");Save(80);break;</p><p>  case 3: system("cls");</p><p>  printf("\t\t\t\tscore:70\

40、n\t\t\t\t游戲過關!!!\n");Save(70);break;</p><p>  case 4: system("cls");</p><p>  printf("\t\t\t\tscore:60\n\t\t\t\t游戲過關!!!\n");Save(60);break;</p><p>  case 5

41、: system("cls");</p><p>  printf("\t\t\t\tscore:50\n\t\t\t\t游戲過關!!!\n");Save(50);break;</p><p>  case 6: system("cls");</p><p>  printf("\t\t\t\

42、tscore:40\n\t\t\t\t游戲過關!!!\n");Save(40);break;</p><p>  case 7: system("cls");</p><p>  printf("\t\t\t\tscore:30\n\t\t\t\t游戲過關!!!\n");Save(30);break;</p><p&g

43、t;<b>  default: </b></p><p>  system("cls");</p><p>  printf("\t\t\t\t一次通關 YOU ARE DOOG!!!\n\t\t\t\tscore:100\t\t\t\t\n");</p><p>  Save(100);</p&

44、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("\t很遺憾游戲結(jié)束了,你可以選擇繼續(xù)重新開始\n");//判斷勝利與否//</p><p

45、><b>  }</b></p><p>  system("pause");</p><p>  system("cls");</p><p>  return TC();</p><p><b>  }</b></p><p>

46、;<b>  異常處理模塊</b></p><p>  Java 語言提供了異常(Exception)處理機制幫助程序員發(fā)現(xiàn)并處理異常。所謂異常,就是在程序執(zhí)行過程中能干擾程序正常流程的事件。導致異常的原因很多,比如文件找不到、數(shù)組越界、除以零等。當異常出現(xiàn)時,一個異常對象將被自動生成并傳遞給 Java“運 行時環(huán)境”(runtime system),說得專業(yè)一點,就是拋出一個異常。異常對象

47、包含了異常 類型、程序運行狀態(tài)等信息。“運行時環(huán)境”得到異常對象后便打斷程序的正常流程,自 動尋找一個專門處理該異常的代碼塊來解決問題。這樣的代碼塊稱作異常句柄(Exception Handler)。你可以在異常句柄中嘗試修復錯誤、重試或者報錯,或者實在無法進行下去的 時候來個自我了斷。如果“運行時環(huán)境”找不到異常句柄,Java 程序便會自行中斷。 一個典型的異常處理如下: try { statement(s); } catch (ex

48、ceptiontype1 name) { statement(s); } catch (exceptiontype2 name) { statement(s); } finally { statement(s); } 其中</p><p><b>  層次結(jié)構 </b></p><p><b>  圖表1.1</b></p><

49、;p><b>  模塊調(diào)用</b></p><p><b>  圖表1.2</b></p><p><b>  分析 </b></p><p><b>  模塊解釋與功能</b></p><p>  ??main()--主模塊,操作系統(tǒng)的開始與結(jié)

50、束運行;</p><p>  void main()/*主函數(shù)*/</p><p><b>  {</b></p><p>  menu();//調(diào)用菜單模塊進行菜單選擇</p><p><b>  }</b></p><p>  ??menu()--菜單模塊,打印菜單選項給

51、游戲者進行選擇,進入相應的模塊并執(zhí)行;</p><p>  ??main()--主模塊,操作系統(tǒng)的開始與結(jié)束運行;</p><p>  void main()/*主函數(shù)*/</p><p><b>  {</b></p><p>  menu();//調(diào)用菜單模塊進行菜單選擇</p><p>&l

52、t;b>  }</b></p><p>  ??menu()--菜單模塊,打印菜單選項給游戲者進行選擇,進入相應的模塊并執(zhí)行;</p><p>  scanf("%d",&k);</p><p>  switch(k) /*選擇項*/</p><p><b>  {</b>

53、</p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  startf();//開始游戲</p><p><b>  };break;&l

54、t;/b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  system("cls");</p><p><b>  break;</b></p><p><

55、b>  };break;</b></p><p><b>  case 3:</b></p><p>  { system("cls");</p><p>  return shuomingf();///跳到說明</p><p><b>  }</b><

56、/p><p><b>  case 4:</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  return guanyuf();//跳到關于</p><p><b>  }</

57、b></p><p>  default : </p><p>  {printf("\t\t您的輸入有誤,請重新輸入!\n");</p><p>  system("pause");</p><p>  system("cls");</p><p>

58、  return menu();//返回主菜單</p><p><b>  }</b></p><p>  ??startf()--開始模塊,猜數(shù)字游戲開始,游戲者按照自己的意愿來進行游戲,系統(tǒng)對游戲的輸入進行判斷,真正實現(xiàn)了系統(tǒng)與游戲者完美融合;</p><p>  scanf("%d",&f);//進行是否自定義

59、選擇</p><p><b>  switch(f)</b></p><p><b>  {</b></p><p>  case 0://進行隨機游戲</p><p>  srand((int)time(0));/*隨機數(shù)據(jù)的產(chǎn)生*/</p><p>  n=1+(int)

60、(10000.1*rand()/(RAND_MAX+1.0));</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("你輸入有誤,請重新輸入??!");</p><p>  system(&qu

61、ot;pause");</p><p>  case 1:printf("請輸入你要自定義的數(shù)據(jù)\n");</p><p>  scanf("%d",&n);</p><p><b>  break;</b></p><p><b>  }</b&

62、gt;</p><p>  Do//進行游戲,知道猜對或8次才結(jié)束</p><p><b>  {</b></p><p><b>  int c;</b></p><p>  printf("請輸入四個0到9之間的數(shù)字,且不重復,如:1234\n");</p>&

63、lt;p>  scanf("%d",&cs);/*判斷隨機數(shù)據(jù)是否合格*/</p><p>  int g1,s1,b1,q1,A=0,B=0;</p><p>  g1=cs%10;///**拆分測試數(shù)據(jù)**//</p><p>  s1=cs%100/10;</p><p>  b1=cs/100%10;

64、{</p><p>  if(cs<1000)</p><p><b>  q1=0;</b></p><p><b>  else</b></p><p>  q1=cs/1000;///**拆分測試數(shù)據(jù)**//</p><p><b>  }</b&

65、gt;</p><p>  int p[4]={q1,b1,s1,g1},i,j;/*比較各位數(shù)是否相等*/</p><p>  if (cs==n)//游戲區(qū)//</p><p><b>  break;</b></p><p><b>  {</b></p><p>  

66、for(i=0;i<4;i++)</p><p>  for(j=0;j<4;j++)</p><p>  if (p[i]==a[j])</p><p><b>  if (i==j)</b></p><p><b>  A++;</b></p><p><

67、;b>  else</b></p><p><b>  B++;</b></p><p>  m++;//次數(shù)累計</p><p>  system ("cls");</p><p>  printf("\t\t\t%dA%dB,m=%d",A,B,m);<

68、/p><p>  printf("\n");</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(m<8);//進行游戲,知道

69、猜對或8次才結(jié)束</p><p>  ??TC()--退出模塊,退出整個游戲系統(tǒng);</p><p>  scanf("%d",&h);</p><p>  switch(h)//是否退出模塊選擇</p><p><b>  {</b></p><p><b>

70、  case 1:</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  menu();//返回主菜單</p><p><b>  };break;</b></p><p>&l

71、t;b>  case 2:</b></p><p><b>  {</b></p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  };break;</b></p

72、><p>  default : </p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("您的輸入有誤,請重新輸入!");//提示報錯</p><p>  return menu();<

73、;/p><p>  ?? GZ--說明模塊(),向游戲者介紹游戲的規(guī)則,并提示游戲者如何進行游戲;</p><p><b>  調(diào)試</b></p><p><b>  菜單測試 </b></p><p><b>  在主菜單中 </b></p><p&

74、gt;  輸入 1:進入游戲;</p><p>  輸入 2:退出游戲;</p><p>  輸入 3:進入游戲說明;</p><p>  輸入 4:進入關于;</p><p>  輸入 5:進入游戲排行榜;</p><p>  輸入其它數(shù)據(jù)或按鍵時:提示“你輸入有誤,請重新輸入”;</p><p&

75、gt;<b>  圖表1.3 </b></p><p>  2) 在自定義數(shù)值中</p><p>  輸入 1:進入自定義,提示請輸入你要自定義的數(shù)據(jù);</p><p>  輸入 0:進入隨機游戲,系統(tǒng)將自動生成數(shù)據(jù)給游戲者猜;</p><p>  輸入 3:系統(tǒng)報錯,提示“你輸入有誤,請重新輸入!”;</p

76、><p><b>  圖表1.4</b></p><p><b>  3) 在繼續(xù)菜單中</b></p><p>  輸入 1:繼續(xù)進行游戲;</p><p>  輸入 2:退出游戲;</p><p>  輸入 3:系統(tǒng)報錯,提示“你輸入有誤,請重新輸入”;</p>

77、<p><b>  4) 界面友好</b></p><p><b>  圖表1.6</b></p><p>  請字開頭,顯示出友好的界面,為使用者提供更好的環(huán)境。</p><p><b>  游戲測試</b></p><p><b>  在自定義中<

78、;/b></p><p>  自定義:輸入1937</p><p>  1) 第一次 1937 </p><p><b>  結(jié)果如下圖: </b></p><p><b>  圖表1.7</b></p><p><b>  2)</b>&l

79、t;/p><p>  第一次 1356 1A1B</p><p>  第二次 2478 0A1B;</p><p>  第三次 1324 1A1B;</p><p>  第四次 1579 1A2B </p><p>  第五次 0954 0A1B;</p><p&

80、gt;  第六次 1359 1A2B;</p><p>  第七次 1957 3A0B;</p><p>  第八次 1937 </p><p><b>  結(jié)果如下圖:</b></p><p><b>  圖表1.8</b></p><p><b&g

81、t;  自定義:輸入12</b></p><p>  提示報錯,--“是否自定義數(shù)值”,直至定義正確;</p><p><b>  結(jié)果如上圖:</b></p><p><b>  在隨機游戲中</b></p><p>  隨機數(shù)據(jù) 1234</p><p>

82、  第一次 1356 1A0B;</p><p>  第二次 2345 0A3B;</p><p>  第三次 3456 2A0B;</p><p>  第四次 5678 0A0B;</p><p><b>  第五次 1234</b></p><p><b

83、>  結(jié)果如下圖:</b></p><p><b>  總結(jié) </b></p><p>  幾天的課程設計結(jié)束了,我感受匪淺,自己掌握的還是太少,這次課程設計的程序大多是自己去查找資料,上網(wǎng)找的,自己對系統(tǒng)如何自定義數(shù)據(jù)還是不懂,在答辯時,連問題是什么都沒聽到就寫,一點都不嚴謹,我實在是羞愧…但我是很喜歡C語言的,我要把它學好,學習是無止境的,通

84、過這次課程設計我認識到,要學好C語言不能單純的書本知識更多的是把老師你交待的每個程序好好了解﹑總結(jié),這才是最好的方法。這次的不足將激勵我對它更濃厚的興趣,我要征服它!猜數(shù)字是一款非常經(jīng)典的腦力游戲,游戲規(guī)則簡單,但是玩起來難度較大,是消磨時間、鍛煉腦力的好選擇。通過選擇猜數(shù)字游戲這個題目,可以讓我掌握很多知識。同時更加深入的了解字符界面的編程過程。使我更熟練的掌握Java程序框架的搭建和類的創(chuàng)建格式。在分析階段,要進行面向?qū)ο蟮男枨蠓治?/p>

85、、系統(tǒng)設計、畫出相應的需求分析圖、系統(tǒng)設計模型圖,這些工作更能鍛煉我的邏輯思維,更能培養(yǎng)我思考的全面性。讓我學會了多角度思考問題,對我以后的編程奠定了更好的基礎。</p><p>  課程設計是本科學習階段一次非常難得的理論與實際相結(jié)合的機會,通過這次比較完整的一個程序的設計,提高我查閱文獻資料、對程序整體的把握等其他能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗

86、得到了豐富。這是我們都希望看到的也正是我們進行課程設計的目的所在 雖然設計內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。各種組件的運用,各種算法的應用,各種控件的利用我都是隨著設計的不斷深入而不斷熟悉并逐步掌握的。和老師以及同學的溝通交流更使我對程序整體的規(guī)劃與設計有了新的認識也對自己提出了新的要求。提高是有限的但提高也是全面的,正是這一次設計讓我積累了許多實際經(jīng)驗,也必然會讓我在未來的工作學習中表現(xiàn)出更高的應變能力和理解力。順利如期的完成本

87、次課程設計給了我很大的信心,但是也讓多不足的地方,學習其實就是一個不斷完善的過程,正視自己的不足之處,在以后的工作和學習中不斷的彌補這些不足之處,在以后的生活中也要保持同樣的態(tài)度,不斷的完善自己。</p><p>  在還沒有進行課程設計實訓之前,我對C語言知識的掌握真的只能說是很膚淺,我只知道分開來使用那些語句和語法,對他們根本沒有整體感念,所以在學習C語言時經(jīng)常會感覺很盲目,甚至不知道自己學這些東西是為了什么

88、。通過一周的課程設計,我對C語言有了更深入的了解,同時也建立起了一個對C語言的整體架構和編程思想;我還學到了很多課本上沒有學到的東西,也了解了很多以前不了解的計算機語言方面的知識;他擴充了我的知識,也開拓了我的視野,讓我們了解了我們學習計算機語言的目的和將來發(fā)展的方向。 </p><p>  其實這次最大的收獲還是發(fā)現(xiàn)自己的不足,原來自己所掌握的知識只是皮毛而已,還有對于計算機的基本操作知道的真是少的可憐,

89、雖然受了點很大的打擊,但總比一直錯下去、學了等于沒學強,這樣至少不會一直迷迷糊糊下去了。另外我也深深理解上機操作的重要性,有時候覺得自己很認真很仔細,對于編寫的程序非常自信,可實際一上機操作就不行了,會出現(xiàn)錯誤,雖然會打擊自信心,但總比一直錯下去、學了等于沒學強,那樣學習也將失去意義,學習就是一個不斷犯錯又不斷修正的過程,我覺得我每犯一個錯誤都會從中收獲一些東西,我一定會學好C語言。</p><p><b&

90、gt;  附錄 </b></p><p>  第一節(jié) 附錄A 源程序</p><p>  #include<time.h> </p><p>  #include<stdlib.h></p><p>  #include<stdio.h></p><p>  #incl

91、ude<math.h></p><p>  static int t;</p><p>  int a[100];</p><p>  extern startf();/*外部說明*/</p><p>  extern menu();/*外部說明*/</p><p>  extern TC();/*外部說明

92、*/</p><p>  extern GZ();/*外部說明*/</p><p>  //學生基本信息保存模塊</p><p>  void Save(int x)</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p&

93、gt;<p><b>  int i;</b></p><p><b>  a[t]=x;</b></p><p><b>  t++;</b></p><p>  fp=fopen("c:\\youxi.txt","w+");</p>

94、<p>  for(i=0;i<t;i++)</p><p><b>  {</b></p><p>  fwrite(&a[i],sizeof(int),1,fp);</p><p>  //每次寫一個條錄入或一個結(jié)構體數(shù)組至文件</p><p><b>  }</b>

95、</p><p><b>  if(i>0)</b></p><p><b>  {</b></p><p>  printf("\n完成%d個文件的保存\n",t);</p><p>  system("pause");</p><

96、p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n文件為空,沒有保存一個文件\n&quo

97、t;);</p><p>  system("pause");</p><p><b>  }</b></p><p>  fclose(fp);//關閉文件</p><p><b>  }</b></p><p><b>  //顯示模塊<

98、;/b></p><p>  void display()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=0;i<t;i++)</p><p><b>  {</b>

99、</p><p>  printf("\n\t\t\t\t%d",a[i]);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  if(t==0)</b></p><p&g

100、t;  printf("沒有分數(shù)");</p><p>  system("pause");</p><p>  system("cls");</p><p><b>  }</b></p><p>  void main()/*主函數(shù)*/</p>

101、<p><b>  {</b></p><p>  int count=0;</p><p><b>  FILE *fp;</b></p><p>  fp=fopen("c:\\youxi.txt","a+");//保存在c:youxi.txt,以讀寫創(chuàng)建一個新的文本

102、</p><p>  if(fp==NULL)//打開頭文件失敗</p><p><b>  {</b></p><p>  printf("\n文件打開錯誤!\n");</p><p><b>  exit(0);</b></p><p><b&g

103、t;  }</b></p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  if(fread(&a[count],sizeof(int),1,fp)==1)//一次從文件中讀取一條學生信息</p><p><b>  count++

104、;</b></p><p><b>  }</b></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  int menu()/*菜單模塊*/</p><p><b>  {

105、</b></p><p><b>  int k;</b></p><p>  printf("\n\n\n\n\t\t ...................猜數(shù)字游戲..................\n");</p><p>  printf("\t\t|********************

106、***************************|\n");</p><p>  printf("\t\t|***************==> <==**************|\n");</p><p>  printf("\t\t|***************==> 1.開 始 <=

107、=**************|\n");</p><p>  printf("\t\t|***************==> <==**************|\n");</p><p>  printf("\t\t|***************==> 2.退出系統(tǒng) <==*************

108、*|\n");</p><p>  printf("\t\t|***************==> <==**************|\n");</p><p>  printf("\t\t|***************==> 3.游戲說明 <==**************|\n");&l

109、t;/p><p>  printf("\t\t|***************==> <==**************|\n");</p><p>  printf("\t\t|***************==> 4.顯示分數(shù) <==**************|\n");</p><

110、p>  printf("\t\t|***************==> <==**************|\n");</p><p>  printf("\t\t|***********************************************|\n");</p><p>  printf(&q

111、uot;\t\t|...............................................|\n");</p><p>  printf("\n\n\n\n");</p><p>  printf("\t\t請按提示輸入:");</p><p>  scanf("%d",&a

112、mp;k);</p><p>  switch(k) /*選擇項*/</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  system("cl

113、s");</p><p>  startf();</p><p><b>  };break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  system("

114、cls");</p><p><b>  break;</b></p><p><b>  };break;</b></p><p><b>  case 3:</b></p><p>  { system("cls");</p>

115、<p>  return GZ();</p><p><b>  }</b></p><p><b>  case 4:</b></p><p><b>  {</b></p><p>  system("cls");</p>&l

116、t;p>  display();</p><p>  system("pause");</p><p>  return menu();</p><p><b>  }</b></p><p><b>  default: </b></p><p>

117、<b>  {</b></p><p>  printf("\t\t您的輸入有誤,請重新輸入!\n");</p><p>  system("pause");</p><p>  system("cls");</p><p>  return menu();&l

118、t;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int startf( )/*游戲模塊*/</p><p><b>  {</b></p

119、><p>  int n,m=0,g,s,b,q,cs,C=0,f;//**cs表示測試數(shù)據(jù)**//</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("是否自定義數(shù)值:1/0 (1:是 /0:否)\n");&l

120、t;/p><p>  scanf("%d",&f);</p><p><b>  switch(f)</b></p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  sran

121、d((int)time(0));/*隨機數(shù)據(jù)的產(chǎn)生*/</p><p>  n=1+(int)(10000.1*rand()/(RAND_MAX+1.0));break;</p><p><b>  default:</b></p><p>  printf("你輸入有誤,請重新輸入?。?quot;);</p><

122、p>  system("pause");</p><p>  case 1:printf("請輸入你要自定義的數(shù)據(jù)\n");</p><p>  scanf("%d",&n);break;</p><p><b>  }</b></p><p>&

123、lt;b>  g=n%10;</b></p><p>  s=n%100/10;</p><p>  b=n/100%10;</p><p>  if(n<1000)</p><p><b>  q=0;</b></p><p><b>  }</b>

124、</p><p>  while((g==s)||(g==b)||(g==q)||(s==b)||(s==q)||(b==q)||(n<=124)||(n>=10000));/*隨機數(shù)據(jù)的產(chǎn)生*/</p><p>  int a[4]={q,b,s,g};/*將隨機數(shù)據(jù)重組*/</p><p>  system("cls");<

125、/p><p>  printf("歡迎進入猜數(shù)字游戲...\n\n");</p><p>  printf("\t\t.......A:數(shù)字正確,且位置正確 .......\n");/*溫馨提示*/</p><p>  printf("\t\t.......B:數(shù)字正確,但位置錯誤 .......\n");

126、</p><p>  printf("\t\t.......m:實驗次數(shù) .......\n\n");</p><p><b>  do</b></p><p><b>  {</b></p><p><b>  int c;</b>

127、;</p><p>  printf("請輸入四個0到9之間的數(shù)字,且不重復,如:1234\n");</p><p>  scanf("%d",&cs);/*判斷隨機數(shù)據(jù)是否合格*/</p><p>  int g1,s1,b1,q1,A=0,B=0;</p><p>  g1=cs%10;//

128、/**拆分測試數(shù)據(jù)**//</p><p>  s1=cs%100/10;</p><p>  b1=cs/100%10;</p><p><b>  {</b></p><p>  if(cs<1000)</p><p><b>  q1=0;</b></p&g

129、t;<p><b>  else</b></p><p>  q1=cs/1000;///**拆分測試數(shù)據(jù)**//</p><p><b>  }</b></p><p>  int p[4]={q1,b1,s1,g1},i,j;/*比較各位數(shù)是否相等*/</p><p>  if (

130、cs==n)//游戲區(qū)//</p><p><b>  break;</b></p><p><b>  {</b></p><p>  for(i=0;i<4;i++)</p><p>  for(j=0;j<4;j++)</p><p>  if(p[i]==

131、a[j])</p><p><b>  if(i==j)</b></p><p><b>  A++;</b></p><p><b>  else</b></p><p><b>  B++;</b></p><p><b&

132、gt;  m++;</b></p><p>  system ("cls");</p><p>  printf("\t\t\t%dA%dB,m=%d",A,B,m);</p><p>  printf("\n");</p><p>  printf("\n&q

133、uot;);</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(m<8);//游戲區(qū)//</p><p><b>  {</b></p><p>  if(m<8||cs==n)/

134、/游戲得分情況//</p><p><b>  {</b></p><p><b>  switch(m)</b></p><p><b>  {</b></p><p>  case 1: system("cls");</p><p&

135、gt;  printf("\t\t\t\tscore:90\n\t\t\t\t游戲過關!!!\n");Save(90);break;</p><p>  case 2: system("cls");</p><p>  printf("\t\t\t\tscore:80\n\t\t\t\t游戲過關!!!\n");Save(80);

136、break;</p><p>  case 3: system("cls");</p><p>  printf("\t\t\t\tscore:70\n\t\t\t\t游戲過關!!!\n");Save(70);break;</p><p>  case 4: system("cls");</p&g

137、t;<p>  printf("\t\t\t\tscore:60\n\t\t\t\t游戲過關!!!\n");Save(60);break;</p><p>  case 5: system("cls");</p><p>  printf("\t\t\t\tscore:50\n\t\t\t\t游戲過關!!!\n")

138、;Save(50);break;</p><p>  case 6: system("cls");</p><p>  printf("\t\t\t\tscore:40\n\t\t\t\t游戲過關!!!\n");Save(40);break;</p><p>  case 7: system("cls"

139、);</p><p>  printf("\t\t\t\tscore:30\n\t\t\t\t游戲過關!!!\n");Save(30);break;</p><p><b>  default: </b></p><p>  system("cls");</p><p>  pri

溫馨提示

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

評論

0/150

提交評論