




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄前言 1正文 11、設(shè)計(jì)任務(wù)與要求 11.1 設(shè)計(jì)任務(wù)與要求 11.2 選題目的與意義 12、需求分析 22.1 用戶(hù)需求分析 22.2 開(kāi)發(fā)環(huán)境分析 23、系統(tǒng)設(shè)計(jì) 33.1 系統(tǒng)總體設(shè)計(jì) : 33.1.1總體設(shè)計(jì)分析 33.1.2程序結(jié)構(gòu) 33.2 功能模塊設(shè)計(jì) 53.2.1功能模塊圖 53.2.2功能模塊詳細(xì)設(shè)計(jì) 53.3 類(lèi)的設(shè)計(jì) : 74、程序?qū)崿F(xiàn) 84.1 程序流程圖 84.2 關(guān)鍵算法與技術(shù)實(shí)現(xiàn) 94.2.1隨機(jī)數(shù)的獲取 94.2.2輸入輸出 104.2.3判斷時(shí)間 114.2.4自動(dòng)計(jì)數(shù) 114.2.5結(jié)果輸出 114.2.6圖形界面的實(shí)現(xiàn) 124.3 類(lèi)的實(shí)現(xiàn) 135、源
2、程序: 146、測(cè)試運(yùn)行 176.1 系統(tǒng)測(cè)試方案 176.2 運(yùn)行結(jié)果分析 186.3 結(jié)論 18致謝 19參考文獻(xiàn) 19、八 、亠刖言Java是一種簡(jiǎn)單的,面向?qū)ο蟮?,分布式的,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線(xiàn)程的動(dòng)態(tài)語(yǔ)言。猜數(shù)字游戲是一個(gè)簡(jiǎn)單,有趣的小游戲。通過(guò)設(shè)計(jì)猜數(shù)字游戲,可以進(jìn)一步了解Swing圖形用戶(hù)界面設(shè)計(jì),事件處理和異常處理機(jī)制。利用Eclipse平臺(tái),綜合運(yùn)用Java基礎(chǔ)知識(shí),設(shè)計(jì)猜數(shù)字游戲。正文1、設(shè)計(jì)任務(wù)與要求1.1設(shè)計(jì)任務(wù)與要求功能要求:該程序用圖形界面實(shí)現(xiàn)下面功能:用計(jì)算機(jī)產(chǎn)生一個(gè)100以?xún)?nèi)的隨機(jī)數(shù),游戲者進(jìn)行猜數(shù),猜中即勝,猜不中,提示是
3、大了還是小了,繼續(xù)猜,直至猜對(duì)為止。游戲結(jié)束后給出評(píng)語(yǔ)并計(jì)算出玩家所用的時(shí)間與所猜的次數(shù)。具體要求:(1)輸入任意一個(gè)數(shù)字。數(shù)字的要求是1 100的自然數(shù)即可。(2)系統(tǒng)對(duì)您輸入的數(shù)字進(jìn)行判斷。如果玩家輸入的數(shù)字與計(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)從新輸入。(3)每猜測(cè)一次,系統(tǒng)會(huì)記錄下來(lái),游戲結(jié)束后,顯示共猜測(cè)多少次。(4)歡迎界面:通過(guò)這里提供的選項(xiàng)(或按鈕),進(jìn)
4、入游戲界面。(5) 游戲界面提供“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到隨機(jī)數(shù),游戲者輸入自己的猜測(cè)結(jié)果,通過(guò)按“確認(rèn)”按鈕完成輸入。每次提示輸入猜測(cè)結(jié)果時(shí),給出猜測(cè)的準(zhǔn)確度提示。(6)按“獲取隨機(jī)數(shù)”按鈕,繼續(xù)游戲。(7)游戲結(jié)束后給出評(píng)語(yǔ)并計(jì)算出玩家所用的時(shí)間與所猜次數(shù)。界面要示:用圖形界面實(shí)現(xiàn)。1.2選題目的與意義通過(guò)猜數(shù)游戲這個(gè)課題我可以學(xué)到文本框、標(biāo)簽框、按鈕、布局、對(duì)話(huà)框方面的知識(shí) 和應(yīng)用,達(dá)到設(shè)計(jì)登陸界面、加入圖像顯示功能以及設(shè)計(jì)按鈕的目的,讓我更加的掌握和 理解java面向?qū)ο笳Z(yǔ)言的需求分析、系統(tǒng)設(shè)計(jì),所以我選擇猜數(shù)游戲這個(gè)課題。2、需求分析2.1用戶(hù)需求分析1. 玩家輸入一個(gè)數(shù)字,數(shù)字
5、的范圍在1-100之間,系統(tǒng)獲取隨機(jī)數(shù)。2. 對(duì)玩家輸入的數(shù)字進(jìn)行判斷大小,如果不是系統(tǒng)要求的數(shù)字,系統(tǒng)將提示您,您輸入的不是數(shù)字請(qǐng)重新輸入,給出提醒以便玩家進(jìn)一步選擇。3. 玩家猜中時(shí)系統(tǒng)給出所用時(shí)間和游戲水平的判斷,系統(tǒng)給出是否繼續(xù)的提示及判斷。4. 系統(tǒng)根據(jù)您猜數(shù)字的次數(shù),自動(dòng)計(jì)數(shù)5. 直到用戶(hù)猜到數(shù)字為止,提示信息是否繼續(xù)猜數(shù)字,如果繼續(xù)將進(jìn)入下一次游戲, 如果退出將退出游戲系統(tǒng).2.2開(kāi)發(fā)環(huán)境分析Eclipse 企業(yè)級(jí)工作平臺(tái)(Eclipse Enterprise Workbench,簡(jiǎn)稱(chēng) Eclipse )是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)
6、、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL,Hibernate。在結(jié)構(gòu)上,Eclipse 的特征可以被分為 7類(lèi):1. JavaEE 模型2. WEB開(kāi)發(fā)工具3. EJB開(kāi)發(fā)工具4. 應(yīng)用程序服務(wù)器的連接器5. JavaEE項(xiàng)目部署服務(wù)6. 數(shù)據(jù)庫(kù)服務(wù)7. Eclipse整合幫助對(duì)于以上每一種功能上的類(lèi)別,在Eclipse中都有相應(yīng)的功能部件,并通過(guò)一系列的 插件來(lái)實(shí)現(xiàn)它們。Eclipse結(jié)構(gòu)上的這種模塊化,可以讓我
7、們?cè)诓挥绊懫渌K的情況下, 對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。簡(jiǎn)單而言,Eclipse是Eclipse的插件,也是一款功能強(qiáng)大的 JavaEE集成開(kāi)發(fā)環(huán)境, 支持代碼編寫(xiě)、配置、測(cè)試以及除錯(cuò)。該程序基于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à)。最后,游戲的結(jié)束與繼續(xù)可由 玩家控制。3、系統(tǒng)設(shè)計(jì)3.1系統(tǒng)總體設(shè)計(jì):3.1.1總體設(shè)計(jì)分析1. 隨機(jī)數(shù)的獲?。和婕逸斎胍粋€(gè)數(shù)字,數(shù)字的范圍在1-100之間,系統(tǒng)獲取隨機(jī)數(shù)。2. 輸入
8、輸出模塊:對(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)您重新輸入。3. 判斷模塊:算出所用時(shí)間在玩家猜中時(shí)給出其所用時(shí)間,系統(tǒng)給出對(duì)其水平的判斷和是否繼續(xù)的提示;對(duì)玩家要求判斷執(zhí)行。4. 自動(dòng)計(jì)數(shù)模塊:系統(tǒng)根據(jù)您猜數(shù)字的次數(shù),自動(dòng)計(jì)數(shù)5. 結(jié)果輸出模塊:直到用戶(hù)猜到數(shù)字為止,提示信息是否繼續(xù)猜數(shù)字,如果繼續(xù)將進(jìn)入下一次游戲,如果退出將退出游戲系統(tǒng).3.1.
9、2程序結(jié)構(gòu)點(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ì)計(jì)算出玩家所用的時(shí)間和所猜的次數(shù)。圖1程序結(jié)構(gòu)圖3.2功能模塊設(shè)計(jì)3.2.1功能模塊圖游戲分為隨機(jī)數(shù)的獲取,輸入輸出模塊,判斷模塊,自動(dòng)計(jì)數(shù)模塊,結(jié)果
10、輸出模 塊。其中輸入輸出模塊中系統(tǒng)會(huì)對(duì)玩家給出的數(shù)進(jìn)行判斷和輸出。判斷模塊會(huì)對(duì)玩家的水 平進(jìn)行判斷,并計(jì)算出玩家所用的時(shí)間和次數(shù)。圖2功能模塊圖322 功能模塊詳細(xì)設(shè)計(jì)(1) 隨機(jī)數(shù)的獲取1-100之間,系統(tǒng)獲取隨機(jī)數(shù)。功能描述:玩家輸入一個(gè)數(shù)字,數(shù)字的范圍在(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ù)大系統(tǒng)提示您,數(shù)字太大請(qǐng)您重新輸入。圖3輸入輸出模塊圖(3)
11、 判斷模塊功能描述:算出所用時(shí)間在玩家猜中時(shí)給出其所用時(shí)間,系統(tǒng)給出對(duì)其水平的判斷和是否繼續(xù)的提示;對(duì)玩家要求判斷執(zhí)行。圖4判斷模塊圖(4) 自動(dòng)計(jì)數(shù)模塊功能描述:系統(tǒng)根據(jù)您猜數(shù)字的次數(shù),自動(dòng)計(jì)數(shù)玩家猜數(shù)字,若猜錯(cuò)*計(jì)數(shù)器加1圖5自動(dòng)計(jì)數(shù)模塊圖(5)結(jié)果輸出模塊功能描述:直到用戶(hù)猜到數(shù)字為止,提示信息是否繼續(xù)猜數(shù)字,如果繼續(xù)將進(jìn)入下次游戲,如果退出將退出游戲系統(tǒng)3.3類(lèi)的設(shè)計(jì):表1類(lèi)的分類(lèi)類(lèi)名屬性Math.ra ndom數(shù)學(xué)中的隨機(jī)數(shù)。BorderLayout圖形界面窗口的設(shè)計(jì)與調(diào)整Con curre ntcon curre nt在并發(fā)編程中很常用的實(shí)用工具類(lèi)。從用戶(hù)的角度看,Java源程序中
12、的類(lèi)分為兩種:系統(tǒng)定義的類(lèi):即 Java類(lèi)庫(kù),它是系統(tǒng)定義好的類(lèi)。 Java語(yǔ)言由語(yǔ)法規(guī)則和類(lèi)庫(kù) 兩部分組成,語(yǔ)法規(guī)則確定 Java程序的書(shū)寫(xiě)規(guī)范;類(lèi)庫(kù)則提供了 Java程序與運(yùn)行它的 系統(tǒng)軟件(Java虛擬機(jī))之間的接口。用戶(hù)自定義類(lèi):系統(tǒng)定義的類(lèi)雖然實(shí)現(xiàn)了許多常見(jiàn)的功能,但是用戶(hù)程序仍然需要針 對(duì)特定問(wèn)題的特定邏輯來(lái)定義自己的類(lèi)。在Java程序中,用戶(hù)自定義類(lèi)的一般格式如下:class 類(lèi)名數(shù)據(jù)成員成員方法類(lèi)的結(jié)構(gòu)是由類(lèi)說(shuō)明和類(lèi)體兩部分組成的。類(lèi)的說(shuō)明部分由關(guān)鍵字class 與類(lèi)名組成,類(lèi)名的命名遵循Java標(biāo)識(shí)符的定義規(guī)則。類(lèi)體是類(lèi)聲明中花括號(hào)所包括的全部?jī)?nèi)容,它又是由數(shù)據(jù)成員(屬性)和
13、成員方法(方法)兩部分組成。數(shù)據(jù)成員描述對(duì)象的屬性;成員方法則刻畫(huà)對(duì)象的行為或動(dòng)作,每一個(gè)成員方法確定 一個(gè)功能或操作。首先搭建Java程序框架。打開(kāi)Eclipse,新建名為GuessNumberGam的項(xiàng)目,然后新 建名為 GuessNumber的 Java 類(lèi)。GuessNumber加上合適的 javadoc 。第一步:隨機(jī)數(shù)的產(chǎn)生我們可以借助Java API提供的Random類(lèi)來(lái)產(chǎn)生一個(gè)隨機(jī)數(shù)。首先在main函數(shù)中加入以下三行代碼:/新建一個(gè)隨機(jī)數(shù)產(chǎn)生器,然后生成一個(gè)1到100之間的整數(shù)。nu m=(i nt)(Math.ra ndom()*100);String answer;Scan
14、ner in put =new Sca nn er(System.i n);第二步:標(biāo)準(zhǔn)輸入輸出標(biāo)準(zhǔn)輸入輸出(Standard I/O) 是指可以被應(yīng)用程序使用的信息流。應(yīng)用程序可以從標(biāo) 準(zhǔn)輸入(Sta ndard in put)讀取數(shù)據(jù),向標(biāo)準(zhǔn)輸出(Sta ndard 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)用。猜數(shù)字游戲主要用到標(biāo)準(zhǔn)輸入,更明確一些,就是控制臺(tái)輸入。相反,要從控制臺(tái)輸 入,就需要用到System.in。它
15、是一個(gè)純粹的輸入流,而猜數(shù)字游戲主要是通過(guò)控制臺(tái)獲取玩家的字符輸入,我們需要把它包裝成一個(gè)BufferedReader 。第三步:使用BorderLayout對(duì)圖形界面的窗口進(jìn)行設(shè)計(jì)。4、程序?qū)崿F(xiàn)4.1程序流程圖點(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ì)
16、提 示“恭喜您,猜對(duì)了!您真棒,智商真高! ”,并且會(huì)計(jì)算出玩家所用的時(shí)間和所猜的次 數(shù)。圖6程序流程圖4.2關(guān)鍵算法與技術(shù)實(shí)現(xiàn)4.2.1 隨機(jī)數(shù)的獲取num=(i nt)(Math.ra ndom()*100);String answer;Scanner in put =new Sca nn er(System.i n);422 輸入輸出for(i=1;i=10;i+)if(nu m2 nu m)lbshow.setText(您猜的太大了,請(qǐng)繼續(xù)猜!);con ti nue;long en dTime=System.curre ntTimeMillis();long t;t=(e ndTim
17、e-startTime)/1000;strshow=您總共猜了 +counter+次,您猜數(shù)字總共花了 +(e ndTime-startTime)/1000+秒;if(t10)+strshow);lbshow.setText(恭喜您,猜對(duì)了!您真棒,智商真高!Ibshow.setText(”這么久才猜出來(lái),有點(diǎn)笨!+strshow);4.2.3 判斷時(shí)間startTime=System.curre ntTimeMillis();long en dTime=System.curre ntTimeMillis();strshow=您猜數(shù)字總共花了 +(endTime-startTime)/1000
18、+秒;4.2.4 自動(dòng)計(jì)數(shù)int geust=0;coun ter+;strshow=您總共猜了 +counter+次;4.2.5 結(jié)果輸出long t;t=(e ndTime-startTime)/1000;strshow=您總共猜了 +counter+次,您猜數(shù)字總共花了+(e ndTime-startTime)/1000+ 秒;if(t10)lbshow.setText(這么久才猜出來(lái),有點(diǎn)笨!+strshow);426 圖形界面的實(shí)現(xiàn)BorderLayout bdmg= new BorderLayout();Button butt on 1= new Butt on (” 獲取隨機(jī)數(shù))
19、;Button butto n2=new Butt on (” 確定);String str=null ;String str2= null ;long startTime;int num,num2;int counter=0;myGeustNum my1= new myGeustNum();TextField in put;Label lbshow= new Label();Label lbshow2= new Label();int i;String strshow;public void init()setLayout(bdmg);add(butto n1,BorderLayout.NO
20、RTHbutt on 1.addAct ion Liste ner(this );butto n1.setSize(50,50);Label lb仁 new Label(請(qǐng)輸入); lb1.setSize(50,20);this .add(lb1,BorderLayout. WESTin put= new TextField(10);in put.setSize(40,50);add(i nput,BorderLayout.CENTERadd(butto n2,BorderLayout.EASTlb1.setSize(50,20);butt on 2.addAct ion Liste ner(
21、 this );butto n2.setSize(50,20);add(lbshow,BorderLayout. SOUTHsetSize(450,200);4.3類(lèi)的實(shí)現(xiàn)首先搭建Java程序框架。打開(kāi) Eclipse,新建名為GuessNumberGame勺項(xiàng)目,然后新 建名為 GuessNumber的 Java 類(lèi)。GuessNumber加上合適的 javadoc 。第一步:隨機(jī)數(shù)的產(chǎn)生我們可以借助Java API提供的Random類(lèi)來(lái)產(chǎn)生一個(gè)隨機(jī)數(shù)。首先在main函數(shù)中加入以下三行代碼:/新建一個(gè)隨機(jī)數(shù)產(chǎn)生器,然后生成一個(gè)1到100之間的整數(shù)。nu m=(i nt)(Math.ra nd
22、om()*100);String answer;Scanner in put =new Sca nn er(System.i n);Eclipse立即在錯(cuò)誤語(yǔ)句處劃出紅線(xiàn),把鼠標(biāo)移動(dòng)到紅線(xiàn)上。包(Package)的概念Java API中包含了極其豐富、類(lèi)似于Random這樣由Sun預(yù)先定義好的類(lèi)。不同包中可以有同名同姓的類(lèi),如果沒(méi)有包的概念,就會(huì)遇到命名沖突問(wèn)題。此外,包還能進(jìn)行安 全控制。Random類(lèi)是在java.util這個(gè)包中??梢允謩?dòng)在源程序頂部輸入importjava.util.Random; 語(yǔ)句來(lái)申明該程序?qū)⒁褂?java.util 包中的Random類(lèi),然而有了 Eclip
23、se ,就不用那么麻煩了一把光標(biāo)移動(dòng)到有紅色波浪線(xiàn)的Random上,然后按下Ctrl +Shift + M, Eclipse會(huì)自動(dòng)幫你完成導(dǎo)入的工作了,此時(shí)保存一下源代碼。第二句語(yǔ)句定義一個(gè)整型變量nu mber來(lái)保存隨機(jī)產(chǎn)生的整數(shù),并且用直接初始化的方法把random產(chǎn)生的隨機(jī)數(shù)賦給 number變量。第二步:標(biāo)準(zhǔn)輸入輸出標(biāo)準(zhǔn)輸入輸出(Standard I/O)是指可以被應(yīng)用程序使用的信息流。應(yīng)用程序可以從標(biāo)準(zhǔn)輸入(Sta ndard in put)讀取數(shù)據(jù),向標(biāo)準(zhǔn)輸出(Sta ndard output)寫(xiě)數(shù)據(jù),把出錯(cuò)信息發(fā)送到標(biāo)準(zhǔn)錯(cuò)誤(Standard error)。通過(guò)輸入輸出,應(yīng)用程序
24、和應(yīng)用程序之間可以被串聯(lián)起 來(lái)使用。雖然標(biāo)準(zhǔn)輸入輸出是從UNIX發(fā)展出來(lái)的概念,在Windows中也廣泛應(yīng)用。猜數(shù)字游戲主要用到標(biāo)準(zhǔn)輸入,更明確一些,就是控制臺(tái)輸入。相反,要從控制臺(tái)輸 入,就需要用到 System.in。它是一個(gè)純粹的輸入流,而猜數(shù)字游戲主要是通過(guò)控制臺(tái)獲 取玩家的字符輸入,我們需要把它包裝成一個(gè)BufferedReader。第三步:使用 BorderLayout對(duì)圖形界面的窗口進(jìn)行設(shè)計(jì)。5、源程序:Package a;import java.awt.Color;import java.awt.C ontainer;import java.awt.FlowLayout;imp
25、ort java.awt.eve nt.Acti onEvent;import java.awt.eve nt.Acti on Liste ner;import javax.sw in g.Box;import javax.swi ng.JButt on;import javax.swi ng.JFrame;import javax.sw in g.JLabel;import javax.swi ng.JOptio nPane;import javax.swi ng.JTextField;class Win dowButt on exte nds JFrame impleme nts Acti
26、o nListe ner /* */private static fin al l ong serialVers ionUID = 1L;int nu mber;JTextField in putNumber;JLabel feedBack;JButton butto nGetNumber,butto nEn ter;WindowButton(String s) super(猜數(shù)字小游戲); buttonGetNumber= new JButton(” 得到一個(gè)隨機(jī)數(shù)); feedBack= new JLabel(無(wú)反饋信息 ”,JLabel.CENTER); feedBack.setBack
27、gro un d(Color.gree n);inputNumber= new JTextField(0,5);buttonEnter= new JButton(確定);butt onEn ter.addActi on Liste ner(this);butt on GetNumber.addAct ion Liste ner(this);butt on GetNumber.addAct ion Liste ner(this);Box boxH仁Box.createHoriz on talBox();boxH1.add(new JLabel(獲取 1-100 之間的隨機(jī)數(shù):);boxH1.ad
28、d(butto nGetNumber);Box boxH2=Box.createHoriz on talBox();boxH2.add(new JLabel(輸入您的猜測(cè):);boxH2.add(i nputNumber);Box boxH3=Box.createHoriz on talBox();boxH3.add(new JLabel(單擊確定按鈕:);boxH3.add(butto nEn ter);Box boxH4=Box.createHoriz on talBox();boxH4.add(new JLabel(反饋信息:);boxH4.add(feedBack);Box baseB
29、ox=Box.createV erticalBox();baseBox.add(boxH1);baseBox.add(boxH2);baseBox.add(boxH3);baseBox.add(boxH4);Container con=getC onten tPa ne();con. setLayout (new FlowLayout();con. add(baseBox);con. validate();setBou nds(120,125,279,200);setVisible(true);setDefaultCloseOperatio n( JFrame.EXIT_ON_CLOSE);s
30、etBou nds(100,100,150,150);setVisible(true);validate(); public void action Performed(Acti onEvent e)if(e.getSource()=butt on GetNumber)nu mber=(i nt)(Math.ra ndom()*100)+1; else if(e.getSource()=butt onEn ter)int guess=0;tryguess=In teger.parse In t(i nputNumber.getText();if(guess=nu mber)JOptionPan
31、e.showMessageDialog(this,猜對(duì)了 );else if(guess nu mber)JOptionPane.showMessageDialog(this,猜大了 );in putNumber.setText (n ull); else if(guess nu mber)JOptionPane.showMessageDialog(this,猜小了 );in putNumber.setText( null); catch(NumberFormatExcepti on even t)JOptionPane.showMessageDialog(this,請(qǐng)輸入數(shù)字字符 ”); p
32、ublic class猜數(shù)字游戲 public static void main(String args)new WindowButton(猜數(shù)字小游戲); package b;import java.util.Date;import java.util.Sca nner;public class test2 public static void main(String args) /給定生成隨機(jī)數(shù)的范圍11000Scanner in put = new Scann er(System.i n);int num = (int) (Math.ra ndom() * 100) + 1;(如果實(shí)在猜
33、不出System.out.println(”系統(tǒng)已經(jīng)生成數(shù)字,猜猜看這個(gè)數(shù)字是多少? 來(lái),就輸入投降吧);Date d1 = new Date();int gNum = 0;int count = 0;boolea n isHa ndup = false;do coun t+;System.out.print(” 第 ” + count + 次:”);try gNum = in put .n ext In t();if (gNum num) System.out.println(猜大了 ); catch (Exceptio n ex) if (input.next().trim().equal
34、s(投降)isHa ndup = true;break;System.out.println(”輸入數(shù)字格式不正確,請(qǐng)重新輸入?!?;coun t-;con ti nue; while (gNum != nu m);Date d2 = new Date();int time = (int) (d2.getTime() - d1.getTime() / 1000 + 0.5);if (isHandup) System.out.println(” 悲劇,你投降了!共用了 + time + 秒,猜了 + (count-1)+ 次。”);isHa ndup=false; else if (count
35、* time 10) System.out.println(” 太棒了!你運(yùn)氣真好!共用了 + time + 秒,猜了 + cou nt+ 次?!?; else if (count * time 50) System.out.println(你真聰明!共用了 + time + 秒,猜了 + count + 次。 ); else if (count * time 1000) System.out.println(”真棒!你竟然猜出來(lái)了!共用了 ” + time + 秒,猜了 +cou nt+ 次?!?; else System.out.println(終于猜對(duì)了,你也太笨了吧。共用了 + time + 秒,猜了 + count+ 次。”);6、測(cè)試運(yùn)行1點(diǎn)擊運(yùn)行程序后,顯示出圖形界面。2點(diǎn)擊“獲取隨機(jī)數(shù)”按鈕,系統(tǒng)獲取到一個(gè)隨機(jī)數(shù)。3.玩家輸入一個(gè)數(shù),點(diǎn)擊
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房貸合同的附加條款
- 美術(shù)課外輔導(dǎo)班教學(xué)計(jì)劃
- 口腔護(hù)理產(chǎn)品買(mǎi)賣(mài)合同
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)考前沖刺模擬試卷B卷含答案
- 健身房商業(yè)租賃合同范文
- 新改版教科版六年級(jí)下冊(cè)科學(xué)教學(xué)計(jì)劃評(píng)估標(biāo)準(zhǔn)
- 保育員職場(chǎng)壓力管理計(jì)劃
- 智能家居設(shè)備年度保養(yǎng)計(jì)劃
- 寫(xiě)作關(guān)于正確使用AI輔助學(xué)習(xí)的文章講義-四川省成都市武侯區(qū)成都市玉林中學(xué)2024-2025學(xué)年高二下學(xué)期4月期中英語(yǔ)試題
- 六年級(jí)科學(xué)主題學(xué)習(xí)周計(jì)劃
- 2024精神分裂癥維持治療中國(guó)專(zhuān)家共識(shí)(全文)
- 2024萬(wàn)達(dá)商鋪?zhàn)赓U合同
- 數(shù)電票商品稅收分類(lèi)編碼表
- 高中生物新人教版選擇性必修1第2章第5節(jié)人腦的高級(jí)功能課件(20張)
- 2024年重慶中考英語(yǔ)試題及答案(A卷)
- 開(kāi)休閑書(shū)吧創(chuàng)業(yè)計(jì)劃書(shū)
- JTG-T-D81-2006公路交通安全設(shè)施設(shè)計(jì)細(xì)則
- 業(yè)主授權(quán)租戶(hù)安裝充電樁委托書(shū)
- 旅游服務(wù)滿(mǎn)意度調(diào)查問(wèn)卷
- 橋式起重機(jī)定期檢查記錄表
- MOOC 光學(xué)發(fā)展與人類(lèi)文明-華南師范大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論