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

下載本文檔

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

文檔簡介

1、<p><b>  課程設計</b></p><p>  題 目: 猜數(shù)字游戲 </p><p>  院 (系): 數(shù)學與計算機學院 </p><p>  年級專業(yè): </p><p>  姓 名:

2、 </p><p>  學 號: </p><p>  指導教師: </p><p><b>  課程設計任務書</b></p><p><b>  摘 要</b><

3、/p><p>  猜數(shù)字是一款非常經(jīng)典的腦力游戲,游戲規(guī)則簡單,但是玩起來難度較大,是消磨時間、鍛煉腦力的好選擇。通過選擇猜數(shù)字游戲這個題目,可以讓我掌握Java中的包和類,并且可以靈活的使用eclipse軟件。同時更加深入的了解字符界面的編程過程。使我更熟練的掌握Java程序框架的搭建和類的創(chuàng)建格式。在分析階段,要進行面向?qū)ο蟮男枨蠓治?、系統(tǒng)設計、畫出相應的需求分析圖、系統(tǒng)設計模型圖,這些工作更能鍛煉我的邏輯思維,

4、更能培養(yǎng)我思考的全面性。讓我學會了多角度思考問題,對我以后的編程奠定了更好的基礎。</p><p>  關鍵詞 猜數(shù)字游戲,JAVA編程,eclipse</p><p><b>  目 錄</b></p><p>  攀枝花學院本科學生課程設計任務書I</p><p>  課程設計(論文)指導教師成績評定表II

5、</p><p><b>  摘 要III</b></p><p><b>  1.需求分析1</b></p><p>  1.1 用戶需求分析1</p><p>  2.2 開發(fā)環(huán)境分析1</p><p><b>  2.問題描述1</b>

6、</p><p>  2.1課程設計的任務2</p><p>  2.2.課程設計的要求2</p><p><b>  3 模塊設計2</b></p><p>  3.1 系統(tǒng)總體設計2</p><p>  3.2 功能模塊設計3</p><p><b>

7、;  4 功能設計3</b></p><p>  4.1 游戲界面模塊3</p><p>  4.2 隨機數(shù)的產(chǎn)生模塊3</p><p>  4.3 輸入模塊3</p><p>  4.4 記錄猜測次數(shù)模塊3</p><p>  4.5 計時模塊4</p><p>  4

8、.6 輸入輸出模塊4</p><p>  4.7 成績判斷模塊4</p><p><b>  5.程序流程圖6</b></p><p><b>  6.測試分析6</b></p><p><b>  6.1 測試6</b></p><p>&l

9、t;b>  實驗總結10</b></p><p><b>  參考文獻11</b></p><p><b>  程序附頁12</b></p><p><b>  1.需求分析</b></p><p>  1.1 用戶需求分析</p><

10、;p>  設計一個猜數(shù)字游戲程序,要求具體如下特性:</p><p>  a.輸入任意一個數(shù)字。數(shù)字的要求是1—100的自然數(shù)即可。</p><p>  b.系統(tǒng)對您輸入的數(shù)字進行判斷。</p><p>  如果玩家輸入的數(shù)字與計算機隨機生成數(shù)相比較,輸入的數(shù)字比隨機生成數(shù)小.系統(tǒng)將提示您,數(shù)字太小請您重新輸入。</p><p>  如

11、果玩家輸入的數(shù)字與計算機隨機生成數(shù)相比較,如果輸入的數(shù)字比隨機生成數(shù)大。系統(tǒng)將提示您,數(shù)字太大請您重新輸入。</p><p>  如果玩家輸入的字符不是合法字符,系統(tǒng)將提示您,您輸入的數(shù)字不合法,請從新輸入。</p><p>  c. 游戲開始時,系統(tǒng)自動記錄您猜數(shù)字的時間,結束后顯示游戲共花費的時間。</p><p>  d. 每猜測一次,系統(tǒng)會記錄下來,游戲結束

12、后,顯示共猜測多少次。</p><p>  e. 在游戲結束時,可以選擇關閉游戲,或者再來一局。</p><p>  1.2 開發(fā)環(huán)境分析</p><p>  硬件要求能運行Windows 9.X操作系統(tǒng)的微機系統(tǒng)。JAVA程序設計語言及相應的集成開發(fā)環(huán)境,J2SDK和eclipse開發(fā)工具。</p><p>  J2SDK簡介:j2sdk是

13、就阿Java的開發(fā)環(huán)境包。它包含JDK(開發(fā)工具包)和JRE(運行時環(huán)境包) 。</p><p>  eclipse簡介:Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。</p>

