《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx

上传人:scccc 文档编号:12788401 上传时间:2021-12-06 格式:DOCX 页数:49 大小:105.37KB
返回 下载 相关 举报
《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx_第1页
第1页 / 共49页
《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx_第2页
第2页 / 共49页
《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx_第3页
第3页 / 共49页
《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx_第4页
第4页 / 共49页
《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx_第5页
第5页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx》由会员分享,可在线阅读,更多相关《《Java语言程序设计(基础篇)》(第10版梁勇著)第十章练习题答案.docx(49页珍藏版)》请在三一文库上搜索。

1、Java语言程序设计(基础篇)(第10版梁勇著)第十章练习题答案10.1PUbliC ClaSS EXerCiSe10_01 PUbliC StatiC VOid main(String args) Time timel = new Time();SyStem .out. Pri n*tln ("11011厂:,+ timel .getHouO + , Min ute: , ÷timel .getM in ute( ) + , SeCOnd : , + timel .getSeco nd();Time time2 = new Time(555550000);SyStem .

2、out. Pri n*tln ("11011厂:,+ time2 .getHouO + , Min ute: , ÷time2. getMinute ( ) + , SeCOnd : , + time2. getSecond (); ClaSS Time PriVate int hour;PriVate int minute;PriVate int SeCOnd;PUbliC Time() this(System.CUrrentTimeMillis();PUbliC Time(Iong elapsedTime) SetTime(elapsedTime);PUbliC Tim

3、e(int hour int minUte? int SeCOnd) this.hour = hour;this.minute = minute;this.second = SeCOnd;PUbliC int getHour() return hour;PUbliC int getMinute() return minute;PUbliC int getSecond() return SeCOnd;PUbliC VOid SetTime(IOng elapsedTime) / Obtain the total SeCOnds SinCe the midnight Jan IJ 1970 IOn

4、g totalSecOndS = elapsedTime / 1000;/ COmPUte the CUrrent SeCOnd in the minUte in the HOUr SeCOnd = (int)(totalSeconds % 60);/ Obtain the total minUteSIOng totalMinutes = totalSeconds / 60;/ COmPUte the CUrrent minutR in the hourminute = (int)(totalMinutes % 60);/ Obtain the total hoursint totalHour

5、s = (int)(totalMinutes / 60);/ COmPUte the CUrrent hourhour = (int)(totalHours % 24);10.2PUbliC ClaSS EXerCiSe10_02 PUbliC StatiC VOid main(String args) BMl bmil = new BMI(,3ohn Doe,. 18, 145, 5, 10);SyStem.out. PrintIn( "The BMl for , + bmil.getName( ) + l, is , + bmil.getBMI() + l, , + bmil.g

6、etStatus();BMl bmi2 = new BMI(,Peter KingJ 215, 5, 10);SyStem.out. PrintIn( "The BMl for , + bmi2.getName( ) + l, is , + bmi2.getBMI( ) + l, , + bmi2.getStatus();static ClaSS BMl PriVate String name;PriVate int age;PriVate double weight; / in POUndsPriVate double height; / in inCheSPUbliC final

7、 double KILOGRAMS_PER_POUND = 0.45359237;PUbliC final double METERS-PER_INCH = 0.0254;* COnStrUCt a BMl with the SPeCifiecl name age weight,* feet and inCheS*/PUbliC BMl(String name int age double Weightdouble feet double inCheS) this.name = name;this.age = age;this.weight = weight;this.height = fee

8、t * 12 + inches;PUbliC BMl(String name int age double VJeight? double height) this.name = name;this.age = age;this.weight = weight;this.height = height;PUbliC BMl(String name double weighty double height) this(name, 20? weight, height);PUbliC double getBMI() double bmi = Weight * KILOGRAMS_PER_POUND

9、 /(height * METERS_PER-INCH) * (height * METERS-PER_INCH);return Math. round(bmi * 100) / 100.0;PUbliC String getStatus() double bmi = getBMI();if (bmi < 16)return "seriously Underweight,;else if (bmi < 18)return "underweight"else if (bmi < 24)return "normal weight"

10、else if (bmi < 29)return "over weight"else if (bmi < 35)return "seriously OVer WeightnJelsereturn "gravely OVer weight"PUbliC String getName() return name;PUbliC int getAge() return age;PUbliC double getWeight() return weight;PUbliC double getHeight() return height;10.

11、3PUbliC ClaSS EXerCiSe10_03 PUbliC StatiC VOid main(String args) Mylnteger nl = new Myl门七鹄舒(5);SyStem .out. Priis eve n? , + nl.i SEVe n();SyStem .out. Priis prime? , + nl.i SPrime();SyStem .out. Pri ntln ("15 is prime? , + Myl nteger i SPrime(15);char CharS = ,3lj ,5,> l3,. ,9,;SyStem.out P

12、rintln(MylJrtegen-ParseInt(chans);String S = ,3539,1;SyStem.out Println(MylJrtegen-ParseInt(s);Mylnteger n2 = new Mylnteger(24)JSyStem.out Println("n2SyStem.out PrintIn("45SyStem.out Println("nlSyStem.out Println("nlISISISISodd? , + odd? , + equal to equal ton2.isdd();Mylnteger.i

13、sdd(45); 2? , + nl.equals(n2); 5? , + nl.equals(5);ClaSS Mylntegen PriVate int value;PUbliC int getValue() return value;PUbliC MylVaIUe) this.value = value;PUbliC boolean isPrime() return isPrime(value);PUbliC StatiC boolean isPrime(int nUm) if (num = 1) (num = 2) return true;for (int i = 2; i <=

14、 num / 2; i+) if (num % i = 0) return false;return true;PUbliC StatiC boolean isPrime(MyInteger o) return isPrime(o.getValue();PUbliC boolean isEven() return isEven(value);PUbliC boolean isdd() return isdd(value);PUbliC StatiC boolean isEven(in*t n) return n % 2 = 0;PUbliC static boolean isdd(int n)

15、 return n % 2 != 0;PUbliC StatiC boolean isEven(Mylntegen n) return isEven(ngetValue();PUbliC boolean equals(int mnotherNum) return ValUe = mnOthenNum;PUbliC boolean equals(MyInteger o) return ValUe = o.getValue();numbers COnSiStS Of digit CharaCterS FOr example, if numbers is ,1,? ,2 , ?PUbliC Stat

16、iC int ParSelnt(char numbers),5,the return VaIUe/ShOUId be 125 PIeaSe note thatnumbers0 is ,1,numbersl is ,21numbers2 is ,5,/int PeSUIt = 0;O);for (int i = 0; i < numbers1ength; i+) result = PeSUIt * 10 + (numbersireturn result;/ YOU may mention this When you COVered Ch8PUbliC static int ParSelin

17、g S) / S COnSiStS Of digit CharaCterS/ FOr example, if S is ',125, the return VaIUe/ ShOUId be 125.int PeSUIt = 0;for (int i = 0; i < S.Iength(); i+) result = PeSUIt * 10 + (s.charAt(i) - ,0,);return result;10.4PUbliC ClaSS EXerCiSe10_04 PUbliC StatiC VOid main(String args) MyPOint PI = new M

18、yPOint();MyPOint p2 = new MyPOint(10j 30.5);SyStem.out PrintIn(pl distance(p2);SyStem.out PrintIn(MyPoint distance(pl, p2);ClaSS MyPOint PriVate double ×PriVate double y;PUbliC MyPOint() PUbliC MyPOint(double ×j double y) this x = x;thisy 二 y;PUbliC double distance(MyPoint SeCOndPoint) ret

19、urn CIiStance(this, SeCOndPoint);PUbliC StatiC double distance(MyPoint PI MyPOint p2) return Math.Sqrt(PI.X - p2.×) * (pl.× - p2.x) ÷ (pl.y - p2.y) * (piy - p2y);PUbliC double getX() return x;PUbliC double getY() return y;10.5PUbliC ClaSS EXerCiSe10_05 PUbliC StatiC VOid main(String a

20、rgs) StaCkOflntegens StaCk = new StaCkOflHtRgens(Z);java.uti1SCannen inPUt = new java.util.Scmnner(Systemin);/ PrOmPt the USer to enter mn integerSyStem .out. Pri nt("E nten an in teger:);/ ConVert String to intint number = inPUt.nextint()JSyStem .out. Pri n*tln ("The factors for , + nu mb

21、er + , is");/ Fincl and StOre all the SmalIeSt factors Of the integer int factor = 2;while (factor <= nUmber) if (nUmber % factor = 0) nUmber = numben / factor;StaCk push(fBcton);else factor+;/ DiSPlay factorsWhile (!stack.empty() SyStem out Print (StaCk pop( ) + ,);10.6PUbliC ClaSS EXerCiSe

22、10_06 PUbliC StatiC VOid main(String args) final int LIMIT = 120;int count = 0;StaCkOflntegens StaCk = new StaCkOflntegensO;/ RePeatedIy find Prime numbersfor (int nUmber = 2; numben < LIMIT; number+)if (isPrime(number) StaCk push(numben);CoUnt÷+; / Incnemse the Prime nUmber count/ Print the

23、 first 30 Prime nUmberS in decreasing onden SyStem.out.Println("The Prime nUmber'S IeSS than 120 are n); final int NUMBER_PER_LlNE = 10;While (!stack.empty() SyStem out Print (StaCk pop( ) + ,);if (StaCk.getSize() % NUMBER_PER_LlNE = 0)SyStem.out .pnintlnO; / advance to the IIeW IinePUbliC

24、StatiC boolean isPrime(int nUmber) / ASSUme the nUmber is Primeboolean isPrime = true;/ EXerCiSe03_21 if numben is Primefor (int divisor = 2; divisor <= number / 2; divisor+) /If true the number is not Primeif (number % divisor = 0) / Set isPrime to false, if the nUmber is not Prime isPrime = fal

25、se;break; / EXit the for IOOPreturn isPrime;10.7PUbliC ClaSS EXerCiSe10_07 / Create ten accountsPriVate ACCOUnt accoUntS = new ACCOUPUbliC EXerCiSe10_07() for (int i = 0; i < accounts.length; i+) accountsi = new ACCOUnt();accountsi Setld(i);acco Im tsi.SetBalance(100);COntinUeATM:While (true) SyS

26、tem.out.print(,Enter' an id:");id = inPUt.ne×tlnt();if (id < 1 I I id > 10) SySterruoutprintln("Please Rnter a COrreCt id");COntinUeJwhile (true) int ChOiCe = getAChoice();SWitCh (ChOiCe) CaSe 1:SyStem.out.prin*tln("The balance is ,l +accoUntsidgetBalance();break;C

27、aSe 2:WithdraW();break;CaSe 3:deposit();break;CaSe 4:/ YOU Can rewrite the COde WithOUt USing the continue./ TO do SOintroduce a boolean VariabIe to COntrol OnR/ CUStOmer SeSSiOncontinue COntinueATM;PriVate static java.util.SCannen inPUt = new java.util.SCanner(Systemin);int id;PUbliC StatiC VOid ma

28、in(String args) new EXerCiSe10_07()JPUbliC VOid Withclraw() SyStem .out. Pri nt("E nten mn amount to withdraw:,); int amount = inPUt.ne×tlnt();if (amount <= accoUntsidgetBalance() accoUntsid.withdrmwCamount);else SyStem.Out-Pnint("The amount is too Iargeignored"); PUbliC VOid

29、deposit() SyStem .out. Pri nt("E nten mn amount to deposit:,);int amount = inPUt.ne×tlnt();if (amount >= 0) acco Im tsiddeposit(amoUnt);else SyStem.Out-Pnint("The amount is negative ignoned");PUbliC int getAChoice() int ChOiCeJWhile (true) SyStem.out PrintIn("nMain menu&q

30、uot;);SyStem.out printIn("1: CheCk balance");SyStem.out PrintIn( "2: Withdrav,);SyStem.out printIn("3: deposit");SyStem.out printIn("4: exit");SyStem .out pnin t (,E nt er a ChOiCe:',);ChOiCe = in PUt. nex*tl nt(); if (ChOiCe < 1 ChOiCe > 4) SyStem.out .p

31、rintIn( "WrOng ChOiCe? try again :);else break;return ChOiCeJ10.8PUbliC ClaSS EXerCiSe10_08 PUbliC StatiC VOid main(String args) int bracketsFor2001 = 27050, 65550, 136750, 297350, / SingIe filer45200, 109250, 166500, 297350, / married filing jointly22600? 54625 83250 148675 / married filing Se

32、ParateIy36250, 93650, 151650, 297350 / head Of household;double ratesFor2001 = 0.15, 0.275, 0.305, 0.355, 0.391;int bracketsFor2002 = 6000, 27950, 67700, 141250, 307050, / SingIe filer12000 , 46700, 112850, 171950, 307050, / married filing jointly 6000, 23350, 56425, 85975, 153525j / married filing

33、SeParateIy10000, 37450, 96700, 156600, 307050 / Head Of HOUSehOld ;double ratesFor2002 = .lj 0.15, 0.27, 0.30, 0.35, 0.386;TaX ta×For2001 = new TaX(0bracketsFor2001PateSFOr2001? 50000); SyStem.out. PrintIn( ,2001 TaX Table");SyStem .out Pri nt In ( "taxmblet SingleXtMarried'tMmmie

34、dVt Head of,); SyStem.out PrintIn("Income'tSingletJointtSepmratetm House");for (int ta×ablelncOme = 50000; ta×ablelncOme <= 60000; ta×ablelncOme 1000) ta×For2001 SetTaXabIelncOme(taxmblelncome);ta×For2001.SetFiIingStatUS(0);int ta×ForStatus0 = (int)ta&#

35、215;For2001.findTa×(); ta×For2001.SetFiIingStatUS(1);int ta×ForStatusl = (int)ta×For2001.findTa×(); ta×For2001.SetFiIingStatUS(2);int ta×ForStatus2 = (int)ta×For2001.findTa×(); ta×For2001.SetFiIingStatUS(3);int ta×ForStatus3 = (int)ta×For20

36、01.findTa×();SyStem .out. Print ln( ta×ablel nc Ome ÷ lltu + ta×ForStatus0 + , t" + ta×ForStatusl + ,t" ÷ ta×ForStatus2 + ,t" + ta×ForStatus3);TaX ta×For2002 = new TaX(0bracketsFor2002PateSFOr2002? 50000); SyStem.out. PrintIn( ,2002 TaX Tab

37、le");SyStem .out Pri nt In ( "taxmblet SingleXtMarried'tMmmiedVt Head of,);SyStem.out PrintIn("Income'tSingle'tJointXtSepmrateXtm House");for (int ta×ablelncOme = 50000; ta×ablelncOme <= 60000; ta×ablelncOme 1000) ta×For2002 SetTaXablelncome(tax

38、ablelncomR);ta×For2002.SetFiIingStatUS(0);int ta×ForStatus0 = (int)ta×For2002.findTa×(); ta×For2002.SetFiIingStatUS(1);int ta×ForStatusl = (int)ta×For2002.findTa×(); ta×For2002 SetFiIingStatus(2);int ta×ForStatus2 = (int)ta×For2002.findTa×(

39、); ta×For2002.SetFiIingStatUS(3);int ta×ForStatus3 = (int)ta×For2002.findTa×();SyStem .out. Print ln( ta×ablel nc Ome ÷ ,t + ta×ForStatus0 + , t" + ta×ForStatusl + ,t" + ta×ForStatus2 + ,t" + ta×ForStatus3);ClaSSTaX PUbliC finalStatiCi

40、ntSlNGLE_FILER = 1;PUbliC finalStatiCintMARRlED_DOlNTLY = 2;PUbliC finalStatiCintMARRlED_SEPARATELY = 3;PUbliC finalStatiC intHEAD_OF-HOUSEHOLD = 4;PriVate int filingStatus=SlNGLEeFILER;PriVate int brackets = 27050, 65550, 136750, 297350, / SingIe filer45200, 109250, 166500, 297350, / married filing

41、 jointly22600j 54625 83250» 148675 / married filing SeParateIy36250, 93650, 151650, 297350 / head Of household;PriVate double rates = 0.15, 0.275, 0.305, 0.355, 0.391;PriVate double ta×ablelncome = 100000;PUbliC Ta×() PUbliC Ta×(int filingStatus int brackets double PateS? double

42、ta×ablelncome) this ."FilingStatus = f ili ngStmtus;this brackets = brackets;this .rates = rates;thistaxmblelncome = ta×ablelncOme;PUbliC VOid SetBraCketS(int brackets) this.brackets = brackets;PUbliC VOid SetRateS(double PateS) this.nates = rates;PUbliC double getTa×ableIncome()

43、 return ta×ablelncome;PUbliC VOid SetTaXabIelncorG(double ta×ablelncome) this ."taxablel ncome = ta×ablel nc Ome;PUbliC int getFiIingStatus() return filingStatus;PUbliC VOid SetFiIingStatUS(int filingStatus) this ."FilingStatus = f ili ngStmtus;PUbliC double findTa×() d

44、ouble tax = 0;/ COmPUte tax in the first bracketif (ta×ablelncome <= bracketsfiIingStatus0)return tax = ta×ablelncome * rates0;elsetax = bracketsfilingStatus0 * rates0;int i;/ COmPUte tax in the POSSibIe 2nd丿 3rd? 4thj and 5th bracketsfor (i = 1; i < brackets0.IengthJ i+) if (ta×

45、;ablelncome > bracketsfiIingStatusi)tax += (bracketsfiIingStatusi - bracketsfilingStmtusi - 1) ratesi;else tax += (ta×ablelncome - bracketsfiIingStatusi - 1) * ratesi; break;/ COmPUte tax in the POSSibIe IaSt bracketif (i = brackets0.length && taxablelncome > bracketsfHingStatusi

46、- U)tax += (ta×ablelncome - bracketsfilingStatusi - 1) * ratesi;return tax;10.9PUbliC ClaSS EXerCiSe10_09 PUbIiC StatiC VOid main(String args) COUrSeNeW COUrSeI = new COUrSeNew("Data StrUCtUres");COUrSeNeW COUrSe2 = new COUrSeNew("Database SyStemSH);COUrSeI addStudent ( "Pet

47、er JOnes,');COUrSeI addStudent (n Smith");COUrSeI addStudent("Anne Kennedy");COUrSeI addStudent ( "Susmn Kennedy,');COUrSeI. addStudent( ,3Ohn Kennedy");COUrSeI addStudent ( "Kim JOhnsor');COUrSeI.addStudent( "SI1');COUrSeI. addStudent (,S2,');COUrSeI.addStudent( ,S3);COUrSeI. addStudent (,S4,');COUrSeI.addStudent( ,S5);COUrSeI.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1