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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  前言1</b></p><p><b>  正文1</b></p><p>  1、設(shè)計任務(wù)與要求1</p><p>  1.1 設(shè)計任務(wù)與要求1</p><p> 

2、 1.2 選題目的與意義1</p><p><b>  2、需求分析2</b></p><p>  2.1 用戶需求分析2</p><p>  2.2 開發(fā)環(huán)境分析2</p><p><b>  3、系統(tǒng)設(shè)計3</b></p><p>  3.1 系統(tǒng)總體設(shè)計:3

3、</p><p>  3.1.1 總體設(shè)計分析3</p><p>  3.1.2 程序結(jié)構(gòu)3</p><p>  3.2 功能模塊設(shè)計5</p><p>  3.2.1 功能模塊圖5</p><p>  3.2.2 功能模塊詳細(xì)設(shè)計6</p><p>  3.3 類的設(shè)計:7<

4、/p><p><b>  4、程序?qū)崿F(xiàn)9</b></p><p>  4.1 程序流程圖9</p><p>  4.2 關(guān)鍵算法與技術(shù)實(shí)現(xiàn)10</p><p>  4.2.1 隨機(jī)數(shù)的獲取10</p><p>  4.2.2 輸入輸出10</p><p>  4.2.

5、3 判斷時間11</p><p>  4.2.4 自動計數(shù)11</p><p>  4.2.5 結(jié)果輸出12</p><p>  4.2.6 圖形界面的實(shí)現(xiàn)12</p><p>  4.3 類的實(shí)現(xiàn)13</p><p><b>  5、源程序:14</b></p><

6、;p><b>  6、測試運(yùn)行18</b></p><p>  6.1 系統(tǒng)測試方案18</p><p>  6.2 運(yùn)行結(jié)果分析18</p><p><b>  6.3結(jié)論19</b></p><p><b>  致謝19</b></p><

7、;p><b>  參考文獻(xiàn)20</b></p><p><b>  前言</b></p><p>  Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動態(tài)語言。猜數(shù)字游戲是一個簡單,有趣的小游戲。通過設(shè)計猜數(shù)字游戲,可以進(jìn)一步了解Swing圖形用戶界面設(shè)計,事件處理和異常處理機(jī)制。

8、利用Eclipse平臺,綜合運(yùn)用Java基礎(chǔ)知識,設(shè)計猜數(shù)字游戲。</p><p><b>  正文</b></p><p><b>  1、設(shè)計任務(wù)與要求</b></p><p>  1.1 設(shè)計任務(wù)與要求</p><p>  功能要求:該程序用圖形界面實(shí)現(xiàn)下面功能:用計算機(jī)產(chǎn)生一個100以內(nèi)的隨

9、機(jī)數(shù),游戲者進(jìn)行猜數(shù),猜中即勝,猜不中,提示是大了還是小了,繼續(xù)猜,直至猜對為止。游戲結(jié)束后給出評語并計算出玩家所用的時間與所猜的次數(shù)。</p><p><b>  具體要求:</b></p><p>  (1) 輸入任意一個數(shù)字。數(shù)字的要求是1—100的自然數(shù)即可。</p><p>  (2) 系統(tǒng)對您輸入的數(shù)字進(jìn)行判斷。如果玩家輸入的數(shù)字與

10、計算機(jī)隨機(jī)生成數(shù)相比較,輸入的數(shù)字比隨機(jī)生成數(shù)小.系統(tǒng)將提示您,數(shù)字太小請您重新輸入。如果玩家輸入的數(shù)字與計算機(jī)隨機(jī)生成數(shù)相比較,如果輸入的數(shù)字比隨機(jī)生成數(shù)大。系統(tǒng)將提示您,數(shù)字太大請您重新輸入。如果玩家輸入的字符不是合法字符,系統(tǒng)將提示您,您輸入的數(shù)字不合法,請從新輸入。</p><p>  (3) 每猜測一次,系統(tǒng)會記錄下來,游戲結(jié)束后,顯示共猜測多少次。</p><p> ?。?)

