第十周,题目:定义一个图形类及其子类(三角形类和矩形类),分别计算其面积和周长。

该博客主要围绕Java作业展开,题目要求定义一个图形类及其子类(三角形类和矩形类),并分别计算它们的面积和周长,聚焦于Java编程中类的定义与使用。

题目:定义一个图形类及其子类(三角形类和矩形类),分别计算其面积和周长。

2 sdut-oop-6 计算各种图形的周长(多态) 分数 10 作者 雪芹 单位 山东理工大学 定义接口或类 Shape,定义周长的方法length()。 定义如下类,实现接口Shape或父类Shape的方法。 (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。 定义测试类ShapeTest,用Shape接口(或类)定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。 提示: 计算周长时PI取3.14。 输入格式: 输入多组数值型数据(Python类型float,Java类型double); 一行中若有1个数,表示圆的半径; 一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。 一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。(需要判断三个边长是否能构成三角形) 若输入数据中有0或负数,则不表示任何图形,周长为0。 输出格式: 行数与输入相对应,数值为根据每行输入数据求得的图形的周长。 输入样例: 在这里给出一组输入。例如: 1 2 3 4 5 6 2 -2 -2 -3 输出样例: 在这里给出相应的输出。例如: 6.28 10.00 15.00 12.56 0.00 0.00 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB Java (javac) Selection deleted 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 abstract class Shape { public abstract double perimeter(); // 抽象方法,强制子类实现 } class Circle extends Shape { private double r; public Circle(double r) { this.r = Math.max(r, 0); // 负半径自动转为0 } @Override public double perimeter() { return 2 * Math.PI * r; // 使用标准Math.PI常量 } } class Rectangle extends Shape { private double length; private double width; public Rectangle(double length, double width) { this.length = Math.max(length, 0); this.width = Math.max(width, 0); } @Override public double perimeter() { return 2 * (length + width); } } class Triangle extends Shape { private double a; private double b; private double c; public Triangle(double a, double b, double c) { // 验证三角形有效性 if (isValidTriangle(a, b, c)) { this.a = a; this.b = b; this.c = c; } else { this.a = this.b = this.c = 0; // 无效三角形设为0 } } private boolean isValidTriangle(double a, double b, double c) { return (a + b > c) && (a + c > b) && (b + c > a) && (a > 0) && (b > 0) && (c > 0); } @Override public double perimeter() { return a + b + c; } } public class Main { public static void main(String[] args) { // 测试示例 Shape circle = new Circle(5); System.out.println("圆周长: " + circle.perimeter()); Shape rect = new Rectangle(3, 4); System.out.println("矩形周长: " + rect.perimeter()); Shape triangle = new Triangle(3, 4, 5); System.out.println("三角形周长: " + triangle.perimeter()); } }
10-12
计算如下立体图形的表面积体积。 008.jpg 从图中观察,可抽取长方体四棱锥两种立体图形的共同属性到父类Rect中:长度:l 宽度:h 高度:z。 编程要求: (1)在父类Rect中,定义求底面周长的方法length( )面积的方法area( )。 (2)定义父类Rect的子类立方体类Cubic,计算立方体的表面积体积。其中表面积area( )重写父类的方法。 (3)定义父类Rect的子类四棱锥类Pyramid,计算四棱锥的表面积体积。其中表面积area( )重写父类的方法。 (4)在主程序中,输入立体图形的长(l)、宽(h)、高(z)数据,分别输出长方体的表面积、体积、四棱锥的表面积体积。 提示: (1)四棱锥体积公式:V= 3 1 ​ Sh,S——底面积 h——高 (2)在Java中,利用Math.sqrt(a)方法可以求得a的平方根(方法的参数及返回结果均为double数据类型) (3)在Python中,利用math模块的sqrt(a)方法,求得a的平方根。 输入格式: 输入多行数值型数据(double); 每行三个数值,分别表示l、h、z,数值之间用空格分隔。 若输入数据中有0或负数,则不表示任何图形,表面积体积均为0。 输出格式: 行数与输入相对应,数值为长方体表面积 长方体体积 四棱锥表面积 四棱锥体积(中间有一个空格作为间隔,数值保留两位小数)。 输入样例: 1 2 3 0 2 3 -1 2 3 3 4 5 输出样例: 22.00 6.00 11.25 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 94.00 60.00 49.04 20.00 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB Python (python3) 1
最新发布
11-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值