14、<p><b>  2.問題描述</b></p><p>  2.1課程設計的任務</p><p>  根據(jù)所選題目,完成課程設計的分析、設計和編碼,寫出課程設計報告。</p><p>  (1)掌握Java的語言規(guī)范,面向?qū)ο蟮暮诵母拍詈吞匦裕?lt;/p><p>  (2)掌握Java的編程技術,包括異常處理

15、,多線程等;</p><p>  (3)掌握Java應用軟件的開發(fā)環(huán)境和開發(fā)過程;</p><p>  (4)掌握面向?qū)ο蟮乃枷牒统绦蛟O計方法。</p><p>  2.2.課程設計的要求</p><p>  設計一個猜數(shù)字游戲程序,該游戲可以由程序隨機產(chǎn)生整數(shù),玩游戲者通過由用戶輸入數(shù)字來匹配上面所產(chǎn)生的數(shù)字。用戶隨機輸入數(shù)字,當與計算機產(chǎn)

16、生的隨機數(shù)相符合時,計算機將提醒用戶,游戲成功的信息,當有偏差時,將會提醒偏差,如偏大或者是偏小。并給出游戲所用時間,同時根據(jù)游戲者所猜數(shù)字次數(shù),給出評語。</p><p><b>  3 模塊設計</b></p><p>  3.1 系統(tǒng)總體設計</p><p>  猜數(shù)字游戲—游戲隨機給出一個1—100 (包括1和100) 之間的數(shù)字,然后

17、讓你猜是什么數(shù)字。你可以隨便猜一個數(shù)字,游戲會提示太大還是太小,從而縮小結果范圍。經(jīng)過幾次猜測與提示后,最終推出答案。</p><p>  游戲開始后,由計算機產(chǎn)生一個1-100的隨機數(shù),不顯示在圖形界面,但顯示在字符界面。用戶只需輸入所猜想的數(shù)字,打印在輸入框內(nèi),按“確定”按鈕表示確定,游戲返回提示語句,按照提示語句操作,直至游戲結束。同時,計算機開始對游戲進行計時和計數(shù)功能。</p><p

18、>  3.2 功能模塊設計</p><p><b>  4 功能設計</b></p><p><b>  4.1游戲界面模塊</b></p><p>  void welcome() {</p><p>  System.out.println("******************

19、********");</p><p>  System.out.println("* 歡迎來到 猜數(shù)字游戲");</p><p>  System.out.println("* 進入游戲 請按“ 1 ”" );</p><p>  System.out.println("* 顯示本次游

20、戲的結果 請按“ 2 ”" ); </p><p>  System.out.println("* 退出游戲 請按“ 0 ”");</p><p>  System.out.println("***************************");</p><p>  System.out.printl

21、n("請選擇:(1、2、0):" +</p><p><b>  "");</b></p><p><b>  }</b></p><p>  4.2隨機數(shù)的產(chǎn)生模塊</p><p>  我們可以借助Java API提供的Random類來產(chǎn)生一個隨機數(shù)。<

22、;/p><p>  首先在main函數(shù)中加入以下代碼:</p><p><b>  的隨機數(shù)</b></p><p>  int number = (int) (Math.random() * 100);//生成一個1-100間隨機數(shù)</p><p><b>  4.3輸入模塊</b></p>

23、;<p>  InputStreamReader isr = new InputStreamReader(System.in);</p><p>  BufferedReader br = new BufferedReader(isr);</p><p>  4.4記錄猜測次數(shù)模塊</p><p>  int i = 0; //初始化猜數(shù)字的次數(shù)<

24、;/p><p>  i++;// i記錄猜的次數(shù)</p><p><b>  4.5 計時模塊</b></p><p>  計時模塊的代碼分別寫在游戲的開始和游戲的結束,取得時間差,以毫秒為單位。</p><p>  long endTime = System.currentTimeMillis();//計時開始</p

25、><p>  long startTime = System.currentTimeMillis();//計時結束</p><p>  4.6 輸入輸出模塊</p><p>  // 對玩家的輸入進行判斷。</p><p>  if (n < number) {</p><p>  System.out.printl

26、n("你猜的數(shù)偏小");</p><p><b>  }</b></p><p>  else if (n > number) {</p><p>  System.out.println("你猜的數(shù)偏大");</p><p><b>  }</b>&l

