7-1 周长计算器-1
分数 30作者 Ma 单位 山东科技大学
1、定义一个接口 Shape
用于表示图形,其包含一个 double length()
的方法用于求周长。
2、定义三角形类 Triangle
、长方形类 Rectangle
、圆形类Circle
分别实现接口 Shape
3、定义测试类ShapeTest
并使用 Shape
接口定义变量shape
,用其指向不同类形的对象,输出各种图形的周长。
提示:
1、计算圆周长时PI取3.14即可;
2、需要判断能否构成三角形(任意两个边的和大于第三边),不能构成三角形的话周长为0。
输入格式:
输入多组double型数据,具体如下:
1 //表示圆的半径;
2 3 //表示长方形的长度、宽度
4 5 6 //表示三角形的三边的长度
//若输入数据中有0或负数,则不表示任何图形,周长为0。
输出格式:
图形的周长。
输入样例:
1
2 3
4 5 6
输出样例:
6.28
10.00
15.00
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
import java.util.Scanner;
interface Shape
{
double length();
}
class Triangle implements Shape
{
public double a;
public double b;
public double c;
Triangle(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a<=0||b<=0||c<=0){
this.a=0;
this.b=0;
this.c=0;
}
if((a+b<=c)||(a+c<=b)||(b+c<=a)){
this.a=0;
this.b=0;
this.c=0;
}
}
public double length()
{
return (a+b+c);
}
}
class Rectangle implements Shape
{
public double a;
public double b;
Rectangle (double a,double b)
{
this.a=a;
this.b=b;
if(a<=0||b<=0) this.a=this.b=0;
}
public double length()
{
return (a+b)*2;
}
}
class Circle implements Shape
{
public double r;
Circle (double r)
{
this.r=r;
if(r<=0) this.r=0;
}
public double length()
{
return (2*3.14*r);
}
}
public class Main
{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
double[] l=new double[3];
String s;
while(in.hasNextLine()){
s=in.nextLine();
String[] st=s.split(" ");
int cnt=0;
for(String x:st){
l[cnt++]=Double.parseDouble(x);
}
if(cnt==1){
Circle c = new Circle(l[0]);
System.out.printf("%.2f\n",c.length());
}
else if(cnt==2){
Rectangle r= new Rectangle(l[0],l[1]);
System.out.printf("%.2f\n",r.length());
}
else if(cnt==3){
Triangle t=new Triangle(l[0],l[1],l[2]);
System.out.printf("%.2f\n",t.length());
}
}
}
}
谢谢大佬关注,不定期分享学习笔记,希望大佬能多多支持,三连必回,感谢关注。 现阶段主要分享PTA平台的 JAVA语言学习,内容主要集中在JAVA语言和C语言的入门习题,近期会持续更新数据结构的课程练习,后续还会涉及计算机网络,软件工程,离散数学,计算机组成原理,等课程,还会不定期分享一些有趣的AI应用实例,偶尔也会记录些关于哲学的思考。感谢朋友们一直以来的支持(。◕ ∀ ◕。)。
标签:Ma,周长,double,多态,PTA,Shape,Triangle,图形,public From: https://blog.csdn.net/2301_77735425/article/details/142817927