版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《面向對象程序設計》</p><p><b> 課程設計報告</b></p><p><b> xx</b></p><p> xxxx年 x月xx日</p><p><b> 目錄</b></p><p> 1 設計內容
2、及要求1</p><p> 1.1 課程設計目的1</p><p> 1.2 設計項目名稱1</p><p> 1.3 類的結構分布1</p><p><b> 2 概要設計2</b></p><p> 2.1系統總體功能2</p><p>
3、2.2 游戲流程概述2</p><p> 3 設計過程或程序代碼3</p><p> 3.1 猜數游戲3</p><p> 3.2功能模塊詳細設計4</p><p> 3.3 類的設計5</p><p> 4 程序代碼調試6</p><p><b> 4.1程序
4、流程6</b></p><p> 4.2關鍵算法與技術實現6</p><p> 4.2.1 隨機數的獲取6</p><p> 4.2.2 輸入輸出6</p><p> 4.2.3 判斷時間7</p><p> 4.2.4 自動計數7</p><p> 4.2.
5、5 結果輸出8</p><p> 4.2.6 圖形界面的實現8</p><p> 4.3 類的實現9</p><p> 5設計結果與分析10</p><p> 5.1登錄界面10</p><p> 5.2游戲界面10</p><p> 5.3猜數舉例11</p&g
6、t;<p><b> 參考文獻12</b></p><p><b> 1 設計內容及要求</b></p><p> 功能要求:該程序用圖形界面實現下面功能:用計算機產生一個100以內的隨機數,游戲者進行猜數,猜中即勝,猜不中,提示是大了還是小了,繼續猜,直至猜對為止。游戲結束后計算出玩家所用的時間與所猜的次數。</p&
7、gt;<p> 1.1 課程設計目的</p><p> 通過設計一個《標準化考試系統設計》,進一步熟悉Java中的概念、基本知識和技能利用所學的基本知識和技能解決簡單的面向對象的程序設計問題。了解系統開發的需求分析、層次設計、模塊分解、編碼測試、模塊組裝與整體調試的全過程,加深對Java的理解與eclipse環境的使用:逐步熟悉程序設計的方法,并養成良好的編程習慣。</p>&l
8、t;p> 1.2 設計項目名稱</p><p><b> 猜數游戲設計</b></p><p> 1.3 類的結構分布</p><p><b> 圖 1 類的分布</b></p><p><b> 2 概要設計</b></p><p>
9、; 在設計標準考試設計時,編寫了2個Java源文件:GuessShu.java,Dengru.java.</p><p> 游戲分為隨機數的獲取,輸入輸出模塊,判斷模塊,自動計數模塊,結果輸出模塊。其中輸入輸出模塊中系統會對玩家給出的數進行判斷和輸出。判斷模塊會對玩家的水平進行判斷,并計算出玩家所用的時間和次數。</p><p><b> 2.1系統總體功能</b&g
10、t;</p><p><b> 圖 2 游戲框架</b></p><p> 2.2 游戲流程概述</p><p><b> 圖 3 游戲流程</b></p><p> 3 設計過程或程序代碼</p><p><b> 3.1 猜數游戲</b>&
11、lt;/p><p> 1.隨機數的獲?。和婕逸斎胍粋€數字,數字的范圍在1-100之間,系統獲取隨機數。</p><p> 2. 輸入輸出模塊:對玩家輸入的數字進行判斷和提示。如果玩家輸入的不是系統要求的數字,系統將提示您,您輸入的不是數字請重新輸入.。如果玩家輸入的數字與隨機生成數相比較,比隨機生成數小.系統提示您,數字太小請您重新輸入。如果玩家輸入的數字與隨機生成數相比較,比隨機生成數大
12、.系統提示您,數字太大請您重新輸入。</p><p> 3. 判斷模塊:算出所用時間在玩家猜中時給出其所用時間,系統給出對其水平的判斷和是否繼續的提示;對玩家要求判斷執行。</p><p> 4.自動計數模塊:系統根據您猜數字的次數,自動計數.</p><p> 5.結果輸出模塊:直到用戶猜到數字為止,提示信息是否繼續猜數字,如果繼續將進入下一次游戲,如果退出
13、將退出游戲系統.</p><p> 3.2功能模塊詳細設計</p><p><b> ?。?)隨機數的獲取</b></p><p> 功能描述:玩家輸入一個數字,數字的范圍在1-100之間,系統獲取隨機數。</p><p> ?。?) 輸入輸出模塊</p><p> 功能描述:對玩家輸入的數
14、字進行判斷和提示。如果玩家輸入的不是系統要求的數字,系統將提示您,您輸入的不是數字請重新輸入.。如果玩家輸入的數字與隨機生成數相比較,比隨機生成數小.系統提示您,數字太小請您重新輸入。如果玩家輸入的數字與隨機生成數相比較,比隨機生成數大.系統提示您,數字太大請您重新輸入。</p><p> 圖4 輸入輸出模塊圖</p><p><b> (3) 判斷模塊</b>&
15、lt;/p><p> 功能描述:算出所用時間在玩家猜中時給出其所用時間,系統給出對其水平的判斷和是否繼續的提示;對玩家要求判斷執行。</p><p> (4) 自動計數模塊</p><p> 功能描述:系統根據您猜數字的次數,自動計數.</p><p> 圖5 自動計數模塊圖</p><p> (5) 結果輸出模
16、塊</p><p> 功能描述:直到用戶猜到數字為止,提示信息是否繼續猜數字,如果繼續將進入下一次游戲,如果退出將退出游戲系統.</p><p><b> 3.3 類的設計</b></p><p><b> 表1類的分類</b></p><p> 從用戶的角度看,Java 源程序中的類分為兩
17、種:</p><p> 系統定義的類:即 Java 類庫,它是系統定義好的類。Java 語言由語法規則和類庫兩部分組成,語法規則確定 Java 程序的書寫規范;類庫則提供了 Java 程序與運行它的系統軟件(Java 虛擬機)之間的接口。</p><p> 用戶自定義類:系統定義的類雖然實現了許多常見的功能,但是用戶程序仍然需要針對特定問題的特定邏輯來定義自己的類。</p>
18、<p> 在 Java 程序中,用戶自定義類的一般格式如下: </p><p><b> class 類名</b></p><p><b> 數據成員</b></p><p><b> 成員方法</b></p><p> 類的結構是由類說明和類體兩部分組
19、成的。</p><p> 類的說明部分由關鍵字 class 與類名組成,類名的命名遵循 Java 標識符的定義規則。</p><p> 類體是類聲明中花括號所包括的全部內容,它又是由數據成員(屬性)和成員方法(方法)兩部分組成。</p><p> 數據成員描述對象的屬性;成員方法則刻畫對象的行為或動作,每一個成員方法確定一個功能或操作。</p>
20、<p> 首先搭建Java程序框架。打開Eclipse,新建名為GuessNumberGame的項目,然后新建名為GuessNumber的Java類。GuessNumber加上合適的javadoc。</p><p> 第一步:隨機數的產生</p><p> 我們可以借助Java API提供的Random類來產生一個隨機數。</p><p> 首先在
21、main函數中加入以下三行代碼:</p><p> // 新建一個隨機數產生器,然后生成一個1到100之間的整數。</p><p> num=(int)(Math.random()*100);</p><p> String answer;</p><p> Scanner input=new Scanner(System.i
22、n); </p><p> 第二步:標準輸入輸出</p><p> 標準輸入輸出(Standard I/O)是指可以被應用程序使用的信息流。應用程序可以從標準輸入(Standard input)讀取數據,向標準輸出(Standard output)寫數據,把出錯信息發送到標準錯誤(Standard error)。通過輸入輸出,應用程序和應用程序之間可以被串聯起來使用。雖然標準輸入輸出是
23、從UNIX發展出來的概念,在Windows中也廣泛應用。</p><p> 猜數字游戲主要用到標準輸入,更明確一些,就是控制臺輸入。相反,要從控制臺輸入,就需要用到System.in。它是一個純粹的輸入流,而猜數字游戲主要是通過控制臺獲取玩家的字符輸入,我們需要把它包裝成一個BufferedReader。</p><p> 第三步:使用BorderLayout對圖形界面的窗口進行設計。
24、</p><p><b> 4 程序代碼調試</b></p><p><b> 4.1程序流程</b></p><p> 點擊“獲取隨機數”按鈕,系統獲取到一個隨機數。 玩家輸入一個數,如果玩家輸入的數比系統給出的隨機數小,系統會提示“猜小了”。如果玩家輸入的數比系統給出的隨機數大,系統提示“猜大了”。 如果玩家猜對
25、了數,會計算出玩家所用的時間和所猜的次數。如果玩家猜對了數。</p><p> 4.2關鍵算法與技術實現</p><p> 4.2.1 隨機數的獲取</p><p> number = (int) (Math.random() * 10) + 1;</p><p> 4.2.2 輸入輸出</p><p> p
26、ublic void actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == buttonGetNumber) {</p><p> number = (int) (Math.random() * 10) + 1;</p><p> } else if (e.getSource() == b
27、uttonEnter) {</p><p> int guess = 0;</p><p><b> try {</b></p><p> guess = Integer.parseInt(inputNumber.getText());</p><p> if (guess == number) {</p&
28、gt;<p> JOptionPane.showMessageDialog(this, "猜對了");</p><p><b> dui++;</b></p><p> } else if (guess > number) {</p><p> JOptionPane.showMessageDia
29、log(this, "猜大了");</p><p><b> da++;</b></p><p> inputNumber.setText(null);</p><p> } else if (guess < number) {</p><p> JOptionPane.showMess
30、ageDialog(this, "猜小了");</p><p><b> xiao++;</b></p><p> inputNumber.setText(null);</p><p><b> }</b></p><p> } catch (NumberFormatEx
31、ception event) {</p><p> JOptionPane.showMessageDialog(this, "請輸入數字字符");</p><p><b> }</b></p><p><b> }</b></p><p> else if(e.getSo
32、urce()==result){</p><p> time2=System.currentTimeMillis();</p><p> 4.2.3 判斷時間</p><p> time2=System.currentTimeMillis();</p><p> JOptionPane.showMessageDialog(this,
33、"您此次操作花費時間為"+(time2-time1)+"ms"+"\n"+"猜對有:"+dui+"次"+"\n"+"猜大有:"+da+"次"+"\n"+"猜小有:"+xiao+"\n");</p><
34、p><b> };</b></p><p> 4.2.4 自動計數</p><p> if (guess == number) {</p><p> JOptionPane.showMessageDialog(this, "猜對了");</p><p><b> dui++;
35、</b></p><p> } else if (guess > number) {</p><p> JOptionPane.showMessageDialog(this, "猜大了");</p><p><b> da++;</b></p><p> inputNumbe
36、r.setText(null);</p><p> } else if (guess < number) {</p><p> JOptionPane.showMessageDialog(this, "猜小了");</p><p><b> xiao++;</b></p><p> in
37、putNumber.setText(null)</p><p> 4.2.5 結果輸出</p><p> JOptionPane.showMessageDialog(this, "您此次操作花費時間為"+(time2-time1)+"ms"+"\n"+"猜對有:"+dui+"次"+&qu
38、ot;\n"+"猜大有:"+da+"次"+"\n"+"猜小有:"+xiao+"\n");</p><p> 4.2.6 圖形界面的實現</p><p> JPanel jp1,jp2,jp3;</p><p> JTextField inputNumb
39、er;</p><p> JLabel jl1,jl2;</p><p> JButton buttonGetNumber, buttonEnter,exit,result;</p><p> long time1,time2;</p><p> int da=0,xiao=0,dui=0;</p><p>
40、 public GuessShu() {</p><p> time1=System.currentTimeMillis();</p><p> jp1=new JPanel();</p><p> jl1=new JLabel("產生隨機數");</p><p> buttonGetNumber = new JB
41、utton("隨機數");</p><p> jp1.add(jl1);</p><p> jp1.add(buttonGetNumber);</p><p> jp2=new JPanel();</p><p> jl2=new JLabel("輸入你猜的數");</p><
42、;p> inputNumber = new JTextField("0", 5);</p><p> jp2.add(jl2);</p><p> jp2.add(inputNumber);</p><p> jp3=new JPanel();</p><p> buttonEnter = new JBut
43、ton("確定");</p><p> result=new JButton("結果");</p><p> exit=new JButton("結束");</p><p> exit.addActionListener(this);</p><p> jp3.add(but
44、tonEnter);</p><p> jp3.add(result);</p><p> jp3.add(exit);</p><p> result.addActionListener(this);</p><p> buttonEnter.addActionListener(this);</p><p>
45、 buttonGetNumber.addActionListener(this);</p><p> this.setLayout(new GridLayout(3, 1)); // 3, 1</p><p> this.getContentPane().add(jp1);</p><p> this.getContentPane().add(jp2);&l
46、t;/p><p> this.getContentPane().add(jp3);</p><p> this.setResizable(false);</p><p> this.setTitle("沈悅:猜數字游戲");</p><p> this.setBounds(100, 100, 280, 200);<
47、;/p><p> this.setVisible(true);</p><p> this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b> 4.3 類的實現</b></p><p> 首先搭建Java程序框架。打開Eclipse,新建名為she
48、nyue的項目,然后新建名為GuessNumber的Java類,再建立一個Dengru的Java類</p><p> 第一步:隨機數的產生</p><p> 我們可以借助Java API提供的Random類來產生一個隨機數。</p><p> 首先在main函數中加入以下三行代碼:</p><p> // 新建一個隨機數產生器,然后生
49、成一個1到100之間的整數。</p><p> number=(int)(Math.random()*100);</p><p> Eclipse立即在錯誤語句處劃出紅線,把鼠標移動到紅線上。</p><p> 包(Package)的概念</p><p> Java API中包含了極其豐富、類似于Random這樣由Sun預先定義好
50、的類。不同包中可以有同名同姓的類,如果沒有包的概念,就會遇到命名沖突問題。此外,包還能進行安全控制。Random類是在java.util這個包中??梢允謩釉谠闯绦蝽敳枯斎雐mport java.util.Random;語句來申明該程序將要使用java.util包中的Random類,然而有了Eclipse,就不用那么麻煩了—把光標移動到有紅色波浪線的Random上,然后按下Ctrl+Shift+M,Eclipse會自動幫你完成導入的工作了
51、,此時保存一下源代碼。</p><p> 第二句語句定義一個整型變量number來保存隨機產生的整數,并且用直接初始化的方法把random產生的隨機數賦給number變量。</p><p> 第二步:標準輸入輸出</p><p> 標準輸入輸出(Standard I/O)是指可以被應用程序使用的信息流。應用程序可以從標準輸入(Standard input)讀取
52、數據,向標準輸出(Standard output)寫數據,把出錯信息發送到標準錯誤(Standard error)。通過輸入輸出,應用程序和應用程序之間可以被串聯起來使用。雖然標準輸入輸出是從UNIX發展出來的概念,在Windows中也廣泛應用。</p><p> 猜數字游戲主要用到標準輸入,更明確一些,就是控制臺輸入。相反,要從控制臺輸入,就需要用到System.in。它是一個純粹的輸入流,而猜數字游戲主要是
53、通過控制臺獲取玩家的字符輸入,我們需要把它包裝成一個BufferedReader。</p><p> 第三步:使用BorderLayout對圖形界面的窗口進行設計。</p><p><b> 5設計結果與分析</b></p><p><b> 5.1登錄界面</b></p><p><b
54、> 圖5輸入賬號與密碼</b></p><p><b> 5.2游戲界面</b></p><p><b> 圖7 進入游戲界面</b></p><p><b> 5.3猜數舉例</b></p><p><b> 第一次猜數</b>
55、;</p><p><b> 第二次猜數</b></p><p><b> 第三次猜數</b></p><p><b> 第七次猜數</b></p><p><b> 按下結果按鈕</b></p><p><b>
56、 參考文獻</b></p><p><b> 格式:</b></p><p> [1]耿祥義張躍平.Java面向對象程序設計 [M].北京清華大學出版社2009.11. </p><p> [2]耿祥義張躍平.Java課程設計第二版 [M].北京清華大學出版2008.7.</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設計——猜數字游戲
- c++課程設計報告--猜數游戲
- c語言課程設計--猜數游戲
- 猜數字游戲課程設計報告
- 課程設計報告--猜數字游戲
- java課程設計-蜘蛛紙牌游戲設計課程設計報告
- java課程設計--掃雷游戲報告
- java火柴游戲課程設計報告
- 猜單詞游戲c++課程設計報告
- c語言課程設計---猜數字游戲報告
- android課程設計報告--猜數字小游戲
- led猜盤游戲課程設計
- led猜盤游戲課程設計
- java課程設計----課程設計報告
- java課程設計報告--- 蜘蛛紙牌游戲
- java掃雷游戲課程設計
- java課程設計--手機游戲
- java課程設計-掃雷游戲
- java課程設計報告-掃雷小游戲
- java課程設計-撲克游戲
評論
0/150
提交評論