11、歡迎界面:通過這里提供的選項(xiàng)(或按鈕),進(jìn)入游戲界面。</p><p>  (5) 游戲界面提供“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到隨機(jī)數(shù),游戲者輸入自己的猜測結(jié)果,通過按“確認(rèn)”按鈕完成輸入。每次提示輸入猜測結(jié)果時,給出猜測的準(zhǔn)確度提示。</p><p> ?。?) 按“獲取隨機(jī)數(shù)”按鈕,繼續(xù)游戲。</p><p> ?。?) 游戲結(jié)束后給出評語并計算出玩家所用的時間與

12、所猜次數(shù)。</p><p>  界面要示:用圖形界面實(shí)現(xiàn)。</p><p>  1.2 選題目的與意義</p><p>  通過猜數(shù)游戲這個課題我可以學(xué)到文本框、標(biāo)簽框、按鈕、布局、對話框方面的知識和應(yīng)用,達(dá)到設(shè)計登陸界面、加入圖像顯示功能以及設(shè)計按鈕的目的,讓我更加的掌握和理解java面向?qū)ο笳Z言的需求分析、系統(tǒng)設(shè)計,所以我選擇猜數(shù)游戲這個課題。</p>

13、;<p><b>  2、需求分析</b></p><p>  2.1 用戶需求分析</p><p>  1.玩家輸入一個數(shù)字,數(shù)字的范圍在1-100之間,系統(tǒng)獲取隨機(jī)數(shù)。</p><p>  2.對玩家輸入的數(shù)字進(jìn)行判斷大小,如果不是系統(tǒng)要求的數(shù)字,系統(tǒng)將提示您,您輸入的不是數(shù)字請重新輸入,給出提醒以便玩家進(jìn)一步選擇。</

14、p><p>  3.玩家猜中時系統(tǒng)給出所用時間和游戲水平的判斷,系統(tǒng)給出是否繼續(xù)的提示及判斷。</p><p>  4.系統(tǒng)根據(jù)您猜數(shù)字的次數(shù),自動計數(shù).</p><p>  5.直到用戶猜到數(shù)字為止,提示信息是否繼續(xù)猜數(shù)字,如果繼續(xù)將進(jìn)入下一次游戲,如果退出將退出游戲系統(tǒng).</p><p>  2.2 開發(fā)環(huán)境分析</p><

15、;p>  Eclipse企業(yè)級工作平臺(Eclipse Enterprise Workbench ,簡稱Eclipse)是對Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibern

16、ate。</p><p>  在結(jié)構(gòu)上, Eclipse的特征可以被分為7類:</p><p>  1. JavaEE模型</p><p>  2. WEB開發(fā)工具</p><p>  3. EJB開發(fā)工具</p><p>  4. 應(yīng)用程序服務(wù)器的連接器</p><p>  5. JavaEE

17、項(xiàng)目部署服務(wù)</p><p><b>  6. 數(shù)據(jù)庫服務(wù)</b></p><p>  7. Eclipse整合幫助</p><p>  對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。Eclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。</

18、p><p>  簡單而言,Eclipse是Eclipse的插件,也是一款功能強(qiáng)大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。</p><p>  該程序基于JDK和Eclipse編寫,選用Eclipse是界面設(shè)計所需。根據(jù)系統(tǒng)范圍隨機(jī)產(chǎn)生一個數(shù)字,可根據(jù)玩家選擇給出不同的數(shù)字。玩家輸入所猜數(shù)字時給出與真實(shí)數(shù)字的大小比較。在玩家猜中時,可給出其所用時間,并給出評價。最后,游戲的

19、結(jié)束與繼續(xù)可由玩家控制。</p><p><b>  3、系統(tǒng)設(shè)計</b></p><p>  3.1 系統(tǒng)總體設(shè)計:</p><p>  3.1.1 總體設(shè)計分析</p><p>  1.隨機(jī)數(shù)的獲?。和婕逸斎胍粋€數(shù)字,數(shù)字的范圍在1-100之間,系統(tǒng)獲取隨機(jī)數(shù)。</p><p>  2. 輸入

