首页 > 编程语言 >PTA 作业三 继承与多态 JAVA 面向对象程序设计7-1 周长计算器-1分数 30作者 Ma 单位 山东科技大学1、定义一个接口 Shape 用于表示图形

PTA 作业三 继承与多态 JAVA 面向对象程序设计7-1 周长计算器-1分数 30作者 Ma 单位 山东科技大学1、定义一个接口 Shape 用于表示图形

时间:2024-10-10 11:53:13浏览次数:11  
标签:Ma 周长 double 多态 PTA Shape Triangle 图形 public

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

相关文章

  • manim边学边做--无向图
    无向图属于数学中的图论这一学科,所谓无向图G,就是由顶点集V(非空集合)和边集E(由V中元素构成的无序二元组的集合)组成的图,可表示为G=(V,E)。在无向图中,边没有方向,即从顶点A到顶点B的边与从顶点B到顶点A的边是相同的。无向图简洁直观,常用于描述社交网络,交通网络以及电子电路等等。......
  • vulnhub-Machine_Matrix靶机的测试报告
    目录一、测试环境1、系统环境2、使用工具/软件二、测试目的三、操作过程1、信息搜集2、Getshell3、提权四、结论一、测试环境1、系统环境渗透机:kali2021.1(192.168.202.134)靶 机:Linuxporteus4.16.3-porteus2、使用工具/软件Kali:arp-scan(主机探测)、nma......
  • U盘中毒了?教你如何删除System Volume Information这个顽固文件夹「建议收藏」
     不得不说cmd命令很好用呢。最近我的U盘中毒了,格式化都删除不了SystemVolumeInformation这个顽固的文件夹,真心伤不起哇!还好现在解决了问题。看来以后得好好对待U盘,不能乱用了。本篇文章教大家如何删除SystemVolumeInformation这个顽固文件夹。希望对你有用。我的......
  • FreeImage裁剪输出
    #include<iostream>#include"FreeImage.h"bool   SaveToFile(intm_originW,intm_originH,char*FileName,BYTE*pBuf,intnWidth,intnHeight){         FIBITMAP*bitmap=NULL;   FREE_IMAGE_FORMATfif=FIF_JPEG;   int       flag......
  • 【WCH蓝牙系列芯片】-基于CH582开发板—利用定时器加DMA方式模拟串口输出
    ------------------------------------------------------------------------------------------------------------------------------------在使用CH582芯片开发测试中,有个实际的用途是利用串口输出日志的方式,来进行程序的调试。CH582芯片一共提供了4组全双工的异步串口......
  • 基于 iptables 的防火墙方案
    基于iptables的防火墙方案假设两台主机A(172.29.100.100)和B(10.100.100.100),iptables规则应用于A机器上.允许两台主机互通-AINPUT-s10.100.100.100-jACCEPT-AINPUT-s0.0.0.0/0-jDROP允许A访问B,反向禁止-AINPUT-mstate--stateESTABLISHE......
  • max transition的修复方式
    针对maxtransition的本质是驱动能力不足那么解决问题的方式就带来了两种:1,增加驱动能力2,减小驱动后面的load针对1,可通过sizecell来增加驱动能力针对2,通过减小load来解决,常见的是减小net的长度或者在net中间加buff(减小loadcap);如果在drive端插入buff的话后面的loadcap不变,只......
  • Angular : ERROR [karma-server]: UncaughtException: Error: spawn UNKNOWN
    angular在单元测试时执行ngtest--no-watch--code-coverage报异常如下:ERROR[karma-server]:UncaughtException:Error:spawnUNKNOWNatChildProcess.spawn(node:internal/child_process:414:11)atspawn(node:child_process:761:9)atspawnWithoutOutput......
  • Vision-Language and Large Language Model Performance in Gastroenterology: GPT, C
    本文是LLM系列文章,针对《Vision-LanguageandLargeLanguageModelPerformanceinGastroenterology:GPT,Claude,Llama,Phi,Mistral,Gemma,andQuantizedModels》的翻译。胃肠病学中的视觉语言和大型语言模型表现:GPT、Claude、Llama、Phi、Mistral、Gemma和量......
  • HarmonyOS开发——编译报错“The reason and usedScene attributes are mandatory for
    问题现象:DevEcoStudio编译失败,提示“ThereasonandusedSceneattributesaremandatoryforuser_grantpermissions”。问题原因:从DevEcoStudioNEXTDeveloperPreview2版本开始新增规则:APP包中,所有entry和featurehap的module下的requestPermissions权限清单必须指定(......