2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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ì)過(guò)程或程序代碼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ù)猜,直至猜對(duì)為止。游戲結(jié)束后計(jì)算出玩家所用的時(shí)間與所猜的次數(shù)。</p&

7、gt;<p>  1.1 課程設(shè)計(jì)目的</p><p>  通過(guò)設(shè)計(jì)一個(gè)《標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)》,進(jìn)一步熟悉Java中的概念、基本知識(shí)和技能利用所學(xué)的基本知識(shí)和技能解決簡(jiǎn)單的面向?qū)ο蟮某绦蛟O(shè)計(jì)問(wèn)題。了解系統(tǒng)開(kāi)發(fā)的需求分析、層次設(shè)計(jì)、模塊分解、編碼測(cè)試、模塊組裝與整體調(diào)試的全過(guò)程,加深對(duì)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í),編寫(xiě)了2個(gè)Java源文件:GuessShu.java,Dengru.java.</p><p>  游戲分為隨機(jī)數(shù)的獲取,輸入輸出模塊,判斷模塊,自動(dòng)計(jì)數(shù)模塊,結(jié)果輸出模塊。其中輸入輸出模塊中系統(tǒng)會(huì)對(duì)玩家給出的數(shù)進(jìn)行判斷和輸出。判斷模塊會(huì)對(duì)玩家的水平進(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ì)過(guò)程或程序代碼</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. 輸入輸出模塊:對(duì)玩家輸入的數(shù)字進(jìn)行判斷和提示。如果玩家輸入的不是系統(tǒng)要求的數(shù)字,系統(tǒng)將提示您,您輸入的不是數(shù)字請(qǐng)重新輸入.。如果玩家輸入的數(shù)字與隨機(jī)生成數(shù)相比較,比隨機(jī)生成數(shù)小.系統(tǒng)提示您,數(shù)字太小請(qǐng)您重新輸入。如果玩家輸入的數(shù)字與隨機(jī)生成數(shù)相比較,比隨機(jī)生成數(shù)大

12、.系統(tǒng)提示您,數(shù)字太大請(qǐng)您重新輸入。</p><p>  3. 判斷模塊:算出所用時(shí)間在玩家猜中時(shí)給出其所用時(shí)間,系統(tǒng)給出對(duì)其水平的判斷和是否繼續(xù)的提示;對(duì)玩家要求判斷執(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>  功能描述:對(duì)玩家輸入的數(shù)

14、字進(jìn)行判斷和提示。如果玩家輸入的不是系統(tǒng)要求的數(shù)字,系統(tǒng)將提示您,您輸入的不是數(shù)字請(qǐng)重新輸入.。如果玩家輸入的數(shù)字與隨機(jī)生成數(shù)相比較,比隨機(jī)生成數(shù)小.系統(tǒng)提示您,數(shù)字太小請(qǐng)您重新輸入。如果玩家輸入的數(shù)字與隨機(jī)生成數(shù)相比較,比隨機(jī)生成數(shù)大.系統(tǒng)提示您,數(shù)字太大請(qǐng)您重新輸入。</p><p>  圖4 輸入輸出模塊圖</p><p><b>  (3) 判斷模塊</b>&

15、lt;/p><p>  功能描述:算出所用時(shí)間在玩家猜中時(shí)給出其所用時(shí)間,系統(tǒng)給出對(duì)其水平的判斷和是否繼續(xù)的提示;對(duì)玩家要求判斷執(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 類庫(kù),它是系統(tǒng)定義好的類。Java 語(yǔ)言由語(yǔ)法規(guī)則和類庫(kù)兩部分組成,語(yǔ)法規(guī)則確定 Java 程序的書(shū)寫(xiě)規(guī)范;類庫(kù)則提供了 Java 程序與運(yùn)行它的系統(tǒng)軟件(Java 虛擬機(jī))之間的接口。</p><p>  用戶自定義類:系統(tǒng)定義的類雖然實(shí)現(xiàn)了許多常見(jiàn)的功能,但是用戶程序仍然需要針對(duì)特定問(wèn)題的特定邏輯來(lái)定義自己的類。</p>

18、<p>  在 Java 程序中,用戶自定義類的一般格式如下: </p><p><b>  class 類名</b></p><p><b>  數(shù)據(jù)成員</b></p><p><b>  成員方法</b></p><p>  類的結(jié)構(gòu)是由類說(shuō)明和類體兩部分組

19、成的。</p><p>  類的說(shuō)明部分由關(guān)鍵字 class 與類名組成,類名的命名遵循 Java 標(biāo)識(shí)符的定義規(guī)則。</p><p>  類體是類聲明中花括號(hào)所包括的全部?jī)?nèi)容,它又是由數(shù)據(jù)成員(屬性)和成員方法(方法)兩部分組成。</p><p>  數(shù)據(jù)成員描述對(duì)象的屬性;成員方法則刻畫(huà)對(duì)象的行為或動(dòng)作,每一個(gè)成員方法確定一個(gè)功能或操作。</p>