20、輸出模塊:對玩家輸入的數(shù)字進(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>  3. 判斷模塊:算出所用時間在玩家猜中時給出其所用時間,系統(tǒng)給出對其水平的判斷和是否繼續(xù)的提示;對

21、玩家要求判斷執(zhí)行。</p><p>  4.自動計數(shù)模塊:系統(tǒng)根據(jù)您猜數(shù)字的次數(shù),自動計數(shù).</p><p>  5.結(jié)果輸出模塊:直到用戶猜到數(shù)字為止,提示信息是否繼續(xù)猜數(shù)字,如果繼續(xù)將進(jìn)入下一次游戲,如果退出將退出游戲系統(tǒng).</p><p>  3.1.2 程序結(jié)構(gòu)</p><p>  點(diǎn)擊“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到一個隨機(jī)數(shù)。 玩家

22、輸入一個數(shù),如果玩家輸入的數(shù)比系統(tǒng)給出的隨機(jī)數(shù)小,系統(tǒng)會提示“您猜的太小了,請繼續(xù)猜!”。如果玩家輸入的數(shù)比系統(tǒng)給出的隨機(jī)數(shù)大,系統(tǒng)提示“您猜的太大了,請繼續(xù)猜!”。 如果玩家猜對了數(shù),但是所用時間大于十秒,系統(tǒng)會提示“這么久才猜出來,有點(diǎn)笨!”,并且會計算出玩家所用的時間和所猜的次數(shù)。如果玩家猜對了數(shù),而且所用時間小于十秒,系統(tǒng)會提示“恭喜您,猜對了!您真棒,智商真高!”,并且會計算出玩家所用的時間和所猜的次數(shù)。</p>

23、<p><b>  圖1 程序結(jié)構(gòu)圖</b></p><p>  3.2 功能模塊設(shè)計</p><p>  3.2.1 功能模塊圖</p><p>  游戲分為隨機(jī)數(shù)的獲取,輸入輸出模塊,判斷模塊,自動計數(shù)模塊,結(jié)果輸出模塊。其中輸入輸出模塊中系統(tǒng)會對玩家給出的數(shù)進(jìn)行判斷和輸出。判斷模塊會對玩家的水平進(jìn)行判斷,并計算出玩家所用的時間

24、和次數(shù)。</p><p><b>  圖2 功能模塊圖</b></p><p>  3.2.2 功能模塊詳細(xì)設(shè)計</p><p><b> ?。?)隨機(jī)數(shù)的獲取</b></p><p>  功能描述:玩家輸入一個數(shù)字,數(shù)字的范圍在1-100之間,系統(tǒng)獲取隨機(jī)數(shù)。</p><p&g

