2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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><b>  目 錄</b></p><p><b>  前言1</b></p><p><b>  正文1</b></p><p>  1、設(shè)計(jì)任務(wù)與要求1</p><p>  1.1 設(shè)計(jì)任務(wù)與要求1</p><p> 

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

3、</p><p>  3.1.1 總體設(shè)計(jì)分析3</p><p>  3.1.2 程序結(jié)構(gòu)3</p><p>  3.2 功能模塊設(shè)計(jì)5</p><p>  3.2.1 功能模塊圖5</p><p>  3.2.2 功能模塊詳細(xì)設(shè)計(jì)6</p><p>  3.3 類的設(shè)計(jì):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 判斷時(shí)間11</p><p>  4.2.4 自動(dòng)計(jì)數(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、測(cè)試運(yùn)行18</b></p><p>  6.1 系統(tǒng)測(cè)試方案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是一種簡(jiǎn)單的,面向?qū)ο蟮模植际降?,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動(dòng)態(tài)語(yǔ)言。猜數(shù)字游戲是一個(gè)簡(jiǎn)單,有趣的小游戲。通過(guò)設(shè)計(jì)猜數(shù)字游戲,可以進(jìn)一步了解Swing圖形用戶界面設(shè)計(jì),事件處理和異常處理機(jī)制。

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

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

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

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

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

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

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

15、;p>  Eclipse企業(yè)級(jí)工作平臺(tái)(Eclipse Enterprise Workbench ,簡(jiǎn)稱Eclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(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開(kāi)發(fā)工具</p><p>  3. EJB開(kāi)發(fā)工具</p><p>  4. 應(yīng)用程序服務(wù)器的連接器</p><p>  5. JavaEE

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

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

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

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

21、玩家要求判斷執(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)入下一次游戲,如果退出將退出游戲系統(tǒng).</p><p>  3.1.2 程序結(jié)構(gòu)</p><p>  點(diǎn)擊“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到一個(gè)隨機(jī)數(shù)。 玩家

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

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

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

25、t; ?。?) 輸入輸出模塊</p><p>  功能描述:對(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ù)大.系統(tǒng)提示您,數(shù)字太大請(qǐng)您重新輸入。</p><p>  圖3 輸入輸出模塊圖&l

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

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

28、;/b></p><p><b>  表1類的分類</b></p><p>  從用戶的角度看,Java 源程序中的類分為兩種:</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)軟件(Jav

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

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

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

32、;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)生器,然后生成一個(gè)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)寫(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ù)字

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

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

37、計(jì)算出玩家所用的時(shí)間和所猜的次數(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("您猜的太小了,請(qǐng)繼續(xù)猜!");</p><p>  continue;</p><p><b>  }</b></p><p>  else if(num2>num){</p&

40、gt;<p>  lbshow.setText("您猜的太大了,請(qǐng)繼續(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("恭喜您,猜對(duì)了!您真棒,智商真高!"+strshow);</p><p>  else if(t>10)</p><p>  lbshow.setText("這么久才猜出來(lái),有點(diǎn)笨!"+strs

43、how);</p><p><b>  } </b></p><p><b>  } </b></p><p>  4.2.3 判斷時(shí)間</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 自動(dòng)計(jì)數(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("恭喜您,猜對(duì)了!您真棒,智商真高!&quo

47、t;+strshow);</p><p>  else if(t>10)</p><p>  lbshow.setText("這么久才猜出來(lái),有點(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(" 請(qǐng)輸入");</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程序框架。打開(kāi)Eclipse,新建名為GuessNumberGame的項(xiàng)目,然后新建名為GuessNumber的Java類。GuessNumber加上合適的javadoc。</p><p>  第一步:隨機(jī)數(shù)的產(chǎn)生</p>&l

56、t;p>  我們可以借助Java API提供的Random類來(lái)產(chǎn)生一個(gè)隨機(jī)數(shù)。</p><p>  首先在main函數(shù)中加入以下三行代碼:</p><p>  // 新建一個(gè)隨機(jī)數(shù)產(chǎn)生器,然后生成一個(gè)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立即在錯(cuò)誤語(yǔ)句處劃出紅線,把鼠標(biāo)移動(dòng)到紅線上。</p><p>  包(Package)的概念</p><p>  Java API中包含了極其豐富、類似于Random這樣由Sun預(yù)先定義

58、好的類。不同包中可以有同名同姓的類,如果沒(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)入的工作

59、了,此時(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)讀

60、取數(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ù)字游戲主要

61、是通過(guò)控制臺(tái)獲取玩家的字符輸入,我們需要把它包裝成一個(gè)BufferedReader。</p><p>  第三步:使用BorderLayout對(duì)圖形界面的窗口進(jìn)行設(shè)計(jì)。</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("得到一個(gè)隨機(jī)數(shù)"); </p><p>  feedBa

67、ck=new JLabel("無(wú)反饋信息",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("輸入您的猜測(cè): "));</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,"猜對(duì)了"); } </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,"請(qǐng)輸入數(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ù)字,猜猜看這個(gè)數(shù)字是多少?(如果實(shí)在猜不出來(lái),就輸入'投降'吧)");</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ù)字格式不正確,請(qǐng)重新輸入。");</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("真棒!你竟然猜出來(lái)了!共用了" + time + "秒,猜了" + count</p><p><b>  + "次。");</b></p><p><b>  } else {</b><

94、/p><p>  System.out.println("終于猜對(duì)了,你也太笨 了吧。。。共用了" + 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、測(cè)試運(yùn)行</b></p><p>  6.1 系統(tǒng)測(cè)試方案</p><p>  1

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

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

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

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

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

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

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

溫馨提示

  • 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)論