.编写程序实现如下功能:创建一个三角形类Triangle,包含三条边长、面积、周长等属性。定义构造方法对这三条边长属性进行赋值。如果三条边长不能组成三角形则系统抛出异常,并对异常进行处理;如果可以组成三角形,则计算三角形面积和周长并输出
时间: 2024-10-25 13:14:47 浏览: 44
【Python--抽象类和抽象方法】--求三角形、矩形、圆的面积和周长的编程题(csdn)————程序.pdf
5星 · 资源好评率100%
为了实现上述功能,我们可以创建一个名为`Triangle`的类,包括三个属性`sideA`、`sideB`和`sideC`代表三角形的三条边长。然后定义构造方法初始化这些边长,同时检查是否满足三角形三边关系。接下来,我们将实现`getPerimeter`和`getArea`方法来计算周长和面积,并添加必要的异常处理机制。
```java
import java.util.Scanner;
class Triangle {
private double sideA;
private double sideB;
private double sideC;
// 构造方法,检查输入的边长能否构成三角形
public Triangle(double a, double b, double c) throws IllegalArgumentException {
if (a <= 0 || b <= 0 || c <= 0) {
throw new IllegalArgumentException("Side lengths must be positive.");
}
if (a + b <= c || a + c <= b || b + c <= a) {
throw new IllegalArgumentException("The sum of any two sides must be greater than the third side.");
}
sideA = a;
sideB = b;
sideC = c;
}
// 计算周长
public double getPerimeter() {
return sideA + sideB + sideC;
}
// 海伦公式计算面积
public double getArea() {
double s = getPerimeter() / 2; // 半周长
return Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC));
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the length of side A: ");
double a = scanner.nextDouble();
System.out.print("Enter the length of side B: ");
double b = scanner.nextDouble();
System.out.print("Enter the length of side C: ");
double c = scanner.nextDouble();
try {
Triangle triangle = new Triangle(a, b, c);
System.out.printf("Triangle perimeter: %.2f\n", triangle.getPerimeter());
System.out.printf("Triangle area: %.2f\n", triangle.getArea());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
```
当用户运行此程序时,会提示输入三角形的三边长,如果输入有效则计算并显示结果,否则会捕获并打印异常信息。
阅读全文