25、t; ?。?) 輸入輸出模塊</p><p>  功能描述:對玩家輸入的數(shù)字進(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>  圖3 輸入輸出模塊圖&l

26、t;/p><p><b>  (3) 判斷模塊</b></p><p>  功能描述:算出所用時間在玩家猜中時給出其所用時間,系統(tǒng)給出對其水平的判斷和是否繼續(xù)的提示;對玩家要求判斷執(zhí)行。</p><p><b>  圖4 判斷模塊圖</b></p><p>  (4) 自動計數(shù)模塊</p>

27、<p>  功能描述:系統(tǒng)根據(jù)您猜數(shù)字的次數(shù),自動計數(shù).</p><p>  圖5 自動計數(shù)模塊圖</p><p>  (5) 結(jié)果輸出模塊</p><p>  功能描述:直到用戶猜到數(shù)字為止,提示信息是否繼續(xù)猜數(shù)字,如果繼續(xù)將進(jìn)入下一次游戲,如果退出將退出游戲系統(tǒng).</p><p><b>  3.3 類的設(shè)計:<

28、;/b></p><p><b>  表1類的分類</b></p><p>  從用戶的角度看,Java 源程序中的類分為兩種:</p><p>  系統(tǒng)定義的類:即 Java 類庫,它是系統(tǒng)定義好的類。Java 語言由語法規(guī)則和類庫兩部分組成,語法規(guī)則確定 Java 程序的書寫規(guī)范;類庫則提供了 Java 程序與運(yùn)行它的系統(tǒng)軟件(Jav

29、a 虛擬機(jī))之間的接口。</p><p>  用戶自定義類:系統(tǒng)定義的類雖然實(shí)現(xiàn)了許多常見的功能,但是用戶程序仍然需要針對特定問題的特定邏輯來定義自己的類。</p><p>  在 Java 程序中,用戶自定義類的一般格式如下: </p><p><b>  class 類名</b></p><p><b> 

30、 數(shù)據(jù)成員</b></p><p><b>  成員方法</b></p><p>  類的結(jié)構(gòu)是由類說明和類體兩部分組成的。</p><p>  類的說明部分由關(guān)鍵字 class 與類名組成,類名的命名遵循 Java 標(biāo)識符的定義規(guī)則。</p><p>  類體是類聲明中花括號所包括的全部內(nèi)容,它又是由數(shù)據(jù)成

31、員(屬性)和成員方法(方法)兩部分組成。</p><p>  數(shù)據(jù)成員描述對象的屬性;成員方法則刻畫對象的行為或動作,每一個成員方法確定一個功能或操作。</p><p>  首先搭建Java程序框架。打開Eclipse,新建名為GuessNumberGame的項(xiàng)目,然后新建名為GuessNumber的Java類。GuessNumber加上合適的javadoc。</p><

32、;p>  第一步:隨機(jī)數(shù)的產(chǎn)生</p><p>  我們可以借助Java API提供的Random類來產(chǎn)生一個隨機(jī)數(shù)。</p><p>  首先在main函數(shù)中加入以下三行代碼:</p><p>  // 新建一個隨機(jī)數(shù)產(chǎn)生器,然后生成一個1到100之間的整數(shù)。</p><p>  num=(int)(Math.random()*100

33、);</p><p>  String answer;</p><p>  Scanner input=new Scanner(System.in); </p><p>  第二步:標(biāo)準(zhǔn)輸入輸出</p><p>  標(biāo)準(zhǔn)輸入輸出(Standard I/O)是指可以被應(yīng)用程序使用的信息流。應(yīng)用程序可以從標(biāo)準(zhǔn)輸入(Standard inp

34、ut)讀取數(shù)據(jù),向標(biāo)準(zhǔn)輸出(Standard output)寫數(shù)據(jù),把出錯信息發(fā)送到標(biāo)準(zhǔn)錯誤(Standard error)。通過輸入輸出,應(yīng)用程序和應(yīng)用程序之間可以被串聯(lián)起來使用。雖然標(biāo)準(zhǔn)輸入輸出是從UNIX發(fā)展出來的概念,在Windows中也廣泛應(yīng)用。</p><p>  猜數(shù)字游戲主要用到標(biāo)準(zhǔn)輸入,更明確一些,就是控制臺輸入。相反,要從控制臺輸入,就需要用到System.in。它是一個純粹的輸入流,而猜數(shù)字

35、游戲主要是通過控制臺獲取玩家的字符輸入,我們需要把它包裝成一個BufferedReader。</p><p>  第三步:使用BorderLayout對圖形界面的窗口進(jìn)行設(shè)計。</p><p><b>  4、程序?qū)崿F(xiàn)</b></p><p><b>  4.1 程序流程圖</b></p><p>

36、  點(diǎn)擊“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到一個隨機(jī)數(shù)。 玩家輸入一個數(shù),如果玩家輸入的數(shù)比系統(tǒng)給出的隨機(jī)數(shù)小,系統(tǒng)會提示“您猜的太小了,請繼續(xù)猜!”。如果玩家輸入的數(shù)比系統(tǒng)給出的隨機(jī)數(shù)大,系統(tǒng)提示“您猜的太大了,請繼續(xù)猜!”。 如果玩家猜對了數(shù),但是所用時間大于十秒,系統(tǒng)會提示“這么久才猜出來,有點(diǎn)笨!”,并且會計算出玩家所用的時間和所猜的次數(shù)。如果玩家猜對了數(shù),而且所用時間小于十秒,系統(tǒng)會提示“恭喜您,猜對了!您真棒,智商真高!”,并且會

37、計算出玩家所用的時間和所猜的次數(shù)。</p><p><b>  圖6 程序流程圖</b></p><p>  4.2 關(guān)鍵算法與技術(shù)實(shí)現(xiàn)</p><p>  4.2.1 隨機(jī)數(shù)的獲取</p><p>  num=(int)(Math.random()*100);</p><p>  Strin

