7-1 sdut-oop-6 计算各种图形的周长(多态)
定义接口或类 Shape,定义求周长的方法length()。
定义如下类,实现接口Shape或父类Shape的方法。
(1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。
定义测试类ShapeTest,用Shape接口(或类)定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。
提示: 计算圆周长时PI取3.14。
输入格式:
输入多组数值型数据(double);
一行中若有1个数,表示圆的半径;
一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。
一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。(需要判断三个边长是否能构成三角形)
若输入数据中有0或负数,则不表示任何图形,周长为0。
输出格式:
行数与输入相对应,数值为根据每行输入数据求得的图形的周长。
输入样例:
在这里给出一组输入。例如:
1
2 3
4 5 6
2
-2
-2 -3
输出样例:
在这里给出相应的输出。例如:
6.28
10.00
15.00
12.56
0.00
0.00
import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);double y=0.00;while(sc.hasNext()){String strData =sc.nextLine();String[] arrayData = strData.split(" ");int count = arrayData.length;if(count==1){double r = Double.parseDouble(arrayData[0]);if(r>0){Circle ab=new Circle(r);ab.length();}else{System.out.printf("%.2f",y);System.out.print("\n");}}if(count==2){double a = Double.parseDouble(arrayData[0]);double b = Double.parseDouble(arrayData[1]);if(a>0 && b>0){Rectangle ac=new Rectangle(a,b);ac.length();}else{System.out.printf("%.2f",y);System.out.print("\n");}}if(count==3){double c = Double.parseDouble(arrayData[0]);double d = Double.parseDouble(arrayData[1]);double e = Double.parseDouble(arrayData[2]);if(c>0 && d>0 && d>0){if(c+d>e && c+e>d &&d+e>c){Triangle ac=new Triangle(c,d,e);ac.length();}else{System.out.printf("%.2f",y);System.out.print("\n");}}else{System.out.printf("%.2f",y);System.out.print("\n");}}}}
}
interface Shape{void length();
}
class Circle implements Shape{double r=0;public double uc;Circle(){}Circle(double r){this.r=r;}public void length(){uc=1.0*2*3.14*r;System.out.printf("%.2f",uc);System.out.print("\n");}
}
class Rectangle implements Shape{double a,b;Rectangle(){}Rectangle(double a,double b){this.a=a;this.b=b;}public void length(){double uc;uc=1.0*(a*2+b*2);System.out.printf("%.2f",uc);System.out.print("\n");}
}
class Triangle implements Shape{double c,d,e;Triangle(){}Triangle(double c,double d,double e){this.c=c;this.d=d;this.e=e;}public void length(){double uc;uc=(this.c+this.d+this.e);System.out.printf("%.2f",uc);System.out.print("\n");}
}
7-1 sdut-oop-6 计算各种图形的周长(多态)相关推荐
- Java练习 SDUT-3338_计算各种图形的周长(接口与多态)
计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...
- 计算各种图形的周长(接口与多态)(Java)
计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...
- sdut-oop-6 计算各种图形的周长(多态)
sdut-oop-6 计算各种图形的周长(多态) 定义接口或类 Shape,定义求周长的方法length(). 定义如下类,实现接口Shape或父类Shape的方法. (1)三角形类Triangle ...
- Python 面向对象 计算各种图形的周长(接口与多态)
Python 面向对象 计算各种图形的周长(接口与多态) Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Tri ...
- Java计算各种图形的周长、面积利用接口,多态等知识实现
知识点 接口,接口的实现 方法的重写 多态的运用 题目 利用接口.类.多态等知识,计算各种图形的周长和面积(圆,长方形,正方形) 解题思路: 创建一个接口Calculate,包含有三个方法, 求解周长 ...
- 7-3 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分)
(备注:本人只是一个小小的知识搬运工,内容包含个人见解,如有错误请多多指教!) 7-3 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分) 定义接口Shape,定义求周长的方法len ...
- Java—计算各种图形的周长(接口与多态)
Java-计算各种图形的周长(接口与多态) Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle ( ...
- 计算各种图形的周长 python java
计算各种图形的周长(多态) 定义接口或类 Shape,定义求周长的方法length(). 定义如下类,实现接口Shape或父类Shape的方法.(1)三角形类Triangle (2)长方形类Recta ...
- 计算各种图形的周长(接口与多态)_JAVA
Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类 ...
- PTA 7-7 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分) JAVA
定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等. 定义测 ...
最新文章
- 关于 MySQL LEFT JOIN 你可能需要了解的三点
- ValueError: operands could not be broadcast together with shapes解决
- 解析没有id的html,网络爬虫干货,还在用正则匹配html?专业的解析组件了解一下...
- UnityShader入门精要-3.3 UnityShader的结构
- python2.7练习小例子(二)
- [转载]2000/XP下删除隐藏旧网卡方法
- 信安 | 网上吵个架都能被封号?是“黑科技”还是“黑产”?
- Objective-C设计模式——单例Singleton(对象创建)
- Ubuntu 无法获得锁
- 王朔:中国文化沉淀了大量腐烂变质垃圾
- WinForm列表控件美化
- 利用pytorch实现图像分类
- 微信备份到云服务器失败是怎么回事,电脑微信备份连接失败的原因(解决利用电脑版微信备份的方法)...
- 递归算法求n个数字的全排列
- 深度学习环境搭建超级详解(Miniconda、pytorch安装)
- 传感器实训心得体会_传感器心得体会
- TCP穿透主流商用NAT产品的主要技术研究
- 兴禾自动化IPO被终止:前苹果员工不足两年退出获利8000万 小米是股东
- 为什么谷歌不会发生“魏则西事件”?
- JVM源码简析(楔子)-对象内存分配过程和PS回收器中YGC触发FGC的现象
热门文章
- python中字符串和json的转换,Python笔记——json和字符串之间的相互转换
- 基于SSM的线上电子文件资源下载系统JavaWeb电子资源管理系统(源码调试+讲解+文档)
- matlab伽玛分布如何表示,matlab gamma函数
- 《译 SFML Essentials 英文版》—— 《第五章》 “ Exploring a World of Sound and Text ”
- 数智运营 创见未来| 2023永洪科技城市峰会·北京站成功举办
- Zabbix和agent端部署、图示Zabbix Web端搭建以及添加设备的4种方法、Zabbix API
- 基于OCR的图片字符识别可行性研究
- js转字符串为小数,且保留2位
- Ubuntu 删除应用图标
- SpringBoot修改tomcat配置