语言程序设计基础篇第十版第十三章练习答案.docx
- 文档编号:16308053
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:25
- 大小:17.94KB
语言程序设计基础篇第十版第十三章练习答案.docx
《语言程序设计基础篇第十版第十三章练习答案.docx》由会员分享,可在线阅读,更多相关《语言程序设计基础篇第十版第十三章练习答案.docx(25页珍藏版)》请在冰点文库上搜索。
语言程序设计基础篇第十版第十三章练习答案
01
publicclassExercise13_01{
publicstaticvoidmain(String[]args){
TriangleNewtriangle=newTriangleNew(1,,1);
("yellow");
(true);
"Theareais"+());
"Theperimeteris"
+());
}
}
classTriangleNewextendsGeometricObject{
privatedoubleside1=,side2=,side3=;
/**Constructor*/
publicTriangleNew(){
}
/**Constructor*/
publicTriangleNew(doubleside1,doubleside2,doubleside3){
=side1;
=side2;
=side3;
}
/**ImplementtheabstractmethodfindAreainGeometricObject*/
publicdoublegetArea(){
doubles=(side1+side2+side3)/2;
return(s*(s-side1)*(s-side2)*(s-side3));
}
/**ImplementtheabstractmethodfindCircumferencein
*GeometricObject
**/
publicdoublegetPerimeter(){
returnside1+side2+side3;
}
@Override
publicStringtoString(){
]
NumbercurrentMin=(i);
intcurrentMinIndex=i;
for(intj=i+1;j<();j++){
if()>(j).doubleValue()){
currentMin=(j);
currentMinIndex=j;
}
}
;
publicclassExercise13_04{
staticMyCalendarcalendar=newMyCalendar();
publicstaticvoidmain(String[]args){
intmonth=+1;
intyear=;
if>2)
"UsagejavaExercise13_04monthyear");
elseif==2){
etRadius())
return1;
elseif(getRadius()<((Circle1)o).getRadius())
return-1;
else
return0;
}
}
06
publicclassExercise13_06{
etArea());
if(objects[i]instanceofColorable)
((Colorable)objects[i]).howToColor();
}
}
}
interfaceColorable{
voidhowToColor();
}
classSquareextendsGeometricObjectimplementsColorable{
privatedoubleside;
publicSquare(doubleside){
=side;
}
@Override
publicvoidhowToColor(){
"Colorallfoursides");
}
@Override
publicdoublegetArea(){
returnside*side;
}
@Override
publicdoublegetPerimeter(){
return4*side;
}
}
08
importclassExercise13_08{
publicstaticvoidmain(String[]args){
MyStack1stack=newMyStack1();
("S1");
("S2");
("S");
MyStack1stack2=(MyStack1)());
("S1");
("S2");
("S");
}
}
classMyStack1implementsCloneable{
privateArrayList
publicbooleanisEmpty(){
return();
}
publicintgetSize(){
return();
}
publicObjectpeek(){
return(getSize()-1);
}
publicObjectpop(){
Objecto=(getSize()-1);
(getSize()-1);
returno;
}
publicvoidpush(Objecto){
(o);
}
/**OverridethetoStringintheObjectclass*/
publicStringtoString(){
return"stack:
"+();
}
publicObjectclone(){
try{
MyStack1c=(MyStack1)();
=(ArrayList
}catch(CloneNotSupportedExceptionex){
returnnull;
}
}
}
09
publicclassExercise13_09{
publicstaticvoidmain(String[]args){
Circle13_09obj1=newCircle13_09();
Circle13_09obj2=newCircle13_09();
}
}
adius;
}
}
10
publicclassExercise13_10{
publicstaticvoidmain(String[]args){
Rectangle13_10obj1=newRectangle13_10();
Rectangle13_10obj2=newRectangle13_10();
}
}
etArea();
}
}
11
publicclassExercise13_11{
publicstaticvoidmain(String[]args){
Octagona1=newOctagon(5);
"Areais"+());
"Perimeteris"+());
Octagona2=(Octagon)());
"Comparethemethods"+(a2));
}
}
classOctagonextendsGeometricObject
implementsComparable
privatedoubleside;
/**ConstructaOctagonwiththedefaultside*/
publicOctagon(){
etArea();
returnsum;
}
}
etNumerator()==0)
returntrue;
else
returnfalse;
}
/**OverridetheintValuemethod*/
publicintintValue(){
/**@todo:
implementthisabstractmethod*/
return(int)doubleValue();
}
/**OverridethefloatValuemethod*/
publicfloatfloatValue(){
/**@todo:
implementthisabstractmethod*/
return(float)doubleValue();
}
/**OverridethedoubleValuemethod*/
publicdoubledoubleValue(){
/**@todo:
implementthisabstractmethod*/
returnr[0]*r[1];
}
/**OverridethelongValuemethod*/
publiclonglongValue(){
/**@todo:
implementthisabstractmethod*/
return(long)doubleValue();
}
@Override
publicintcompareTo(NewRationalo){
/**@todo:
Implementthismethod*/
if(((NewRational)o)).getNumerator()>0)
return1;
elseif(((NewRational)o)).getNumerator()<0)
return-1;
else
return0;
}
}
15
import.*;
publicclassExercise13_15{
publicstaticvoidmain(String[]args){
Rationalr1=newRational(newBigInteger("4"),newBigInteger("2"));
Rationalr2=newRational(newBigInteger("2"),newBigInteger("3"));
ivide(gcd);
else
=(gcd);
=().divide(gcd);
}
/**FindGCDoftwonumbers*/
privatestaticBigIntegergcd(BigIntegern,BigIntegerd){
BigIntegern1=();
BigIntegern2=();
BigIntegergcd=;
for(BigIntegerk=;
(n1)<=0&&(n2)<=0;
k=){
if(k).equals&&
(k).equals)
gcd=k;
}
returngcd;
}
/**Returnnumerator*/
publicBigIntegergetNumerator(){
returnnumerator;
}
/**Returndenominator*/
publicBigIntegergetDenominator(){
returndenominator;
}
/**Addarationalnumbertothisrational*/
publicRationaladd(RationalsecondRational){
BigIntegern=()).add(
()));
BigIntegerd=());
returnnewRational(n,d);
}
/**Subtractarationalnumberfromthisrational*/
publicRationalsubtract(RationalsecondRational){
BigIntegern=()).subtract(
()));
BigIntegerd=());
returnnewRational(n,d);
}
/**Multiplyarationalnumbertothisrational*/
publicRationalmultiply(RationalsecondRational){
BigIntegern=());
BigIntegerd=());
returnnewRational(n,d);
}
/**Dividearationalnumberfromthisrational*/
publicRationaldivide(RationalsecondRational){
BigIntegern=());
BigIntegerd=;
returnnewRational(n,d);
}
@Override
publicStringtoString(){
if)
returnnumerator+"";
else
returnnumerator+"/"+denominator;
}
@Override/**OverridetheequalsmethodintheObjectclass*/
publicbooleanequals(Objectparm1){
if(((Rational)(parm1))).getNumerator().equals)
returntrue;
else
returnfalse;
}
@Override/**OverridethehashCodemethodintheObjectclass*/
publicinthashCode(){
returnnewDouble()).hashCode();
}
@Override/**OverridetheabstractintValuemethodin*/
publicintintValue(){
return(int)doubleValue();
}
@Override/**OverridetheabstractfloatValuemethodin*/
publicfloatfloatValue(){
return(float)doubleValue();
}
@Override/**OverridethedoubleValuemethodin*/
publicdoubledoubleValue(){
return()/();
}
@Override/**OverridetheabstractlongValuemethodin*/
publiclonglongValue(){
return(long)doubleValue();
}
@Override
publicintcompareTo(Rationalo){
if(((Rational)o)).getNumerator()pareTo>0)
return1;
elseif(((Rational)o)).getNumerator()pareTo<0)
return-1;
else
return0;
}
}
}
16
publicclassExercise13_16{
publicstaticvoidmain(String[]args){
Rationalresult=newRational(0,1);
if!
=1){
"Usage:
javaExercise13_16\"operand1operatoroperand2\"");
(1);
}
String[]tokens=args[0].split("");
switch(tokens[1].charAt(0)){
case'+':
result=getRational(tokens[0]).add(getRational(tokens[2]));
break;
case'-':
result=getRational(tokens[0]).subtract(getRational(tokens[2]));
break;
case'*':
result=getRational(tokens[0]).multiply(getRational(tokens[2]));
break;
case'/':
result=getRational(tokens[0]).divide(getRational(tokens[2]));
}
+""+tokens[1]+""+tokens[2]+"="+result);
}
staticRationalgetRational(Strings){
String[]st=("/");
intnumer=(st[0]);
intdenom=(st[1]);
returnnewRational(numer,denom);
}
}
/*Alternatively,youcanuseStringTokenizer.SeeSupplementonStringTokenizerasalternative
importclassExercise15_18{
publicstaticvoidmain(String[]args){
Rationalresult=newRational(0,1);
if!
=3){
"Usage:
javaExercise15_22operand1operatoroperand2");
(0);
}
switch(tokens[1].charAt(0)){
case'+':
result=getRational(tokens[0]).add(getRational(tokens[2]));
break;
case'-':
result=getRational(tokens[0]).subtract(getRational(tokens[2]));
break;
case'*':
result=getRational(tokens[0]).multiply(getRational(tokens[2]));
break;
case'/':
result=getRational(tokens[0]).divide(getRational(tokens[2]));
}
+""+tokens[1]+""+tokens[2]+"="+result);
}
staticRationalgetRational(Strings){
StringTokenizerst=newStringTokenizer(s,"/");
intnumer=newInteger()).intValue();
intdenom=newInteger()).intValue();
returnnewRational(numer,denom);
}
}
*/
17
importclassExercise13_17{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner;
"Enterthefirstcomplexnumber:
");
doublea=();
doubleb=();
Complexc1=newComplex(a,b);
"Enterthesecondcomplexnumber:
");
doublec=();
doubled=();
Complexc2=newComplex(c,d);
"("+c1+")"+"+"+"("+c2+")"+"="+(c2));
"("+c1+")"+"-"+"("+c2+")"+"="+(c2));
"("+c1+")"+"*"+"("+c2+")"+"="+(c2));
"("+c1+")"+"/"+"("+c2+")"+"="+(c2));
"|"+c1+"|="+());
Complexc3=(Complex)();
==c3);
}
}
classCompleximplementsCloneable{
privatedoublea=0,b=0;
publicComplex(){
}
Complex(doublea,doubleb){
=a;
=b;
}
publicComplex(doublea){
=a;
}
publicdoublegetA(){
returna;
}
publicdoublegetB(){
returnb;
}
publicComplexadd(ComplexsecondComplex){
doublenewA=a+();
doublenewB=b+();
returnnewComplex(newA,newB);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础 第十 第十三 练习 答案