当前位置:   article > 正文

计算长方体、四棱锥的表面积和体积_四棱锥的表面积公式

四棱锥的表面积公式

计算长方体、四棱锥的表面积和体积

Time Limit: 1000MS  Memory Limit: 65536KB
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
 行数与输入相对应,数值为长方体表面积 长方体体积 四棱锥表面积 四棱锥体积(中间有一个空格作为间隔,数值保留两位小数)
Example Input
1 2 3
0 2 3
-1 2 3
3 4 5
Example 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
Hint
 四棱锥体公式:V=1/3Sh,S——底面积 h——高
Author

zhouxq

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. Scanner sc = new Scanner(System.in);
  6. while (sc.hasNext()) {
  7. double l = sc.nextDouble();
  8. double h = sc.nextDouble();
  9. double z = sc.nextDouble();
  10. // 构造长方体对象;
  11. Cubic cubic = new Cubic(l, h, z);
  12. // 构造四棱锥对象
  13. Pyramid pyramid = new Pyramid(l, h, z);
  14. // 格式化数据
  15. String area1 = String.format("%.2f", cubic.area());
  16. String volumn1 = String.format("%.2f", cubic.volumn());
  17. String area2 = String.format("%.2f", pyramid.area());
  18. String volumn2 = String.format("%.2f", pyramid.volumn());
  19. // 输出数据
  20. System.out.println(area1 + " " + volumn1 + " " + area2 + " "
  21. + volumn2);
  22. }
  23. sc.close();
  24. }
  25. }
  26. /**
  27. * 父类
  28. *
  29. * @author student
  30. *
  31. */
  32. class Rect {
  33. double l;
  34. double h;
  35. double z;
  36. public Rect(double l, double h, double z) {
  37. if (l > 0 && h > 0 && z > 0) {
  38. this.l = l;
  39. this.h = h;
  40. this.z = z;
  41. }
  42. }
  43. public Rect(int l) {
  44. this(l, l, l);
  45. }
  46. public Rect() {
  47. }
  48. /**
  49. * 计算长方体底面周长
  50. */
  51. public double length() {
  52. return 2 * (l + h);
  53. }
  54. /**
  55. * 长方体底面面积
  56. */
  57. public double area() {
  58. return l * h;
  59. }
  60. }
  61. /**
  62. * 长方体类
  63. */
  64. class Cubic extends Rect {
  65. public Cubic(double l, double h, double z) {
  66. super(l, h, z);
  67. }
  68. /**
  69. * 长方体表面积,重写父类方法
  70. */
  71. public double area() {
  72. return 2 * super.area() + length() * z;
  73. }
  74. /**
  75. * 长方体体积,子类新增方法
  76. */
  77. public double volumn() {
  78. return super.area() * z;
  79. }
  80. }
  81. /**
  82. * 四椎体类
  83. *
  84. * @author student
  85. *
  86. */
  87. class Pyramid extends Rect {
  88. public Pyramid(double l, double h, double z) {
  89. super(l, h, z);
  90. }
  91. /**
  92. * 四椎体表面积,重写父类方法;
  93. */
  94. public double area() {
  95. return super.area() + l * Math.sqrt(z * z + h * h / 4) + h
  96. * Math.sqrt(z * z + l * l / 4);
  97. }
  98. /**
  99. * 四棱锥体积,子类新增方法
  100. */
  101. public double volumn() {
  102. return super.area() * z / 3;
  103. }
  104. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/833834
推荐阅读
相关标签
  

闽ICP备14008679号