计算长方体、四棱锥的表面积和体积
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
计算如下立体图形的表面积和体积。
从图中观察,可抽取其共同属性到父类Rect中:长度:l 宽度:h 高度:z
在父类Rect中,定义求底面周长的方法length( )和底面积的方法area( )。
定义父类Rect的子类立方体类Cubic,计算立方体的表面积和体积。其中表面积area( )重写父类的方法。
定义父类Rect的子类四棱锥类Pyramid,计算四棱锥的表面积和体积。其中表面积area( )重写父类的方法。
输入立体图形的长(l)、宽(h)、高(z)数据,分别输出长方体的表面积、体积、四棱锥的表面积和体积。
Input
输入多行数值型数据(double);
每行三个数值,分别表示l h z
若输入数据中有非正数,则不表示任何图形,表面积和体积均为0。
Output
行数与输入相对应,数值为长方体表面积 长方体体积 四棱锥表面积 四棱锥体积(中间有一个空格作为间隔,数值保留两位小数)
Sample Input
1 2 3 0 2 3 -1 2 3 3 4 5
Sample Output
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
import java.util.Scanner;
public class Main{
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext())
{
double a, b, c;
a = sc.nextDouble();
b = sc.nextDouble();
c = sc.nextDouble();
if(a <= 0 || b <= 0 || c <= 0)
{
System.out.printf("0.00 0.00 0.00 0.00\n");
}
else
{
Cubic m = new Cubic(a, b, c);
Si n = new Si(a, b, c);
m.area();
m.v();
n.area();
n.v();
}
}
sc.close();
}
}
class Rect{
double l, h;
double z;
public Rect(double l, double h, double z) {
super();
this.l = l;
this.h = h;
this.z = z;
}
public void area()
{
System.out.printf("%.2f\n", l*h);
}
public void v()
{
System.out.printf("%.2f\n",0);
}
}
//
class Cubic extends Rect{
public Cubic(double l, double h, double z) {
super(l, h, z);
}
public void area() {
double a = (l*h + l*z + z*h)*2;
System.out.printf("%.2f ", a);
}
public void v()
{
System.out.printf("%.2f ",l*z*h);
}
}
class Si extends Rect{
public Si(double l, double h, double z) {
super(l, h, z);
}
public void area() {
double a = l*h + l * Math.sqrt(z * z + h * h / 4) + h * Math.sqrt(z * z + l * l / 4);
System.out.printf("%.2f ", a);
}
public void v()
{
System.out.printf("%.2f\n",l*z*h/3);
}
}
这篇博客介绍了如何计算长方体和四棱锥的表面积及体积。通过定义父类Rect,包含长度l、宽度h和高度z,以及求底面周长和面积的方法。然后,扩展出子类Cubic(立方体)和Pyramid(四棱锥),重写area()方法以计算各自特定的表面积。输入长宽高数据,程序将输出对应图形的表面积和体积,非正数输入则结果为0。示例输入和输出数据也进行了展示。

被折叠的 条评论
为什么被折叠?



