PTA--《面线对象程序设计》作业3-继承与多态

server/2024/10/20 5:28:13/

目录

一:函数题

6-2 长方形长方体类:

6-1 从抽象类shape类扩展出一个圆形类Circle

二:编程题

7-1:周长计算器


 一:函数题

6-2 长方形长方体类:

定义一个长方形类Rectangle,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类长方体类,拥有长、宽、高属性,提供构造函数,getPerimeter函数计算所有边的周长,getArea函数计算表面积,新增getVolume函数,计算体积
在main函数中,分别构造长方形类和长方体类的对象,并输出他们的周长、面积、体积,保留两位小数

裁判测试程序样例:

java">import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner scan = new Scanner(System.in);      double length = scan.nextDouble();double wide = scan.nextDouble();Rectangle r = new Rectangle(length,wide);System.out.printf("%.2f ",r.getPerimeter());System.out.printf("%.2f",r.getArea());
System.out.println();length = scan.nextDouble();wide = scan.nextDouble();double height = scan.nextDouble();Cuboid  c = new Cuboid (length, wide, height);System.out.printf("%.2f ",c.getPerimeter());System.out.printf("%.2f ",c.getArea());System.out.printf("%.2f",c.getVolume());scan.close(); }
}/* 你的代码被嵌在这里 */

答案代码:

java"> class Rectangle{double length;double wide;public Rectangle(double length,double wide){this.length=length;this.wide=wide;}public double getPerimeter(){return (length+wide)*2;}public double getArea(){return (length*wide);}}class Cuboid extends Rectangle{double height;public Cuboid(double length,double wide,double height){super(length,wide);this.height=height;}@Overridepublic double getPerimeter(){return (length+wide+height)*4;}@Overridepublic double getArea(){return (wide*height+height*length+wide*length)*2;}public double getVolume(){return length*wide*height;}
}

6-1 从抽象类shape类扩展出一个圆形类Circle

请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法

裁判测试样例:

java">import java.util.Scanner;
import java.text.DecimalFormat;abstract class shape {// 抽象类/* 抽象方法 求面积 */public abstract double getArea( );/* 抽象方法 求周长 */public abstract double getPerimeter( );
}/* 你提交的代码将被嵌入到这里 */public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数double r = input.nextDouble( ); shape c = new  Circle(r);System.out.println(d.format(c.getArea()));System.out.println(d.format(c.getPerimeter()));input.close();} 
}

答案代码:

java">class Circle extends shape{
private double radius;
public Circle(double radius){
this.radius =radius;
}public double getArea(){
return Math.PI *radius*radius;
}
public double getPerimeter( ) {
return 2*Math.PI*radius;
}
}

二:编程题

7-1:周长计算器

1、定义一个接口 Shape 用于表示图形,其包含一个 double  length() 的方法用于求周长。
2、定义三角形类 Triangle 、长方形类 Rectangle 、圆形类Circle分别实现接口 Shape 
3、定义测试类ShapeTest并使用 Shape接口定义变量shape,用其指向不同类形的对象,输出各种图形的周长。

提示:
1、计算圆周长时PI取3.14即可;
2、需要判断能否构成三角形(任意两个边的和大于第三边),不能构成三角形的话周长为0。

答案代码如下:

java">import java.util.Scanner;
class Shape{public double length(){return 0.0;}
}
class Triangle extends Shape{private double a;private double b;private double c;Triangle(double a,double b,double c){if(a>0&&b>0&&c>0&&(a+b)>c&&(b+c)>a&&(a+c)>b){this.a=a;this.b=b;this.c=c;}else {this.a=0.0;this.b=0.0;this.c=0.0;  }} public  double  length(){return a+b+c;}}
class Rectangle extends Shape{private double a;private double b;Rectangle(double a,double b){if(a>0&&b>0){this.a=a;this.b=b;}else {this.a=0.0;this.b=0.0;}}public   double  length(){return 2*(a+b);}
}
class Circle extends Shape{private double a;Circle(double a){if(a>0){this.a=a;}else {this.a=0.0;}}public  double  length(){return 2*3.14*a;}
}
public class Main{public  static void main(String[] args){Scanner sc=new Scanner(System.in);
}

http://www.ppmy.cn/server/42118.html

相关文章

umi项目配置之项目构建时配置umirc.ts

对于 umi 中能使用的自定义配置,你可以使用项目根目录的 .umirc.ts 文件或者 config/config.ts,值得注意的是这两个文件功能一致,仅仅是存在目录不同,2 选 1 ,.umirc.ts 文件优先级较高 umi 的配置文件是一个正常的 n…

Unity TileMap入门

概述 相信很多同学学习制作游戏都是从2D游戏开始制作的吧,瓦片地图相信大家都有接触,那接下来让我们学习一下这部分的内容吧! unity组件入门篇总目录----------点击导航 Tilemap AnimationFrameRate:设置每帧动画的播放速率。Color:瓦片地图…

AlmaLinux 文件重命名 mv命令用法示例

AlmaLinux 文件重命名 在AlmaLinux中,您可以使用mv命令来重命名文件。这是一个简单的命令行实例,展示如何将文件oldname.txt重命名为newname.txt: mv oldname.txt newname.txt 如果您想批量重命名文件,可以使用脚本循环。例如&am…

【Qt C++实现蓝牙互联】

在 Qt C++ 中实现蓝牙互联可以通过 Qt 的蓝牙模块来实现。下面是一个简单的示例,演示如何在 Qt C++ 中使用蓝牙模块进行蓝牙互联,实现搜索设备、连接设备等功能。 // main.cpp #include <QCoreApplication> #include <QBluetoothDeviceDiscoveryAgent> #include…

Unity Animation--动画窗口指南(使用动画视图)

Unity Animation--动画窗口指南&#xff08;使用动画视图&#xff09; 使用动画视图 window -> Animation 即可打开窗口 查看GameObject上的动画 window -> Animation -> Animation 默认快捷键 Ctrl 6 动画属性列表 在下面的图像中&#xff0c;“动画”视图&am…

某票星球网图标点选验证码YOLOV8识别案例

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 图标点选验证码大家都不陌生了,我们来看下数据集 引言与个人想法 先说结论,本文采用的方法能够达到99的准确率,效果图如下 做图标点选其实方法有很多,有的…

electron 视频抓图并保存图片到本地

1. 思路&#xff1a; 1.1 通过canvas生成一块画布&#xff0c;在画布上绘制图形 let videoEl document.getElementById("testVideo");let params {videoEl,quality:0.95}let canvasEl document.createElement(canvas);canvasEl.width videoEl.width;canvasEl.he…

Linux:配置客户端自定义autofs服务

Linux&#xff1a;配置客户端自定义autofs服务 修改autofs的主策略文件 [rootserver200 data]# vim /etc/auto.master# 修改内容如下 /misc /etc/auto.misc # 挂载目录的上级目录 /mnt /etc/auto.timinglee --timeout3修改autofs的自定义策略文件 [rootserver200 data]…