38、g answer;</p><p>  Scanner input=new Scanner(System.in);</p><p>  4.2.2 輸入輸出</p><p>  for(i=1;i<=10;i++)</p><p><b>  {</b></p><p>  if(n

39、um2<num){</p><p>  lbshow.setText("您猜的太小了,請繼續(xù)猜!");</p><p>  continue;</p><p><b>  }</b></p><p>  else if(num2>num){</p&

40、gt;<p>  lbshow.setText("您猜的太大了,請繼續(xù)猜!");</p><p>  continue;</p><p><b>  }</b></p><p>  long endTime=System.currentTimeMillis();</p><

41、;p><b>  long t;</b></p><p>  t=(endTime-startTime)/1000;</p><p>  strshow="您總共猜了"+counter+"次,您猜數(shù)字總共花了"+(endTime-startTime)/1000+"秒";</p><

42、p><b>  if(t<10)</b></p><p>  lbshow.setText("恭喜您,猜對了!您真棒,智商真高!"+strshow);</p><p>  else if(t>10)</p><p>  lbshow.setText("這么久才猜出來,有點(diǎn)笨!"+strs

43、how);</p><p><b>  } </b></p><p><b>  } </b></p><p>  4.2.3 判斷時間</p><p>  startTime=System.currentTimeMillis();</p><p>  long en

44、dTime=System.currentTimeMillis();</p><p>  strshow="您猜數(shù)字總共花了"+(endTime-startTime)/1000+"秒";</p><p>  4.2.4 自動計數(shù)</p><p>  int geust=0;</p><p>  count

45、er++;</p><p>  strshow="您總共猜了"+counter+"次;</p><p>  4.2.5 結(jié)果輸出</p><p><b>  long t;</b></p><p>  t=(endTime-startTime)/1000;</p><p&

46、gt;  strshow="您總共猜了"+counter+"次,您猜數(shù)字總共花了"+(endTime-startTime)/1000+"秒";</p><p><b>  if(t<10)</b></p><p>  lbshow.setText("恭喜您,猜對了!您真棒,智商真高!&quo

47、t;+strshow);</p><p>  else if(t>10)</p><p>  lbshow.setText("這么久才猜出來,有點(diǎn)笨!"+strshow);</p><p>  4.2.6 圖形界面的實(shí)現(xiàn)</p><p>  BorderLayout bdmg=new BorderLayout();

48、</p><p>  Button button1=new Button("獲取隨機(jī)數(shù)"); </p><p>  Button button2=new Button("確定"); </p><p>  String str=null;</p><p>  String str2=null;</p

49、><p>  long startTime;</p><p>  int num,num2;</p><p>  int counter=0;</p><p>  myGeustNum my1=new myGeustNum();</p><p>  TextField input;</p><p>

50、  Label lbshow=new Label("");</p><p>  Label lbshow2=new Label("");</p><p><b>  int i;</b></p><p>  String strshow;</p><p>  public void

51、 init()</p><p><b>  { </b></p><p>  setLayout(bdmg);</p><p>  add(button1,BorderLayout.NORTH); </p><p>  button1.addActionListener(this);</p><p&g

52、t;  button1.setSize(50,50);</p><p>  Label lb1=new Label(" 請輸入");</p><p>  lb1.setSize(50,20);</p><p>  this.add(lb1,BorderLayout.WEST);</p><p>  input=new Te

53、xtField(10);</p><p>  input.setSize(40,50);</p><p>  add(input,BorderLayout.CENTER);</p><p>  add(button2,BorderLayout.EAST); </p><p>  lb1.setSize(50,20);</p>&

54、lt;p>  button2.addActionListener(this);</p><p>  button2.setSize(50,20);</p><p>  add(lbshow,BorderLayout.SOUTH);</p><p>  setSize(450,200);</p><p><b>  } <

55、/b></p><p><b>  4.3 類的實(shí)現(xiàn)</b></p><p>  首先搭建Java程序框架。打開Eclipse,新建名為GuessNumberGame的項(xiàng)目,然后新建名為GuessNumber的Java類。GuessNumber加上合適的javadoc。</p><p>  第一步:隨機(jī)數(shù)的產(chǎn)生</p>&l

