定义带三条边的Triangle类,包含计算周长与面积的功能。在三角形中,任意两边之和大于第三边,三角形类Triangle必须遵从这一规则。创建一个IllegalTriangleException类,然后修改Triangle类的构造方法,如果创建的三角形的边违反了这一规则,抛出一个IllegalTriangleException对象。提示:三角形面积公式: ,其中,a、b、c是三角形的三条边; 解题要求:要求:当输入的三角形三条边满足要求的时候,输出图形的周长和面积;否则输出异常信息,并输出三角形的三条边。
时间: 2023-09-15 11:16:06 浏览: 125
triangle_matlab重载函数_triangle函数_三角形周长、面积计算_
5星 · 资源好评率100%
下面是代码实现:
```
class Triangle {
private double a, b, c;
public Triangle(double a, double b, double c) throws IllegalTriangleException {
if(a + b <= c || a + c <= b || b + c <= a) {
throw new IllegalTriangleException(a, b, c);
}
this.a = a;
this.b = b;
this.c = c;
}
public double getPerimeter() {
return a + b + c;
}
public double getArea() {
double p = getPerimeter() / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
}
class IllegalTriangleException extends Exception {
private double a, b, c;
public IllegalTriangleException(double a, double b, double c) {
super("Illegal triangle: " + a + ", " + b + ", " + c);
this.a = a;
this.b = b;
this.c = c;
}
}
public class Main {
public static void main(String[] args) {
try {
Triangle t = new Triangle(3, 4, 5);
System.out.println("Perimeter: " + t.getPerimeter());
System.out.println("Area: " + t.getArea());
} catch (IllegalTriangleException e) {
System.out.println(e.getMessage());
}
}
}
```
在Triangle类的构造方法中,我们检查输入的三条边是否符合三角形的要求,如果不符合,我们抛出一个IllegalTriangleException对象。在异常类中,我们记录下这个不合法的三角形的三条边,方便输出错误信息。在主函数中,我们创建一个符合要求的三角形,并输出它的周长和面积;如果遇到不合法的三角形,我们捕获异常并输出错误信息。
阅读全文