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