浙大JAVA实验题答案13answerWord格式.docx

上传人:b****3 文档编号:16926130 上传时间:2022-11-27 格式:DOCX 页数:16 大小:19.70KB
下载 相关 举报
浙大JAVA实验题答案13answerWord格式.docx_第1页
第1页 / 共16页
浙大JAVA实验题答案13answerWord格式.docx_第2页
第2页 / 共16页
浙大JAVA实验题答案13answerWord格式.docx_第3页
第3页 / 共16页
浙大JAVA实验题答案13answerWord格式.docx_第4页
第4页 / 共16页
浙大JAVA实验题答案13answerWord格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

浙大JAVA实验题答案13answerWord格式.docx

《浙大JAVA实验题答案13answerWord格式.docx》由会员分享,可在线阅读,更多相关《浙大JAVA实验题答案13answerWord格式.docx(16页珍藏版)》请在冰豆网上搜索。

浙大JAVA实验题答案13answerWord格式.docx

i++){

sum+=(s.charAt(i)-'

0'

);

//求各位数字和

}

System.out.println("

number="

+number+"

sum="

+sum);

}

}

 

50003统计一个整数中数字的个数

读入1个整数,统计并输出该数中2的个数。

要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。

例如,countdigit(10090,0)的返回值是3。

输入:

3(repeat=3)

-21902

2

345543

输出:

count=2(-21902中有2个2)

count=1(有1个2)

count=0(345543中没有2)

