JAVA HW2-2

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


代码


import java.util.Scanner;

/**
 * Created by qrato on 2016/5/18.
 */
public class Main {
    public static void main(String[] args) {
        // write your code here
        Scanner input=new Scanner(System.in);
        double a,b,c;
        a=input.nextDouble();
        b=input.nextDouble();
        c=input.nextDouble();

        //   System.out.println(y1);
        Rectangle r=new Rectangle(a,b,c);
        System.out.println(r.getArea());
    }
}
class Rectangle{
    double e1,e2,e3;
    private double findMax(double a,double b,double c){
        if(a>b&&a>c){
            return a;
        }
        else if(c>a&&c>b){
            return c;
        }
        else
            return b;
    }
    Rectangle(double i1,double i2,double i3){

        if (i1+i2>i3&&i2+i3>i1&&i1+i3>i2&&i1>0&&i2>0&&i3>0){
            e1=i1;
            e2=i2;
            e3=i3;
        }
        else {
            double max=findMax(i1,i2,i3);
            if (max>0){
                e1=max;
                e2=max;
                e3=max;
            }
            else {
                e1=0;
                e2=0;
                e3=0;
            }
        }
    }
    public double getArea(){
        double p=(e1+e2+e3)/2;
        double s=Math.sqrt(p*(p-e1)*(p-e2)*(p-e3));
        return s;
    }
}

你可能感兴趣的:(JAVA HW2-2)