这是一道经典的“类与继承”的题型,对与小白来说very nice。

先看题:

计算如下立体图形的表面积和体积。

从图中观察,可抽取长方体和四棱锥两种立体图形的共同属性到父类Rect中:长度:l 宽度:h 高度:z。

编程要求:

(1)在父类Rect中,定义求底面周长的方法length( )和底面积的方法area( )。

(2)定义父类Rect的子类立方体类Cubic,计算立方体的表面积和体积。其中表面积area( )重写父类的方法。

(3)定义父类Rect的子类四棱锥类Pyramid,计算四棱锥的表面积和体积。其中表面积area( )重写父类的方法。

(4)在主程序中,输入立体图形的长(l)、宽(h)、高(z)数据,分别输出长方体的表面积、体积、四棱锥的表面积和体积。

提示:

(1)四棱锥体积公式:V=31​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

简述一下题目要点:

建三个类,继承关系,重写并实现area的输出,在输出对应的体积。对小白来说过程相对繁琐点,

但说难也不难,博主也都是这样一步一步走来的。

代码与解析如下:

//题目要求键盘录入,则需导入次包
import java.util.Scanner;
public class Main {public static void main(String[] args){Scanner sc=new Scanner(System.in);double l,h,z;while(sc.hasNext())//多案例输入,需要使用hasNext(){//键盘录入数据l=sc.nextDouble();h=sc.nextDouble();z=sc.nextDouble();//带参构造创建对象Cubic c=new Cubic(l,h,z);Pyramid p=new Pyramid(l,h,z);//保留小数输出System.out.printf("%.2f %.2f %.2f %.2f\n",c.area(),c.v(),p.area(),p.v());}}}//创建父类,由于含有抽象方法area,需要定义为抽象类abstract class Rect{double l;double h;double z;//两种构造方法public Rect(){}public Rect(double l,double h,double z){this.l=l;this.h=h;this.z=z;if(l<=0||h<=0||z<=0){this.l=this.h=this.z=0;}}//求底面周长double length(){return l*2+h*2;}//需要重写方法,则此方法必须定义为abstract(抽象方法);abstract double area();}//定义长方体类,需要继承父类Rectclass Cubic extends Rect {//直接构造两种方法Cubic() {}Cubic(double l, double h, double z) {//super在这里是调用父类的构造方法super(l, h, z);}//在重写方法时@Override是必须写的,不写会出错@Overridedouble area() {return l*h*2+l*z*2+h*z*2;}//求体积double v(){return l * h * z;}}//定义一个四棱锥类,继承父类Rectclass Pyramid extends Rect{//同样是两种构造方法public Pyramid() {}public Pyramid(double l, double h, double z) {//这里和上面一样,将值传入父类,调用父类的构造方法super(l, h, z);}在重写方法时@Override是必须写的,不写会出错@Overridepublic double area(){return l*h+l*Math.sqrt(z*z+h*h*0.25)+h*Math.sqrt(z*z+l*l*0.25);}//求体积public double v(){return 1.0/3*l*h*z;}}

完成收工,good!

虽然“天不生无用之人,地不长无名之草”。但仍谨记“冰冻三尺,非一日之寒”。

执长剑纵马,执妙笔生花,我王某人在此邀请诸位与我共身!

PTA 4 sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)分数 20相关推荐

  1. 计算长方体、四棱锥的表面积和体积(类)

    Problem Description 计算如下立体图形的表面积和体积. 从图中观察,可抽取其共同属性到父类Rect中:长度:l  宽度:h  高度:z 在父类Rect中,定义求底面周长的方法leng ...

  2. java求长方体_Java练习 SDUT-3337_计算长方体、四棱锥的表面积和体积

    ###计算长方体.四棱锥的表面积和体积 Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 计算如下立体图形的表面积 ...