56、t;p>  我們可以借助Java API提供的Random類來產(chǎn)生一個隨機(jī)數(shù)。</p><p>  首先在main函數(shù)中加入以下三行代碼:</p><p>  // 新建一個隨機(jī)數(shù)產(chǎn)生器,然后生成一個1到100之間的整數(shù)。</p><p>  num=(int)(Math.random()*100);</p><p>  Strin

57、g answer;</p><p>  Scanner input=new Scanner(System.in); </p><p>  Eclipse立即在錯誤語句處劃出紅線,把鼠標(biāo)移動到紅線上。</p><p>  包(Package)的概念</p><p>  Java API中包含了極其豐富、類似于Random這樣由Sun預(yù)先定義

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

59、了,此時保存一下源代碼。</p><p>  第二句語句定義一個整型變量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)讀

60、取數(shù)據(jù),向標(biāo)準(zhǔn)輸出(Standard output)寫數(shù)據(jù),把出錯信息發(fā)送到標(biāo)準(zhǔn)錯誤(Standard error)。通過輸入輸出,應(yīng)用程序和應(yīng)用程序之間可以被串聯(lián)起來使用。雖然標(biāo)準(zhǔn)輸入輸出是從UNIX發(fā)展出來的概念,在Windows中也廣泛應(yīng)用。</p><p>  猜數(shù)字游戲主要用到標(biāo)準(zhǔn)輸入,更明確一些,就是控制臺輸入。相反,要從控制臺輸入,就需要用到System.in。它是一個純粹的輸入流,而猜數(shù)字游戲主要

61、是通過控制臺獲取玩家的字符輸入,我們需要把它包裝成一個BufferedReader。</p><p>  第三步:使用BorderLayout對圖形界面的窗口進(jìn)行設(shè)計。</p><p><b>  5、源程序:</b></p><p>  Package a;</p><p>  import java.awt.Colo

62、r; </p><p>  import java.awt.Container; </p><p>  import java.awt.FlowLayout; </p><p>  import java.awt.event.ActionEvent; </p><p>  import java.awt.event.ActionListene

63、r; </p><p>  import javax.swing.Box; </p><p>  import javax.swing.JButton; </p><p>  import javax.swing.JFrame; </p><p>  import javax.swing.JLabel; </p><p&

