第11章抽獎(jiǎng)——隨機(jī)數(shù)與枚舉_第1頁
第11章抽獎(jiǎng)——隨機(jī)數(shù)與枚舉_第2頁
第11章抽獎(jiǎng)——隨機(jī)數(shù)與枚舉_第3頁
第11章抽獎(jiǎng)——隨機(jī)數(shù)與枚舉_第4頁
第11章抽獎(jiǎng)——隨機(jī)數(shù)與枚舉_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、能力目標(biāo):能力目標(biāo): 學(xué)會(huì)使用隨機(jī)數(shù)類random產(chǎn)生隨機(jī)數(shù)。 學(xué)會(huì)使用方法數(shù)目可變的參數(shù)來傳遞數(shù)據(jù)。 理解枚舉類型,學(xué)會(huì)使用枚舉類型。 能運(yùn)用隨機(jī)數(shù)等編寫按號抽獎(jiǎng)和人人有份抽獎(jiǎng)的程序。內(nèi)容介紹 11.1 任務(wù)預(yù)覽 11.2 隨機(jī)數(shù)及random類 11.3 可變參數(shù)方法 11.4 枚舉類型 11.5 本章小結(jié) 11.6 實(shí)訓(xùn)11:抽獎(jiǎng)11.1 任務(wù)預(yù)覽 本章實(shí)訓(xùn)程序運(yùn)行結(jié)果: 11.2 隨機(jī)數(shù)及random類 java.util包的random類對象是隨機(jī)數(shù)生成器。如:random rand = new random(); random rand2 = new random(12345l);

2、 /long型隨機(jī)數(shù)種子 一般情況下,無需在random構(gòu)造方法中給出隨機(jī)數(shù)種子。 生成隨機(jī)數(shù)例:int ir = rand.nextint(100); /生成0到99int隨機(jī)數(shù)double dr = rand.nextdouble(); /生成0到1(不含1)以內(nèi)的double型隨機(jī)數(shù) 注意注意:還可調(diào)用math類的靜態(tài)方法random()生成大于等于 0且小于 1的double型隨機(jī)數(shù):math.random() 【例11-1】編程,隨機(jī)抽取1到100范圍內(nèi)10個(gè)不同的數(shù),并按升序輸出。 分析:分析:只是抽取只是抽取10個(gè)不考慮重復(fù)情況的隨機(jī)數(shù)的代個(gè)不考慮重復(fù)情況的隨機(jī)數(shù)的代碼:碼:im

3、port java.util.*;public class example1_2 public static void main(string args) random rand = new random(); int nums = new int10; /存放隨機(jī)數(shù)數(shù)組 for (int i=0; i10; i+) numsi = rand.nextint(100)+1; /生成隨機(jī)數(shù) arrays.sort(nums); /數(shù)組元素按升序排序 system.out.println(1到100范圍內(nèi)的10個(gè)隨機(jī)數(shù)如下:); system.out.println(arrays.tostring

4、(nums);生成生成10個(gè)相互不重復(fù)的隨機(jī)數(shù)程序個(gè)相互不重復(fù)的隨機(jī)數(shù)程序 在每次生成隨機(jī)數(shù)時(shí),把它依次與存在的隨機(jī)數(shù)作比較。example1.java11.3 可變參數(shù)方法 語法格式:類型類型 . 形參代表 方法調(diào)用時(shí)允許給出類型相同但數(shù)目不同的參數(shù),例如0個(gè)、1個(gè)、2個(gè)、10個(gè),等等。也可用數(shù)組作實(shí)參. 形參代表可看作是一個(gè)數(shù)組變量。 一個(gè)方法只能有一個(gè)可變數(shù)目參數(shù),并且是最后一個(gè)參數(shù)。 【例11-2】定義數(shù)目可變參數(shù)的方法,進(jìn)行求和、找最大值。 class methodc /方法類 public static double sum(double . nums) throws except

5、ionif (nums.length = 0) /可變參數(shù)長度即參數(shù)個(gè)數(shù) throw new exception(沒有數(shù)據(jù)、無法求和異常); double sumvalue = 0;for (int i=0; inums.length; i+) sumvalue += numsi; return sumvalue; example2.java【例11-3】編程,定義抽獎(jiǎng)方法進(jìn)行抽獎(jiǎng)。 /4個(gè)參數(shù)抽號方法:起始號、終止號、抽取個(gè)數(shù)、排除號碼(可變參數(shù)) public static int rafflenums(int from, int to, int amount, int.exclusion

6、) throws exception /在類raffle 中定義 if (to - from + 1)- exclusion.length amount) throw (抽取范圍內(nèi)的數(shù)量必須不小于要抽取的個(gè)數(shù)); random rand = new random(); int nums = new intamount ; for (int i=0; iamount; i+) whiletag: while (true) /抽取from到to之間不重復(fù)隨機(jī)數(shù) int randnum = rand.nextint(to - from + 1) + from;for (int j=0; ji; j+

7、 ) /與已有隨機(jī)數(shù)比較 if (randnum = numsj) /如果有重復(fù), continue whiletag; /則繼續(xù)while循環(huán)(抽數(shù)) for (int k=0; kexclusion.length; k+) /比較排除的號碼 if (randnum = exclusionk) continue whiletag; numsi = randnum; /不重復(fù),保存到數(shù)組 break whiletag; /結(jié)束while循環(huán),返回外層for循環(huán) return nums; example3.java11.4 枚舉類型 聲明、定義枚舉類型簡要語法:enum 枚舉類型名 枚舉常量表