20、<p>  首先搭建Java程序框架。打開(kāi)Eclipse,新建名為GuessNumberGame的項(xiàng)目,然后新建名為GuessNumber的Java類。GuessNumber加上合適的javadoc。</p><p>  第一步:隨機(jī)數(shù)的產(chǎn)生</p><p>  我們可以借助Java API提供的Random類來(lái)產(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)寫(xiě)數(shù)據(jù),把出錯(cuò)信息發(fā)送到標(biāo)準(zhǔn)錯(cuò)誤(Standard error)。通過(guò)輸入輸出,應(yīng)用程序和應(yīng)用程序之間可以被串聯(lián)起來(lái)使用。雖然標(biāo)準(zhǔn)輸入輸出是

23、從UNIX發(fā)展出來(lái)的概念,在Windows中也廣泛應(yīng)用。</p><p>  猜數(shù)字游戲主要用到標(biāo)準(zhǔn)輸入,更明確一些,就是控制臺(tái)輸入。相反,要從控制臺(tái)輸入,就需要用到System.in。它是一個(gè)純粹的輸入流,而猜數(shù)字游戲主要是通過(guò)控制臺(tái)獲取玩家的字符輸入,我們需要把它包裝成一個(gè)BufferedReader。</p><p>  第三步:使用BorderLayout對(duì)圖形界面的窗口進(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)提示“猜大了”。 如果玩家猜對(duì)

25、了數(shù),會(huì)計(jì)算出玩家所用的時(shí)間和所猜的次數(shù)。如果玩家猜對(duì)了數(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, "猜對(duì)了");</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, "請(qǐng)輸入數(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"+"猜對(duì)有:"+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, "猜對(duì)了");</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"+"猜對(duì)有:"+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程序框架。打開(kāi)Eclipse,新建名為she

48、nyue的項(xiàng)目,然后新建名為GuessNumber的Java類,再建立一個(gè)Dengru的Java類</p><p>  第一步:隨機(jī)數(shù)的產(chǎn)生</p><p>  我們可以借助Java API提供的Random類來(lái)產(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ò)誤語(yǔ)句處劃出紅線,把鼠標(biāo)移動(dòng)到紅線上。</p><p>  包(Package)的概念</p><p>  Java API中包含了極其豐富、類似于Random這樣由Sun預(yù)先定義好

50、的類。不同包中可以有同名同姓的類,如果沒(méi)有包的概念,就會(huì)遇到命名沖突問(wèn)題。此外,包還能進(jìn)行安全控制。Random類是在java.util這個(gè)包中??梢允謩?dòng)在源程序頂部輸入import java.util.Random;語(yǔ)句來(lái)申明該程序?qū)⒁褂胘ava.util包中的Random類,然而有了Eclipse,就不用那么麻煩了—把光標(biāo)移動(dòng)到有紅色波浪線的Random上,然后按下Ctrl+Shift+M,Eclipse會(huì)自動(dòng)幫你完成導(dǎo)入的工作了

51、,此時(shí)保存一下源代碼。</p><p>  第二句語(yǔ)句定義一個(gè)整型變量number來(lái)保存隨機(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)寫(xiě)數(shù)據(jù),把出錯(cuò)信息發(fā)送到標(biāo)準(zhǔn)錯(cuò)誤(Standard error)。通過(guò)輸入輸出,應(yīng)用程序和應(yīng)用程序之間可以被串聯(lián)起來(lái)使用。雖然標(biāo)準(zhǔn)輸入輸出是從UNIX發(fā)展出來(lái)的概念,在Windows中也廣泛應(yīng)用。</p><p>  猜數(shù)字游戲主要用到標(biāo)準(zhǔn)輸入,更明確一些,就是控制臺(tái)輸入。相反,要從控制臺(tái)輸入,就需要用到System.in。它是一個(gè)純粹的輸入流,而猜數(shù)字游戲主要是

53、通過(guò)控制臺(tái)獲取玩家的字符輸入,我們需要把它包裝成一個(gè)BufferedReader。</p><p>  第三步:使用BorderLayout對(duì)圖形界面的窗口進(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論