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

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

Hint

四棱锥体公式:V=1/3Sh,S——底面积 h——高

import java.util.*;

public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
double l,h,z;
Cubic s;
Pyramid s2;
while(cin.hasNext())
{
l = cin.nextDouble();
h = cin.nextDouble();
z = cin.nextDouble();
s = new Cubic(l,h,z);
s2 = new Pyramid(l,h,z);
System.out.printf("%.2f %.2f %.2f %.2f\n",s.area(),s.ti(),s2.area(),s2.ti());;
}
cin.close();
}
} class Rect
{
double l,h,z;
double length()
{
return (l + h) * 2;
}
double area()
{
return l * h;
}
} class Cubic extends Rect
{
Cubic (double a,double b,double c)
{
this.l = a;
this.h = b;
this.z = c;
}
double area()
{
if(l<=0||h<=0||z<=0)
return 0;
return l * h * 2 + l * z * 2 + h * z * 2;
}
double ti()
{
if(l<=0||h<=0||z<=0)
return 0;
return super.area() * z;
}
} class Pyramid extends Rect
{
Pyramid(double a,double b,double c)
{
this.l = a;
this.h = b;
this.z = c;
}
double area()
{
if(l<=0||h<=0||z<=0)
return 0;
double a,b;
a = Math.sqrt(h/2*h/2+z*z);
b = Math.sqrt(l/2*l/2+z*z);
return a * l + b * h + super.area();
}
double ti()
{
if(l<=0||h<=0||z<=0)
return 0;
return super.area() * z / 3;
}
}

Java练习 SDUT-3337_计算长方体、四棱锥的表面积和体积的更多相关文章

  1. Java实现圆柱体表面积和体积的计算

    题目描述: Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入圆的半径和高,然后输出结果. 题目分析: 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象c访问其 ...

  2. java源码——计算立体图形的表面积和体积

    计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...

  3. JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

    JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...

  4. Java开发微信公众号(四)---微信服务器post消息体的接收及消息的处理

    在前几节文章中我们讲述了微信公众号环境的搭建.如何接入微信公众平台.以及微信服务器请求消息,响应消息,事件消息以及工具处理类的封装:接下来我们重点说一下-微信服务器post消息体的接收及消息的处理,这 ...

  5. 【自学编程】C语言编程简单的小程序,计算长方体体积!

    计算长方体体积 有朋友会说长方体体积还不好算吗?长X宽X高.没错用计算器一下就可以出结果,编程反而麻烦些,但是我们说的是这种思维,如果复杂的重复运算的话写好程序就非常简单了. 简单运算下一个固定高度的 ...

  6. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  7. 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行

    [TOC] 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行 程序源码 import java.io.IOException; import java.util. ...

  8. Linux配置mysql (centos配置java环境 mysql配置篇 总结四)

    ♣安装的几种方法和比较 ♣配置yum源 ♣安装mysql ♣启动mysql ♣修改密码 ♣导入.sql文件 ♣缓存设置 ♣允许远程登录(navicat) ♣配置编码为utf8  1.关于Linux系统 ...

  9. Java自己动手写连接池四

    Java自己动手写连接池四 测试: package com.kama.cn; import java.sql.Connection; public class Test { public static ...

随机推荐

  1. UVA11107 Life Forms SA模板

    Life Forms Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 16827   Accepted: 4943 Descr ...

  2. 安装py3ditles中遇到的问题

    安装时,在"(venv)$ pip install -e ." 会遇到"No module named 'pip._vendor.progress.helpers' ht ...

  3. 通过gevent实现单线程下的多socket并发

    #通过gevent实现单线程下的多socket并发 服务器 #server side import sys import socket import time import gevent from g ...

  4. jquery ajax跨越

    JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问 1.jsonp之$.ajax js $.ajax({ ...

  5. vmstat-虚拟内存查看实例

    虚拟内存运行原理 在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间.当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存 ...

  6. jquery 调用asp.net后台代码

    1.需要引用对应的命名空间 System.Web.Services 2.后台方法: 必须是static 约束   必须添加[WebMethod()] 属性 示例: <script type=&q ...

  7. 架构 - 业务流程管理介绍(BPM)

    什么是业务流程 维基百科中说,业务流程是为特定的对象(客户)创造价值的过程,这一过程由一系列相关联.有组织的活动或任务组成.企业和组织中的流程常常划分为三种基本类型: 管理流程——对系统运作进行管制. ...

  8. Hdu 2389 二分匹配

    题目链接 Rain on your Parade Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 655350/165535 K (Ja ...

  9. c#通过app.manifest使程序以管理员身份运行

    通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行.微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以 ...

  10. python 类属性、静态方法与类方法

    1. 类属性 1.1 定义 在类中方法外通过属性名 = 属性值定义的属性 访问方式: 类名.属性名 对象名.属性名 class Student: cls_id = 102 stu = Student( ...