publicclassTest50003{

publicstaticvoidmain(Stringargs[]){

intcount;

longn;

n=in.nextInt();

/*---------*/

n=Math.abs(n);

count=countdigit(n,2);

System.out.println("

count="

+count);

/*------------*/

//统计正整数number中数字digit的个数

staticintcountdigit(longnumber,intdigit){

intc=0;

Strings=String.valueOf(number);

//把长整数number转换成字符串

//以下循环实现:

依次取出number的每个数字与指定数字digit比较,若相等则个数加1

s.length();

i++)

if(s.charAt(i)-'

==digit)c++;

returnc;

}

50009将一个整数逆序输出

输入一个整数,将它逆序输出。

要求定义并调用函数reverse(number),它的功能是返回number的逆序数。

例如reverse(12345)的返回值是54321。

123456-100-299

654321

-1

-2

99

publicclassTest50009{

intri,repeat;

longn,res;

ri<

ri++){

res=reverse(n);

System.out.println(res);

/*---------*/

staticlongreverse(longnumber){//返回number的逆序数

longa;

intflag=1;

//保存符号

if(number<

0){

flag=-1;

number=-number;

//负数变成正数

Strings1=String.valueOf(number);

Strings2="

"

;

s1.length();

i++)

s2=s1.charAt(i)+s2;

//字符串逆序

a=Long.parseLong(s2);

//转换成数值

returnflag*a;

//加上符号

}

2.编程题

70001定义一个能计算圆面积和周长的类

输入n,输入n个圆半径,分别计算圆面积和周长。

要求在main()方法所在类的后面定义一个Circle类,该类包含以下成员:

成员变量r:

单精度浮点型

成员方法setR():

设置半径

成员方法area():

计算面积,返回双精度浮点数

成员方法perimeter():

计算周长,返回双精度浮点数

输入输出示例(括号内是说明)

2(n=2,后面要输入2个圆半径)

12.3100.12(第1个半径是12.3,第2个半径是100.12)

475(第1个圆面积)

77(第1个圆周长)

31491(第2个圆面积)

629(第2个圆周长)

importjava.util.*;

publicclassTest70001{

intn,i;

floatr;

for(i=1;

=n;

r=in.nextFloat();

Circlecir=newCircle();

cir.setR(r);

System.out.println(Math.round(cir.area()));

System.out.println(Math.round(cir.perimeter()));

/*--------------------------*/

classCircle{

floatr;

publicvoidsetR(floatx){

r=x;

publicdoublearea(){

returnMath.PI*r*r;

publicdoubleperimeter(){

return2*Math.PI*r;

70002设计一个立方体类

输入一个立方体边长,分别计算表面积和体积。

要求在main()方法所在类的后面定义一个Cube类,该类包含以下成员:

成员变量length:

双精度浮点型,建议用私有变量

成员方法setLength():

设置边长

成员方法getLength():

返回边长

成员方法calcArea():

计算表面积,返回双精度浮点数

成员方法calcV():

计算体积,返回双精度浮点数

1.25(边长等于1.25)

publicclassTest70002{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

doublen;

n=in.nextDouble();

//输入边长

/*-------------------*/

Cubecube1=newCube();

cube1.setLength(n);

Length="

+cube1.getLength());

Surfacearea="

+cube1.calcArea());

Volume="

+cube1.calcV());

/*----------------------------*/

classCube{

privatedoublelength;

publicvoidsetLength(doublen){

length=n;

publicdoublegetLength(){

returnlength;

publicdoublecalcArea(){

return6*length*length;

publicdoublecalcV(){

returnlength*length*length;

实验14类的设计和实验题库中未做的题

3.程序填空题,不要改变与输入输出有关的语句。

30009求一元二次方程的根(选做)

输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数(如果答案为3.50,则直接显示为3.5)。

按情况分别输出以下内容(文字中的标点为西文标点,无空格。

括号内为说明):

(1)a=b=c=0,meaningless

(2)a=b=0,c!

=0,error

(3)x=值(值为-c/b)

(4)x1=值1(值1为(-b+Math.sqrt(d))/(2*a))

x2=值2(值2为(-b-Math.sqrt(d))/(2*a))

(5)x1=值1+值2i

x2=值1-值2i(值1为-b/(2*a),值2为Math.sqrt(-d)/(2*a))

输入输出示例:

括号内为说明

5(repeat=5)

000(a=0,b=0,c=0)

001(a=0,b=0,c=1)

025(a=0,b=2,c=5)

218935(a=21,b=89,c=35)

223(a=2,b=2,c=3)

a=b=c=0,meaningless

a=b=0,c!

publicclassTest30009{

intrepeat,ri;

inta,b,c,d;

doublex1,x2;

repeat=in.nextInt();

for(ri=1;

ri<

=repeat;

a=in.nextInt();

b=in.nextInt();

c=in.nextInt();

/*---------*/

if(a==0&

&

b==0&

c==0)

System.out.println("

a=b=c=0,meaningless"

elseif(a==0&

c!

=0)

System.out.println("

=0,error"

b!

=0){

x1=-(double)c/b;

x="

+Math.round(x1*100)/100.0);

}

else{

d=b*b-4*a*c;

if(d>

=0){

x1=(-b+Math.sqrt(d))/(2*a);

x2=(-b-Math.sqrt(d))/(2*a);

x1="

x2="

+Math.round(x2*100)/100.0);

else{

x1=-(double)b/(2*a);

x2=Math.sqrt(-d)/(2*a);

+Math.round(x1*100)/100.0+"

+"

+Math.round(x2*100)/100.0+"

i"

-"

说明:

为防止出错,在编程前应考虑周全

✧当a=b=c=0时,方程有无数解;

✧当a=b=0,c!

=0时,方程无解;

✧当a=0,b!

=0时,方程解为x=-c/b;

✧当a!

=0时,求:

d=b*b-4*a*c

若d>

=0,有两个不同实根:

x=(-b±

Math.sqrt(d))/(2*a)

若d<

0,有两个不同复根:

x=-b/(2*a)±

t(-d)/(2*a)i

或:

if(a==0){

if(b==0){

if(c==0)

System.out.println("

else

else{

}

40033 简单计算器

程序模拟简单运算器的工作:

输入一个算式,遇等号"

="

说明输入结束,输出结果。

假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。

2(repeat=2)

15+2/3=(数字与运算符之间有一空格)

1+2*10-10/2=(数字与运算符之间有一空格)

5

10

publicclassT40033{

publicstaticvoidmain(Stringargs[]){

intop1,op2,res;

charoperator;

op1=in.nextInt();

operator=(in.next()).charAt(0);

//先读入一个单词(字符串类型),再从中取出第0个字符,作为运算符

res=op1;

while(operator!

='

){

op2=in.nextInt();

switch(operator){

case'

+'

:

res+=op2;

break;

-'

res-=op2;

*'

res*=op2;

/'

res/=op2;

operator=(in.next()).charAt(0);

System.out.println(res);

以下题目练习类的设计:

70011设计一个Circle的子类——圆柱体Cylinder

输入一个圆柱体底圆的圆心坐标、圆半径、高度,分别计算并输出圆柱体的体积和表面积。

要求在Circle类的后面定义一个它的子类Cylinder类(圆柱体),该类包含以下成员:

成员变量h:

高度,双精度浮点型

构造方法

计算圆柱体表面积,返回双精度浮点数

计算圆柱体体积,返回双精度浮点数

成员方法getH():

获得高度,返回双精度浮点数

2345(圆心坐标x=2,y=3;

半径r=4;

高度h=5)

V=251.33(圆柱体体积)

S=226.19(圆柱体表面积)

publicclassTest70011{

doublex,y,r,h;

x=in.nextDouble();

y=in.nextDouble();

r=in.nextDouble();

h=in.nextDouble();

Cylindercy=newCylinder(x,y,r,h);

r="

+cy.getR());

h="

+cy.getH());

V="

+Math.round(cy.calcV()*100)/100.);

S="

+Math.round(cy.calcArea()*100)/100.);

privatedoublex,y,r;

publicCircle(doublex,doubley,doubler){

this.x=x;

this.y=y;

this.r=r;

publicdoubleperimeter(){//计算圆周长

return2*Math.PI*r;

publicdoublearea(){//计算圆面积

returnMath.PI*r*r;

publicdoublegetR(){

returnr;

/*-----------------------------------*/

classCylinderextendsCircle{

publicdoubleh;

publicCylinder(doublex,doubley,doubler,doubleh){

super(x,y,r);

this.h=h;

publicdoublecalcArea(){

returnperimeter()*h+2*area();

publicdoublecalcV(){

returnarea()*h;

publicdoublegetH(){

returnh;

70012编写重载方法,求二个数或三个数的最大值

输入一个正整数n(n>

0),做n次下列运算:

输入a、b、c三个整数,分别算出前2个数的最大值,和3个数的最大值。

要求在main()方法所在类的下方,定义一个Compare类,该类中定义两个类成员方法max(a,b)和max(a,b,c),用来分别获得两个数的最大值、三个数的最大值。

输入输出示例(括号内是说明):

2(n=2)

43466(第一批3个数)

3234(第二批3个数)

max(a,b)=34(第一批中前两个数的最大值)

max(a,b,c)=66(第一批中的最大值)

max(a

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

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1