美文网首页
Programming Task 2-2-2

Programming Task 2-2-2

作者: Sundance_Kid | 来源:发表于2017-01-19 11:40 被阅读0次

第二章编程练习题2

编写一个三角形类,能根据输入的3个double类型数据构造三角形对象,定义三个构造方法。
如果这3个数据满足构成三角形的条件,直接构造三角形。
否则,如果3个数的最大值大于0,则自动构造以最大值为边的等边三角形。
如果最大值也不大于0,则将三角形类的三边都初始化为0。
再定义一个getArea方法,计算所构造的三角形的面积,返回类型为double。
最后,编写main方法,测试getArea方法,计算三角形的面积。
输入:
输入三个有理数,中间用空格隔开。
例如:
8.9 6.4 7.2
输出:输出三角形的面积。
例如:
22.78812396293297

  
import java.util.Scanner;

class Triangle {
    //三角形的三边;
        double a;
        double b;
        double c;
    
    private double findMax(double x, double y, double z) {
        double max = x > y ? x > z ? x : z : y > z ? y : z ;
        return max;
    }
    public Triangle(double a, double b, double c) {
        if( a+b>c && a+c>b && b+c>a && a>0 && b>0 && c>0)
        {
            this.a = a;
            this.b = b;
            this.c = c;
        }
        
        else if ( findMax(a, b, c) > 0) {               
                this.a = findMax(a, b, c) ;
                this.b = findMax(a, b, c) ;
                this.c = findMax(a, b, c) ;     
        }
        
        else {
            if ( findMax(a, b, c) < 0 ) {
                this.a = 0 ;
                this.b = 0;
                this.c = 0;
            }
            
        }
        
    }
    public double getAera() {
        double hp = (a + b + c)/2 ;//周长的一半 halfperimeter
        //海伦公式
        double Aera = Math.sqrt( hp*(hp-a)*(hp-b)*(hp-c) );
        return Aera;
    }

}

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double a = input.nextDouble();
        double b = input.nextDouble();
        double c = input.nextDouble();          
        System.out.println( new Triangle(a, b, c).getAera() );
        input.close();  
        
    }

}

相关文章

  • Programming Task 2-2-2

    第二章编程练习题2 编写一个三角形类,能根据输入的3个double类型数据构造三角形对象,定义三个构造方法。如果这...

  • ACM(ONE)

    String Task Petya started to attend programming lessons. ...

  • 寒假9.1

    Fox Ciel starts to learn programming. The first task is d...

  • Programming Task 2-1

    第二章编程作业 2-1 创建一个简单的表示矩形的Rectangle类,满足以下条件:1、定义两个成员变量heigh...

  • Programming Task 2-2-1

    第二章编程作业2 编写一个表示二维平面上的点的类MyPoint,满足以下条件:1、定义private的成员变量x和...

  • VS Code - Programming C - task.j

    分享一個自用的gcc編譯配置文件,Windows 10系統安裝MinGW。VS Code安裝 Microsoft ...

  • Operation的addDependency操作

    我们有7个任务task1, task2, task3, task4, task5, task6, task7并发执...

  • jstl 中c:if 使用 的坑

    如果要...

  • 2019-07-19掉坑总结

    1. 如...

  • 2-2-2

    自由写作群 转化与蜕变 继续刚才的梦的后记 我想梦是用最形象的比喻告诉我内在正在经历着发生着什么,这是潜意识里已经...

网友评论

      本文标题:Programming Task 2-2-2

      本文链接:https://www.haomeiwen.com/subject/uvkibttx.html