8、如:enum season spring, summer, autumn, winter 枚舉類型season有4個(gè)枚舉常量。 使用枚舉常量須用枚舉類型名作前綴,如 season.spring 輸出時(shí)只顯示枚舉常量名,如 spring。 枚舉類型和枚舉常量都是標(biāo)識符,可用中文起名。 如:enum 季節(jié) 春, 夏, 秋, 冬 于是,枚舉常量表示為:季節(jié).春、季節(jié).夏,等等。 注意:枚舉是特殊的類類型。成員除了枚舉常量外,還可包含構(gòu)造函數(shù)、字段和方法。一般語法形式:enum 枚舉類型名 允許包含參數(shù)的枚舉常量表; 字段; 構(gòu)造函數(shù); 方法 【例11-4】編程,定義表示季節(jié)的枚舉類型,然后輸出相關(guān)的

9、枚舉常量。 enum season spring, summer, autumn, winter public class example4 /主類 public static void main(string args) system.out.print(上半年有2季:); season q1 = season.spring; /枚舉變量聲明和賦值 season q2 = season.summer; system.out.println(q1 + , + q2); system.out.print(上半年季節(jié)序號:); system.out.print(q1.ordinal() + , +

10、 q2.ordinal(); /變量序號 system.out.println(n一年4季是:); season quarter; /聲明季節(jié)枚舉類型變量 for (int i=0; i4; i+) quarter = season.values()i; /season數(shù)組system.out.print(quarter + );【例11-5】編程,定義一個(gè)含有構(gòu)造方法、字段和方法的關(guān)于獎(jiǎng)品的枚舉類型。在主類中輸出這些獎(jiǎng)品的名稱、價(jià)值和數(shù)量。 enum awardtype /獎(jiǎng)品枚舉類型手提電腦 (5000, 1), /獎(jiǎng)品名稱(價(jià)值, 數(shù)量)電視機(jī) (3000, 2), 電冰箱 (1800,

11、 3), 洗衣機(jī) (1200, 5), 微波爐 (600, 10);private int worth; /價(jià)值字段private int amount; /數(shù)量字段awardtype(int worth, int amount) /非public構(gòu)造方法 this.worth = worth; this.amount = amount;public int getworth() /獲取價(jià)值方法 return this.worth; public int getamount() /獲取數(shù)量方法 return this.amount; public class example5 public s

12、tatic void main(string args) system.out.println(所有獎(jiǎng)品如下:); for (awardtype aw: awardtype.values()system.out.print(();system.out.print(:價(jià)值 + aw.getworth() + 元, );system.out.print( 數(shù)量 + aw.getamount() + 個(gè));system.out.println();11.5 本章小結(jié) 隨機(jī)類random對象的方法能生成一定范圍內(nèi)的隨機(jī)數(shù),數(shù)據(jù)類型有整型、實(shí)型等。 方法中數(shù)目可變的參數(shù)即相當(dāng)于一個(gè)數(shù)組,不過每次調(diào)用時(shí)允許直接給出數(shù)目不等的數(shù)據(jù)作實(shí)參。 可變參數(shù)是數(shù)組參數(shù)的一種擴(kuò)充。 一個(gè)方法最多只能有一個(gè)可變參數(shù),并且只能排在后面。 枚舉類型是特殊的類類型,對象就是大括號內(nèi)的枚舉常量。 枚舉類型專門用于管理內(nèi)容固定、數(shù)量有限的數(shù)據(jù)。 枚舉不同于數(shù)組,數(shù)組的元素相當(dāng)于一個(gè)變量,而枚舉元素則是常量。11.6 實(shí)訓(xùn)11:抽獎(jiǎng) (1)編寫按號碼進(jìn)行抽獎(jiǎng)的程序,功能如下

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論