版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)名稱】實(shí)驗(yàn) 2 類和對(duì)象 【實(shí)驗(yàn)?zāi)康摹?、學(xué)習(xí)和掌握J(rèn)ava創(chuàng)建對(duì)象的方法。2、學(xué)習(xí)和掌握通過(guò)創(chuàng)建對(duì)象、使用類的方法。3、學(xué)習(xí)和掌握J(rèn)ava類定義的方法。4、了解類設(shè)計(jì)的一般原則?!緦?shí)驗(yàn)內(nèi)容】1、(Java API類的應(yīng)用)使用類,創(chuàng)建種子是1000 的Ran dor對(duì)象,然后使用n extl nt(1OO)方法顯示0到100之間前50個(gè)隨 機(jī)整數(shù)。說(shuō)明:題目來(lái)源編程練習(xí)8.4( P238)。請(qǐng)查閱JavaAPI文檔,了 解的功能和使用方法?!緦?shí)驗(yàn)預(yù)習(xí)】1、輸出0-100之間的 50個(gè)隨機(jī)整數(shù)。2、建立種子為1000的random對(duì)象,返回0-100之間的隨機(jī)整數(shù)型 值,再輸出這些值。3、
2、技術(shù)支持:用了 類,及循環(huán)語(yǔ)句。【附:程序代碼】public class RandomProgrampublic static void main(Stringargs)/以1000構(gòu)造random對(duì)象/輸出0-100內(nèi)的50個(gè)隨機(jī)整型值for(int i=0;i<50;i+)【實(shí)驗(yàn)過(guò)程及結(jié)果記錄】在實(shí)驗(yàn)中遇到的問(wèn)題:忘記寫特定種子,這樣使用的就是當(dāng)前時(shí)間作為種子構(gòu)造random對(duì)象。2、(使用StackOfIntegers類,顯示素?cái)?shù)因子)編寫一個(gè)程序,提示 用戶輸入一個(gè)正整數(shù),然后以降序顯示它的所有最小因子。例如:如 果整數(shù)為120,那么顯示的最小因子為5、3、2、2、2。使用Sta
3、ckOfIntegers類存儲(chǔ)因子(如:2、2、2、3、5),獲取之后按倒 序顯示這些因子。說(shuō)明:題目來(lái)源編程練習(xí)10.5( P296)。StackOfIntegers類實(shí)現(xiàn),參見10.9 “堆棧類設(shè)計(jì)”、類圖10-11(P288)。求素?cái)?shù)因子算法, 參考編程練習(xí)4.16( P117)?!緦?shí)驗(yàn)預(yù)習(xí)】1. 輸出一個(gè)正整數(shù)的所有素?cái)?shù)因子。2. 輸入:用 scanner 輸入一個(gè)正整數(shù)。處理:當(dāng)改正整數(shù)能被 2以上整除時(shí),將除數(shù)放入棧中,商賦給除數(shù),否則除數(shù)加 1,循環(huán)上述步驟,知道被除數(shù)為 1停止。 輸出:將棧中的數(shù)一次輸出。3:技術(shù)支持:創(chuàng)建了 StackOfIntegers 類,使用了堆棧類設(shè)
4、計(jì)方法, 使用了循環(huán)語(yǔ)句,條件語(yǔ)句,輸出語(yǔ)句等?!靖剑撼绦虼a】public class testStacksOfIntegerspublic static void main(String args) / 創(chuàng)建 StacksOfIntegers 類StackOfIntegers stack = new StackOfIntegers();/ 輸入一個(gè)正整數(shù)Scanner input=new Scanner(System.in);int limit=input.nextInt();int k,s,i=2;s=limit;/ 判斷除數(shù)是否為該整數(shù)的素?cái)?shù)因子dok= s%i;if(k=0)s=s/
5、i;stack.push(i);elsei+;while(s!=1);/ 輸出棧中的數(shù),即素?cái)?shù)因子while (!stack.empty()+ " ");/ 創(chuàng)建 StacksOfIntegers 類Public class StackOfIntegers private int elements;private int size;public static final int DEFAULT_CAPACITY = 16;/ 構(gòu)建一個(gè)默認(rèn)容量為 16的空棧public StackOfIntegers() this(DEFAULT_CAPACITY);/ 構(gòu)建一個(gè)指定容量的空
6、棧public StackOfIntegers(int capacity) elements = new intcapacity;/ 將一個(gè)整數(shù)存儲(chǔ)到棧頂public void push(int value) if (size >= elements.length) int temp = new intelements.length * 2;temp, 0,System.arraycopy(elements, 0, elements.length);elements = temp;elementssize+ = value;/ 刪除棧頂?shù)恼麛?shù)并返回它public int pop() re
7、turn elements-size;/ 返回棧頂?shù)恼麛?shù)而不從棧中刪除該數(shù)public int peek() return elementssize - 1;/ 如果棧為空則返回 truepublic boolean empty() retur n size = 0;/返回棧中元素個(gè)數(shù)public int getSize() retur n size;【實(shí)驗(yàn)過(guò)程及結(jié)果記錄】在實(shí)驗(yàn)中遇到的問(wèn)題:在實(shí)驗(yàn)開始時(shí)不會(huì)使用堆棧類設(shè)計(jì)方法,經(jīng)過(guò)看書上例題,學(xué)會(huì)了如何使用。3、(風(fēng)扇類Fan的應(yīng)用和實(shí)現(xiàn))根據(jù)編程練習(xí)8.8( P239)的描述,第 一步,請(qǐng)畫出風(fēng)扇Fan類的UM類圖。第二步,編寫一個(gè)測(cè)試程序
8、(Fan 類應(yīng)用),創(chuàng)建兩個(gè)Fan對(duì)象,用第一個(gè)Fan對(duì)象表示“最大速度 運(yùn)轉(zhuǎn)、半徑為10、顏色為黃色、處于打開狀態(tài)”的風(fēng)扇;用第二個(gè) Fan對(duì)象表示“中等速度運(yùn)轉(zhuǎn)、半徑為5、顏色為藍(lán)色、處于關(guān)閉狀態(tài)” 的風(fēng)扇;通過(guò)調(diào)用toString()方法顯示這些風(fēng)扇的屬性信息。 程序 可以TestFan.java中。第三步,實(shí)現(xiàn)風(fēng)扇類Fan,可以編寫在Fan.java 文件中。第四步,編譯運(yùn)行該程序。【實(shí)驗(yàn)預(yù)習(xí)】1. 通過(guò)創(chuàng)建Fan類,輸出一個(gè)風(fēng)扇的自身屬性2. 構(gòu)建一個(gè)風(fēng)扇類,構(gòu)建特殊實(shí)例,通過(guò)調(diào)用其中的方法,顯示該 實(shí)例的屬性。3. 技術(shù)支持:構(gòu)建風(fēng)扇類,使用了構(gòu)造方法、一般方法,訪問(wèn)器, 修改器。
9、使用了輸出語(yǔ)句等。4. 實(shí)驗(yàn)步驟:畫出uml圖,構(gòu)建風(fēng)扇類,再寫出main方法?!綰M圖】4SLCIW: int = 1+MED1UM: int 二 2-H=AST; int = 3-speed: int = 1 -on: boclMn = false -radu&: doubly = 5 -color: 5trTig = blue4ei£peed0! int +5etSpeedne7-.'Speed: int); void -HsOnQ: boolean-4-setOn(newStatus: boolean): void-t-ge(Radius0: double-l
10、-setRadnewRadius: double): double -1-getCDlDrO! string肝亡tCobrfne'zColor; string); string +toStringQ: void【附:程序代碼】public class Fan Program/主方法public static void main( Stri ngargs)/創(chuàng)建一個(gè)Fan對(duì)象,其設(shè)置為最大風(fēng)速、半徑為10、顏色為yellow、 狀態(tài)為打開。Fan fan1=new Fan();fan1.setSpeed(Fan.FAST); fan1.setRadius(10);fan1.setColo
11、r("yellow"); fan1.setOn(true);/ 輸出該實(shí)例對(duì)象的屬性 / 創(chuàng)建一個(gè)對(duì)象,其設(shè)置為中等風(fēng)速、半徑為 5、顏色為 blue 、狀態(tài) 為關(guān)閉。Fan fan2=new Fan();fan2.setSpeed(Fan.MEDIUM); fan2.setRadius(5);fan2.setColor("blue"); fan2.setOn(false);/ 輸出該實(shí)例對(duì)象的屬性/ 創(chuàng)建一個(gè)風(fēng)扇類Public class Fanfinal static int SLOW=1;final static int MEDIUM=2;fina
12、l static int FAST=3;private int speed=1;private boolean on=false;private double radius=5;private String color="blue"/ 風(fēng)扇類的無(wú)參構(gòu)造方法Fan()/ 返回這個(gè)風(fēng)扇類的風(fēng)速public int getSpeed()return speed;/ 設(shè)置這個(gè)風(fēng)扇的新風(fēng)速public void setSpeed(int newSpeed) speed=newSpeed;/ 返回這個(gè)風(fēng)扇的狀態(tài)public boolean isOn()return on;/ 設(shè)置這個(gè)風(fēng)
13、扇的新的狀態(tài)public void setOn(boolean newSpeed)on=newSpeed;/ 返回這個(gè)風(fēng)扇的半徑public double getRadius()return radius;/ 設(shè)置這個(gè)風(fēng)扇的新的半徑public void setRadius(double newRadius) radius=newRadius;/ 返回這個(gè)風(fēng)扇的顏色public String getColor()return color;/ 設(shè)置這個(gè)風(fēng)扇的新的顏色public void setColor(String newColor)color=newColor;/ 返回描述風(fēng)扇的字符串pu
14、blic String toString()return "speed "+speed+"n"+"color "+color+"n"+"radius "+radius+"n"+(on) ? "fan is on" : " fan is off");【實(shí)驗(yàn)過(guò)程及結(jié)果記錄】在實(shí)驗(yàn)中遇到的問(wèn)題:在用toString時(shí),使用了選擇運(yùn)算符,簡(jiǎn)化代 碼。用if語(yǔ)句,比較長(zhǎng)。4. (tax類的應(yīng)用和實(shí)現(xiàn))根據(jù)編程練習(xí)10.8( P297)的描述,使用
15、 和實(shí)現(xiàn)Tax類,計(jì)算繳納的稅款額。第一步,畫出 Tax類的UM圖。第 二步,編寫一個(gè)測(cè)試程序,使用 Tax類,對(duì)所給4種納稅人打印2009 年的稅款表(2009稅率表參見表2),可征稅收入范圍在50,00060,000 美元之間,間隔為1000美元。第三步,實(shí)現(xiàn)Tax類。第四步,編譯、運(yùn)行該程序?!緦?shí)驗(yàn)預(yù)習(xí)】1. 通過(guò)創(chuàng)建Tax類,輸出一個(gè)Tax的自身屬性2. 構(gòu)建一個(gè)Tax類,構(gòu)建特殊實(shí)例,通過(guò)調(diào)用其中的方法,計(jì)算稅款。3. 技術(shù)支持:構(gòu)建Tax類,使用了構(gòu)造方法、一般方法,訪問(wèn)器,修改器。使用了輸出語(yǔ)句等。4. 實(shí)驗(yàn)步驟:畫出uml圖,構(gòu)建Tax類,再寫出main方法?!綰M圖】Tax+
16、SINGUE_FILER: rt = 1+MARRIEDJOINTTLY; int = 2+MARRIED_SEPARATLr; int = 3+HEAD0F_H0U5EH0LD! int =斗-fiingStatuSn int = 1-bradets: objettO -rates: objecttaxa Wein come: int+TaxQ-FTaxtfiiingStatus: double, brackets: objectQjrates obj&ctQ) +setEradcet5(brackets: cjectCI ;: void+setRatESrates; atjject
17、Q): '.'okJ-letTax ablel ncome 0: double +5etraxblelncome(tdxablelncome: double): void -bgetFilrigStstusO1 int45etFilwigStatustfilingStatus: intj: void+findTaKL 0: double【附:程序代碼】public class taxProgram /主方法public static void main(String args) in t bracketsFor2009 = 6000,27950, 67700, 141250,
18、307050, / Single filer12000,46700, 112850, 171950, 307050, / marriedfili ng joi ntly6000,23350,56425, 85975,153525,/ marriedfili ng separately10000,37450, 96700, 156600, 307050 / head ofhouseholddouble ratesFor2009 = 0.1, 0.15, 0.27, 0.30, 0.35, 0.386;Tax taxFor2009 = new Tax(0, bracketsFor2009, rat
19、esFor2009, 50000);for (int taxableIncome = 50000; taxableIncome <= 60000; taxableIncome += 1000) taxFor2009.setTaxableIncome(taxableIncome); taxFor2009.setFilingStatus(0);int taxForStatus0 = (int)taxFor2009.findTax(); taxFor2009.setFilingStatus(1);int taxForStatus1 = (int)taxFor2009.findTax(); ta
20、xFor2009.setFilingStatus(2);int taxForStatus2 = (int)taxFor2009.findTax(); taxFor2009.setFilingStatus(3);int taxForStatus3 = (int)taxFor2009.findTax();"t"taxForStatus0 + "t" +taxForStatus1 + "t" + taxForStatus2 + "t" +taxForStatus3);/創(chuàng)建Tax類Public class Tax pub
21、lic final static int SINGLE_FILER = 1;public final static int MARRIED_JOINTLY = 2;public final static int MARRIED_SEPARATELY = 3;public final static int HEAD_OF_HOUSEHOLD = 4;private int filingStatus = SINGLE_FILER;private int brackets = 6000, 27950, 67700, 141250, 307050, / Single filer12000 , 4670
22、0, 112850, 171950, 307050, / married filing jointly6000,23350, 56425, 85975, 153525,/ marriedfiling separately10000,37450, 96700, 156600, 307050 / head ofhouseholdprivate double rates = 0.1, 0.15, 0.27, 0.30, 0.35,0.386;private double taxableIncome = 100000;/ 構(gòu)建一個(gè)默認(rèn)的稅款對(duì)象public Tax() / 構(gòu)建一個(gè)制定納稅人類型,收入
23、及稅率的稅款對(duì)象public Tax(int filingStatus, int brackets, double rates,double taxableIncome) this.filingStatus = filingStatus; this.brackets = brackets;this.rates = rates;this.taxableIncome = taxableIncome;/ 設(shè)置這個(gè)對(duì)象的收入范圍public void setBrackets(int brackets) this.brackets = brackets;/ 設(shè)置稅率public void setRate
24、s(double rates) this.rates = rates;/ 返回稅款對(duì)象的收入public double getTaxableIncome() return taxableIncome;設(shè)置稅款對(duì)象的收入public void setTaxableIncome(double taxableIncome) this.taxableIncome = taxableIncome;/ 返回納稅人所屬類型public int getFilingStatus() return filingStatus;/ 設(shè)置納稅人所屬類型public void setFilingStatus(int filingStatus) this.filingStatus = filingStatus;/ 計(jì)算稅款,并返回稅款值public double findTax() double tax = 0;if (taxableIncome <= bracketsfilingStatus0)return tax = taxableIncome * rates
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《密封件基礎(chǔ)知識(shí)》課件
- 2024年貴州建設(shè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)標(biāo)準(zhǔn)卷
- 單位管理制度集合大全人事管理十篇
- 單位管理制度匯編大全人事管理
- 單位管理制度合并匯編【人員管理】
- 單位管理制度呈現(xiàn)匯編職工管理篇十篇
- 單位管理制度呈現(xiàn)大全人員管理
- 《礦山勞動(dòng)衛(wèi)生》課件
- 《生活中的問(wèn)題》課件
- 《安全防護(hù)欄標(biāo)準(zhǔn)》課件
- 技能成才強(qiáng)國(guó)有我課件模板
- “雙減”背景下小學(xué)數(shù)學(xué)“教、學(xué)、評(píng)”一體化的思考與實(shí)踐
- 中外美術(shù)評(píng)析與欣賞智慧樹知到期末考試答案章節(jié)答案2024年湖南大學(xué)
- 事業(yè)單位考試《綜合知識(shí)和能力測(cè)試》試卷
- 福利住房與購(gòu)房補(bǔ)貼制度
- 康師傅烏龍茗茶營(yíng)銷策劃書
- 【川教版】《生命 生態(tài) 安全》四上第13課《預(yù)防凍瘡》課件
- 工廠籌建方案
- UPVC管道安裝施工方法
- 河南省鄭州高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期1月期末科學(xué)試題
- 計(jì)算機(jī)基礎(chǔ)理論-進(jìn)制的概念及換算試題及答案
評(píng)論
0/150
提交評(píng)論