  3. 7-5 sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)(Python实现)

    作者 周雪芹 单位 山东理工大学 计算如下立体图形的表面积和体积. 从图中观察,可抽取长方体和四棱锥两种立体图形的共同属性到父类Rect中:长度:l 宽度:h 高度:z. 编程要求: (1)在父类Re ...

  4. sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)

    计算如下立体图形的表面积和体积. 从图中观察,可抽取长方体和四棱锥两种立体图形的共同属性到父类Rect中:长度:l 宽度:h 高度:z. 编程要求: (1)在父类Rect中,定义求底面周长的方法len ...

  5. 6-4 计算长方体的表面积和体积 (10分) java pta

    请完成相关代码,实现长方体的表面积和体积的计算 函数接口定义: 请详细参见主程序的调用方式. 裁判测试程序样例: import java.util.Scanner; /* 你的代码将被嵌入到这里 */ ...

  6. PTA 6-2 计算长方体的表面积和体积

    请完成相关代码,实现长方体的表面积和体积的计算 函数接口定义: 请详细参见主程序的调用方式. 裁判测试程序样例: import java.util.Scanner; /* 你的代码将被嵌入到这里 */ ...

  7. 编写程序计算长方体的体积python_编写程序,计算圆柱体、球体、正方体和长方体的表面积和体积...

    编写程序,计算圆柱体.球体.正方体和长方体的表面积和体积. #include "" #include"" class Shape { protected: in ...

  8. 6-2 计算长方体的表面积和体积

    请完成相关代码,实现长方体的表面积和体积的计算 函数接口定义: 请详细参见主程序的调用方式. 裁判测试程序样例: import java.util.Scanner; /* 你的代码将被嵌入到这里 */ ...

  9. 求表面积和体积。 读入5个整数a, b, c, d 和 e,计算物体的表面积和体积。你可以想像该物体是一个长宽高为a, b, c 的长方体,每中央都是凹进去的,而凹进去的深度为 d,沒凹进

    题目描述: 读入5个整数a, b, c, d 和 e,计算物体的表面积和体积.你可以想像该物体是一个长宽高为a, b, c 的长方体,每一面中央都是凹进去的,而凹进去的深度为 d,沒凹进去的边框宽度 ...

最新文章

  1. Resin介绍及其使用配置
  2. 磁盘和文件系统管理(一)
  3. python操作系统-Python实现获取操作系统版本信息方法
  4. [设计模式]设计模式之禅关于迪米特法则
  5. boost::incremental_components用法的测试程序
  6. Apache Spark 1.5发布,新特性一览
  7. JavaScript学习随记——Function
  8. UVA - 489 ​​​​​​​Hangman Judge
  9. 强制关机对电脑的影响_笔记本电脑需要每天关机吗?长期开机对电脑有影响么?...
  10. 致歉!抖音Semi Design承认参考阿里Ant Design
  11. php的$符的作用,PHP引用符的用法举例
  12. 网络工程师HCIE-RS-ipv6第一节:IPv6地址(原理+实验)
  13. Jquery 根据value值设置下拉列表(select)默认选中项
  14. 六自由度机器人(机械臂)运动学建模及运动规划系列(一)——简介
  15. Mac使用技巧:关闭系统自动更新
  16. Just Speak 论文精读
  17. 回归预测 | MATLAB实现SSA-LSTM和LSTM多输入单输出
  18. 25岁从零开始学习平面设计会不会晚
  19. TOEFL wordlist 28
  20. 识字小程序—hanzi-writer-miniprogram实现临摹笔画动画播放等

热门文章

  1. 概率模型——轧钢中的浪费、报童的诀窍
  2. 跟庄买股票得新技巧(第三弹)集合竞价战法
  3. VoIP广受欢迎并悄然成长
  4. word转换成pdf后乱码怎么办
  5. 2020最新eclipse安装教程,配有每一步的安装过程和细节!
  6. 最初的梦想 美雪~玮琪
  7. 李子柒:真正的高贵,是敢于面对人生的难,把平淡的日子过成诗!
  8. Summary for my 4 months
  9. 仓库基础知识之什么是SPU、SKU、ARPU
  10. 人工智能算法- 优化算法