64、gt;  import javax.swing.JOptionPane; </p><p>  import javax.swing.JTextField; </p><p>  class WindowButton extends JFrame implements ActionListener{ /** * </p><p><b>  */

65、</b></p><p>  private static final long serialVersionUID = 1L; </p><p>  int number; </p><p>  JTextField inputNumber; </p><p>  JLabel feedBack; </p><

66、p>  JButton buttonGetNumber,buttonEnter; </p><p>  WindowButton(String s){ super("猜數(shù)字小游戲"); </p><p>  buttonGetNumber=new JButton("得到一個隨機(jī)數(shù)"); </p><p>  feedBa

67、ck=new JLabel("無反饋信息",JLabel.CENTER); </p><p>  feedBack.setBackground(Color.green); </p><p>  inputNumber=new JTextField("0",5); </p><p>  buttonEnter=new JButt

68、on("確定"); </p><p>  buttonEnter.addActionListener(this); </p><p>  buttonGetNumber.addActionListener(this); </p><p>  buttonGetNumber.addActionListener(this); </p>

69、<p>  Box boxH1=Box.createHorizontalBox(); </p><p>  boxH1.add(new JLabel("獲取1-100之間的隨機(jī)數(shù):")); </p><p>  boxH1.add(buttonGetNumber); </p><p>  Box boxH2=Box.createHori

70、zontalBox(); </p><p>  boxH2.add(new JLabel("輸入您的猜測: "));</p><p>  boxH2.add(inputNumber); </p><p>  Box boxH3=Box.createHorizontalBox(); </p><p>  boxH3.add(

71、new JLabel("單擊確定按鈕: "));</p><p>  boxH3.add(buttonEnter); </p><p>  Box boxH4=Box.createHorizontalBox(); </p><p>  boxH4.add(new JLabel("反饋信息: ")); </p>&

72、lt;p>  boxH4.add(feedBack); </p><p>  Box baseBox=Box.createVerticalBox(); </p><p>  baseBox.add(boxH1); </p><p>  baseBox.add(boxH2); </p><p>  baseBox.add(boxH3);

73、</p><p>  baseBox.add(boxH4); </p><p>  Container con=getContentPane(); </p><p>  con.setLayout(new FlowLayout()); </p><p>  con.add(baseBox); </p><p>  co

74、n.validate(); </p><p>  setBounds(120,125,279,200); </p><p>  setVisible(true); </p><p>  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); </p><p>  setBounds(100,100,15

75、0,150); </p><p>  setVisible(true); </p><p>  validate(); } </p><p>  public void actionPerformed(ActionEvent e){ </p><p>  if(e.getSource()==buttonGetNumber){ </p&

76、gt;<p>  number=(int)(Math.random()*100)+1; } </p><p>  else if(e.getSource()==buttonEnter){</p><p>  int guess=0; </p><p><b>  try{ </b></p><p>  gu

77、ess=Integer.parseInt(inputNumber.getText()); </p><p>  if(guess==number){ </p><p>  JOptionPane.showMessageDialog(this,"猜對了"); } </p><p>  else if(guess>number){ </

78、p><p>  JOptionPane.showMessageDialog(this,"猜大了"); </p><p>  inputNumber.setText(null); } </p><p>  else if(guess<number){ </p><p>  JOptionPane.showMessageD

79、ialog(this,"猜小了"); </p><p>  inputNumber.setText(null); } } </p><p>  catch(NumberFormatException event){ </p><p>  JOptionPane.showMessageDialog(this,"請輸入數(shù)字字符"

80、); } } </p><p><b>  } } </b></p><p>  public class 猜數(shù)字游戲 { </p><p>  public static void main(String args[]){</p><p>  new WindowButton("猜數(shù)字小游戲");

81、 } </p><p><b>  }</b></p><p>  package b;</p><p>  import java.util.Date;</p><p>  import java.util.Scanner;</p><p>  public class test2 {</

82、p><p>  public static void main(String[] args) {</p><p>  //給定生成隨機(jī)數(shù)的范圍1~1000</p><p>  Scanner input = new Scanner(System.in);</p><p>  int num = (int) (Math.random() * 100

83、) + 1;</p><p>  System.out.println("系統(tǒng)已經(jīng)生成數(shù)字,猜猜看這個數(shù)字是多少?(如果實(shí)在猜不出來,就輸入'投降'吧)");</p><p>  Date d1 = new Date();</p><p>  int gNum = 0;</p><p>  int coun

84、t = 0;</p><p>  boolean isHandup = false;</p><p><b>  do {</b></p><p><b>  count++;</b></p><p>  System.out.print("第" + count + "

85、次:");</p><p><b>  try {</b></p><p>  gNum = input.nextInt();</p><p>  if (gNum < num) {</p><p>  System.out.println("猜小了");</p><

86、;p><b>  }</b></p><p>  if (gNum > num) {</p><p>  System.out.println("猜大了");</p><p><b>  }</b></p><p>  } catch (Exception ex) {

87、</p><p>  if (input.next().trim().equals("投降")) {</p><p>  isHandup = true;</p><p><b>  break;</b></p><p><b>  }</b></p><p&

88、gt;  System.out.println("輸入數(shù)字格式不正確,請重新輸入。");</p><p><b>  count--;</b></p><p><b>  continue;</b></p><p><b>  }</b></p><p> 

89、 } while (gNum != num);</p><p>  Date d2 = new Date();</p><p>  int time = (int) ((d2.getTime() - d1.getTime()) / 1000 + 0.5);</p><p>  if (isHandup) {</p><p>  System.

90、out.println("悲劇,你投降了!共用了" + time + "秒,猜了" + (count-1)</p><p><b>  + "次。");</b></p><p>  isHandup=false;</p><p><b>  } else {</b&g

91、t;</p><p>  if (count * time < 10) {</p><p>  System.out.println("太棒了!你運(yùn)氣真好!共用了" + time + "秒,猜了" + count</p><p><b>  + "次。");</b></p&

92、gt;<p>  } else if (count * time < 50) {</p><p>  System.out.println("你真聰明!共用了" + time + "秒,猜了" + count + "次。");</p><p>  } else if (count * time < 100

93、0) {</p><p>  System.out.println("真棒!你竟然猜出來了!共用了" + time + "秒,猜了" + count</p><p><b>  + "次。");</b></p><p><b>  } else {</b><

94、/p><p>  System.out.println("終于猜對了,你也太笨 了吧。。。共用了" + time + "秒,猜了" + count</p><p><b>  + "次。");</b></p><p><b>  }</b></p>&l

95、t;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  6、測試運(yùn)行</b></p><p>  6.1 系統(tǒng)測試方案</p><p>  1

96、.點(diǎn)擊運(yùn)行程序后,顯示出圖形界面。</p><p>  2.點(diǎn)擊“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到一個隨機(jī)數(shù)。</p><p>  3 .玩家輸入一個數(shù),點(diǎn)擊“確定”按鈕。如果玩家輸入的數(shù)比系統(tǒng)給出的隨機(jī)數(shù)小,系統(tǒng)會提示“您猜的太小了,請繼續(xù)猜!”。如果玩家輸入的數(shù)比系統(tǒng)給出的隨機(jī)數(shù)大,系統(tǒng)提示“您猜的太大了,請繼續(xù)猜!”。</p><p>  4 .如果玩家猜對了數(shù),

97、但是所用時間大于十秒,系統(tǒng)會提示“這么久才猜出來,有點(diǎn)笨!”,并且會計算出玩家所用的時間和所猜的次數(shù)。如果玩家猜對了數(shù),而且所用時間小于十秒,系統(tǒng)會提示“恭喜您,猜對了!您真棒,智商真高!”,并且會計算出玩家所用的時間和所猜的次數(shù)。</p><p>  5. 如果玩家想重新再玩一次,點(diǎn)擊“獲取隨機(jī)數(shù)”按鈕即可繼續(xù)玩下一輪游戲。</p><p>  6.2 運(yùn)行結(jié)果分析</p>

98、<p>  開始運(yùn)行程序時圖形界面的顯示</p><p><b>  圖7 圖形顯示界面</b></p><p>  玩家輸入一個數(shù)“10”后,點(diǎn)擊“確定”,系統(tǒng)提示“您猜的太小了”。玩家再次輸入一個數(shù)“70”后,點(diǎn)擊“確定”,系統(tǒng)提示“您猜的太大了”。 玩家再次輸入一個數(shù)“32”,點(diǎn)擊“確定”,系統(tǒng)提示“猜對了”。</p><p>

99、;<b>  6.3結(jié)論</b></p><p>  經(jīng)過差不多兩個星期的努力,基本上完成我的Java課程設(shè)計—簡單的記事本程序,也基本上實(shí)現(xiàn)了我在需求分析時所預(yù)期的功能。通過這次的課程設(shè)計,使將我從書本上學(xué)習(xí)到的理論知識用到了實(shí)踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過的知識,讓我更深層次地認(rèn)識到Java及其強(qiáng)大的功能。同時,做這門課程設(shè)計也進(jìn)一步加強(qiáng)了我的動手能力。為了完成好這次課程設(shè)計,我提

100、前做了較多的準(zhǔn)備,一邊上網(wǎng)查找相關(guān)資料,另一方面查閱相關(guān)書籍。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設(shè)法通過各種途徑解決問題的能力。但是,設(shè)計過程中也存在一些問題,本來一開始想給這個記事本程序加上一張背景圖片,以及添加字體設(shè)置功能,但是由于本人知識淺陋以及各種其他原因,使得這些想法沒有實(shí)現(xiàn),這是這次課程設(shè)計的一點(diǎn)遺憾。</p><p><b>  致謝</b></p>

101、;<p>  在這次課程設(shè)計的撰寫過程中,我得到了許多人的幫助。首先我要感謝我的老師在課程設(shè)計上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計能力。其次,我要感謝幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計商的難題。同時也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計

102、的環(huán)境。最后再一次感謝所有在設(shè)計中曾經(jīng)幫助過我的良師益友和同學(xué)。 </p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 印旻.Java與面向?qū)ο蟪绦蛟O(shè)計教程.北京:清華大學(xué)出版社,1999.11</p><p>  [2] Cay S.Horstmann,Gary Cornell著.Java核心技術(shù).北京

溫馨提示

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

評論

0/150

提交評論