27、t;/p><p>  else if (n == number){</p><p>  long endTime = System.currentTimeMillis();</p><p>  4.7 成績判斷模塊</p><p><b>  // 判斷成績。</b></p><p>  switch

28、 (i) {</p><p><b>  case 1:</b></p><p>  System.out.println( "神人?。?!"); </p><p><b>  break;</b></p><p><b>  case 2:</b></

29、p><p>  System.out.println( "半神?。?!"); </p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  System.out.println( "牛人?。?!"); &l

30、t;/p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  System.out.println( "恭喜?。?!"); </p><p><b>  break;</b></p>&l

31、t;p><b>  case 5:</b></p><p>  System.out.println( "恭喜?。?!"); </p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  Sy

32、stem.out.println( "恭喜?。?!"); </p><p><b>  break;</b></p><p><b>  case 7:</b></p><p>  System.out.println("一般般啦?。?!");</p><p>&

33、lt;b>  break;</b></p><p><b>  default:</b></p><p>  System.out.println("猜了半天才猜出來,還要多多練習哦!");</p><p><b>  break;</b></p><p>&l

34、t;b>  }</b></p><p>  System.out.println("你總共猜了" + i + "次");</p><p>  System.out.println("共花了"+ (endTime - startTime) / 1000 + "s!");</p>&

35、lt;p>  //System.out.println("");</p><p><b>  }</b></p><p><b>  5.程序流程圖</b></p><p><b>  6.測試分析</b></p><p><b>  6.1

36、測試</b></p><p><b>  游戲界面:</b></p><p><b>  測試進入游戲:</b></p><p>  測試看當前答案和退出游戲:</p><p><b>  實驗總結</b></p><p>  經(jīng)過這幾天努力

37、終于完成了這份java課程設計,雖然在操作的過程中我都遇到了許多的困難,但是卻使我得到了許多的意外收獲。Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結構中立的,可移植的,性能優(yōu)異、多線程的動態(tài)語言。在寫代碼的過程中我們也遇到了一些的困難,就是對一些有關Java語言的不理解,我便又到課本中去查找。一個項目的成敗關鍵不全在于技術。要想在一個愉快的氛圍里邊以輕松的心情來完成緊張的工作,嚴謹?shù)膽B(tài)度和工作的熱情都是必不可少的

38、。以前上課時有許多的問題并沒有真正的認識到,但通過這次試驗的制作,使我掌握了許多更重要的知識點。</p><p>  通過這次課程設計,使我在數(shù)據(jù)結構的邏輯特性和物理表示、數(shù)據(jù)結構的選擇應用、算法的設計及其實現(xiàn)等方面加深了對課程基本內(nèi)容的理解。同時,在程序設計方法以及上機操作等基本技能和科學作風方面受到比較系統(tǒng)和嚴格的訓練。</p><p>  在此之前,我腦袋里面沒有設計的思想,如何設計

39、對我而言就是一張空白的紙。當時就感覺自己什么都不會做,什么也不能做,但是真正接觸后并沒有想象的那么難,有什么不懂的上網(wǎng)去搜索,這是一個信息橫流的世界,有google,baidu就沒有不能解決的知識難題。在網(wǎng)上搜索點有關的資料后,然后再利用自己在課堂上所學的知識,將所有內(nèi)容連接起來,所有問題就迎刃而解。課程設計是以學生自學為主、指導教師指導為輔,認真、獨立地完成課程設計的任務,有問題就要及時主動與指導教師溝通。在老師的悉心指導下和同學們的

40、幫助下,使我順利地完成了此次課程設計。我相信這短短五天的課程設計將會是我以后不管是工作還是學習不可多得的經(jīng)驗。</p><p><b>  參考文獻</b></p><p>  [1] 黃明等,梁旭,周紹斌.《Java課程設計》 電子工業(yè)出版社 2006</p><p>  [2] 楊昭.《二級Java語言程序設計教程

41、》 中國水利水電出版社 2006</p><p>  [3] 趙文靖.《Java程序設計基礎與上機指導》 清華大學出版社 2006</p><p>  [4] 張廣彬,孟紅蕊,張永寶.《Java課程設計案例精編》清華大學出版社 2007</p><p>  [5] 黃曉東.《Java課程設計案例精編(第一版)》

42、 中國水利水電出版社 2004</p><p>  [6] [美]Cay S.Horstmann程峰等譯.《JAVA2核心技術》機械工業(yè)出版社 2003 </p><p>  [7] 趙毅主.《跨平臺程序設計語言—Java》 西安電子科技大學出版社2006</p><p>  [8]王路群.《Java高級程序設計》

43、 中國水利水電出版社 2006</p><p>  [9] 夏寬理.《Java語言程序設計》 機械工業(yè)出版社. 2008.</p><p>  [10] 丁新民.《Java程序設計教程》 人民郵電出版社. 2006.</p><p>  [11] Y.Daniel Liang.《Java語言程序設計基

