计算各种图形的周长(接口与多态)

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

定义接口Shape,定义求周长的方法length()。
定义如下类实现接口Shape的抽象方法:
(1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。
定义测试类ShapeTest,用Shape接口定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。

Input

输入多组数值型数据(double);
一行中若有1个数,表示圆的半径;
一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。
一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。

若输入数据中有负数,则不表示任何图形,周长为0。

Output

行数与输入相对应,数值为根据每行输入数据求得的图形的周长(保留2位小数)。

Sample Input

1
2 3
4 5 6
2
-2
-2 -3

Sample Output

6.28
10.00
15.00
12.56
0.00
0.00

Hint

构造三角形时要判断给定的三边的长度是否能组成一个三角形,即符合两边之和大于第三边的规则;
计算圆周长时PI取3.14。

import java.util.*;public class Main
{public static void main(String[] args){Scanner cin = new Scanner(System.in);double a,b,c;Shape x;String str;String []s;while(cin.hasNextLine()){str = cin.nextLine();s = str.split(" ");if(s.length==1){a = Double.parseDouble(s[0]);x = new Circle(a);System.out.printf("%.2f\n",x.length());}else if(s.length==2){a = Double.parseDouble(s[0]);b = Double.parseDouble(s[1]);x = new Rectangle(a,b);System.out.printf("%.2f\n",x.length());}else if(s.length==3){a = Double.parseDouble(s[0]);b = Double.parseDouble(s[1]);c = Double.parseDouble(s[2]);x = new Triangle(a,b,c);System.out.printf("%.2f\n",x.length());}}cin.close();}
}interface Shape
{public double length();
}class Triangle implements Shape
{double a,b,c;Triangle(double a,double b,double c){this.a = a;this.b = b;this.c = c;}public double length(){if(a<=0||b<=0||c<=0)return 0;if(a+b<=c||a+c<=b||b+c<=a)return 0;return a + b + c;}
}class Rectangle implements Shape
{double a,b;Rectangle(double a,double b){this.a = a;this.b = b;}public double length(){if(a<=0||b<=0)return 0;return (a + b) * 2;}
}class Circle implements Shape
{double a;Circle(double a){this.a = a;}public double length(){if(a<=0)return 0;return a * 3.14 * 2;}
}

转载于:https://www.cnblogs.com/luoxiaoyi/p/9934597.html

Java练习 SDUT-3338_计算各种图形的周长(接口与多态)相关推荐

  1. 计算各种图形的周长(接口与多态)(Java)

    计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...

  2. Java—计算各种图形的周长(接口与多态)

    Java-计算各种图形的周长(接口与多态) Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle ( ...

  3. 计算各种图形的周长 python java

    计算各种图形的周长(多态) 定义接口或类 Shape,定义求周长的方法length(). 定义如下类,实现接口Shape或父类Shape的方法.(1)三角形类Triangle (2)长方形类Recta ...

  4. Java计算各种图形的周长、面积利用接口,多态等知识实现

    知识点 接口,接口的实现 方法的重写 多态的运用 题目 利用接口.类.多态等知识,计算各种图形的周长和面积(圆,长方形,正方形) 解题思路: 创建一个接口Calculate,包含有三个方法, 求解周长 ...

  5. sdut-oop-6 计算各种图形的周长(多态)

    sdut-oop-6 计算各种图形的周长(多态) 定义接口或类 Shape,定义求周长的方法length(). 定义如下类,实现接口Shape或父类Shape的方法. (1)三角形类Triangle ...

  6. 7-3 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分)

    (备注:本人只是一个小小的知识搬运工,内容包含个人见解,如有错误请多多指教!) 7-3 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分) 定义接口Shape,定义求周长的方法len ...

  7. Python 面向对象 计算各种图形的周长(接口与多态)

    Python 面向对象 计算各种图形的周长(接口与多态) Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Tri ...

  8. PTA 7-7 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分) JAVA

    定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等. 定义测 ...

  9. 计算各种图形的周长(接口与多态)_JAVA

    Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类 ...

最新文章

  1. 基于最短路方法的生物序列比对问题研究
  2. IOS开发基础知识--碎片45
  3. C#程序设计笔记(第九章)
  4. UITableViewController
  5. SVM针对中文文本分类
  6. 80后——后海——烟袋斜街
  7. 现在的手机电池为什么不可拆卸?真相太真实了...
  8. css删除li 圆点_CSS中li圆点样式
  9. leetcode python3 简单题104. Maximum Depth of Binary Tree
  10. 【特别版】计算机哲学对学习生活借鉴的几个例子
  11. 关于TeamViewer中的ITbrain
  12. 基于Java+Spring+vue+element实现旅游信息管理平台系统
  13. 苹果越狱后怎么还原_iOS 13.3 越狱提升稳定性,自签又可以使用了
  14. 蓝牙智能音响测试软件,【天猫精灵蓝牙音箱使用总结】APP|连接|音质|资源|控制_摘要频道_什么值得买...
  15. 计算机网络故障提出问题,列控系统及其计算机网络的故障诊断与故障容错研究...
  16. linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
  17. 微信默认表情符号的代码对照表
  18. python echarts城市热力图_echarts绘制各省、市、区的热力图
  19. 网络设置巨形帧_修改网卡配置连接千兆网络的详细步骤
  20. i18n(国际化)地域标识码

热门文章

  1. L2-028 秀恩爱分得快-PAT团体程序设计天梯赛GPLT
  2. L1-046 整除光棍-PAT团体程序设计天梯赛GPLT
  3. 蓝桥杯 ALGO-78 算法训练 确定元音字母位置
  4. 蓝桥杯 BASIC-1 基础练习 闰年判断
  5. mysql创建和修改索引_MySQL索引创建 删除 增加 修改命令
  6. python如何实现分布式_Python如何快速实现分布式任务
  7. Http网络传递参数中文乱码问题解决办法
  8. [GIT] warning: LF will be replaced by CRLF问题解决方法
  9. 利用zabbix API进行管理
  10. 处理动态SQL语句的参数