美文网首页
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

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