44、礎篇》(第六版). 機械工業(yè)出版社</p><p><b>  程序附頁</b></p><p>  package ZhangWei;</p><p>  import java.io.BufferedReader;</p><p>  import java.io.IOException;</p>&l

45、t;p>  import java.io.InputStreamReader;</p><p>  public class game{</p><p>  int i = 0;// 記錄猜數(shù)字的次數(shù)</p><p>  void welcome() {</p><p>  System.out.println("******

46、********************");</p><p>  System.out.println("* 歡迎來到 猜數(shù)字游戲");</p><p>  System.out.println("* 進入游戲 請按“ 1 ”" );</p><p>  System.out.println(&qu

47、ot;* 顯示本次游戲的結果 請按“ 2 ”" ); </p><p>  System.out.println("* 退出游戲 請按“ 0 ”");</p><p>  System.out.println("***************************");</p><p>  Syste

48、m.out.println("請選擇:(1、2、0):" +</p><p><b>  "");</b></p><p><b>  }</b></p><p>  void playGame(int number) {</p><p>  System.o

49、ut.println("游戲開始,請猜數(shù)(輸入0-100之間的一個整數(shù)):");</p><p>  long startTime = System.currentTimeMillis();</p><p>  InputStreamReader isr = new InputStreamReader(System.in);</p><p>  

50、BufferedReader br = new BufferedReader(isr);</p><p>  String str = "";</p><p><b>  int n;</b></p><p><b>  try {</b></p><p>  while (br

51、 != null && !str.equals("0")) {</p><p>  str = br.readLine();</p><p>  n = Integer.parseInt(str);</p><p>  i++;// i記錄猜的次數(shù)</p><p>  if (n < number)

52、{</p><p>  System.out.println("你猜的數(shù)偏小");</p><p><b>  }</b></p><p>  else if (n > number) {</p><p>  System.out.println("你猜的數(shù)偏大");<

53、/p><p><b>  }</b></p><p>  else if (n == number){</p><p>  long endTime = System.currentTimeMillis();</p><p>  switch (i) {</p><p><b>  case

54、 1:</b></p><p>  System.out.println( "神人?。?!"); </p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  System.out.println( &quo

55、t;半神?。?!"); </p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  System.out.println( "牛人?。?!"); </p><p><b>  break;</b

56、></p><p><b>  case 4:</b></p><p>  System.out.println( "恭喜?。?!"); </p><p><b>  break;</b></p><p><b>  case 5:</b></p&

57、gt;<p>  System.out.println( "恭喜!??!"); </p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  System.out.println( "恭喜?。?!"); <

58、/p><p><b>  break;</b></p><p><b>  case 7:</b></p><p>  System.out.println("一般般啦?。?!");</p><p><b>  break;</b></p><

59、p><b>  default:</b></p><p>  System.out.println("猜了半天才猜出來,還要多多練習哦!");</p><p><b>  break;</b></p><p><b>  }</b></p><p> 

60、 System.out.println("你總共猜了" + i + "次");</p><p>  System.out.println("共花了"+ (endTime - startTime) / 1000 + "s!");</p><p>  //System.out.println(""

61、;);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (IOException e){</p><p>  // TODO Auto-generat

62、ed catch block</p><p>  e.printStackTrace();</p><p><b>  } </b></p><p><b>  }</b></p><p>  public static void main(String[] args) {</p>&

63、lt;p>  int number = (int) (Math.random() * 100);//生成隨機數(shù)</p><p>  game r = new game();</p><p>  r.welcome();</p><p>  InputStreamReader reader = new InputStreamReader(System.in);&

64、lt;/p><p>  BufferedReader br = new BufferedReader(reader);</p><p>  String s = "";</p><p><b>  try{</b></p><p>  while (s != null){</p><

65、p>  s = br.readLine();</p><p>  if (s.equals("1"))// 輸入“1”進入游戲;</p><p>  r.playGame(number);</p><p>  else if (s.equals("2")){// 輸入“2”退出游戲;</p><p&g

66、t;  System.out.println("該次游戲的正確答案: " + number);</p><p>  r.welcome();// 再次選擇</p><p><b>  }</b></p><p>  else if (s.equals("0")){// 輸入“0”顯示該次游戲的正確答案;&

67、lt;/p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (IOException e) {</p&g

68、t;<p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  try {</b></p><p>  if (br != null)

69、</p><p>  br.close();</p><p><b>  }</b></p><p>  catch (IOException e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace

溫馨提示

  • 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

提交評論