编写三角形类,实现三角形面积和周长计算等功能。
时间: 2024-05-07 10:20:35 浏览: 145
以下是一个可能的三角形类的实现:
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def perimeter(self):
return self.a + self.b + self.c
def area(self):
s = self.perimeter() / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
在这个实现中,我们定义了一个 Triangle
类,并在构造函数中接受三角形的三条边长作为参数。我们还定义了两个方法:perimeter
用于计算三角形的周长,area
用于计算三角形的面积。
计算三角形的周长很简单,只需将三条边长相加即可。计算三角形的面积需要使用海伦公式,即 $s = \frac{a+b+c}{2}$,然后使用以下公式计算面积:$\sqrt{s(s-a)(s-b)(s-c)}$。
下面是一个使用 Triangle
类的例子:
t = Triangle(3, 4, 5)
print(t.perimeter()) # 输出:12
print(t.area()) # 输出:6.0
相关问题
编写三角形类,实现三角形面积和周长计算等功能。 要求: (1)三个属性 (2)两个构造方法和全部getter和setter (3)三个自定义的方法:面积、周长、是否是直角三角形。 (4)单独编写测试类,测试类的全部功能。用java编写
好的,以下是你想要的程序代码:
Triangle.java
public class Triangle {
private double a, b, c;
public Triangle() {
}
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
public double getPerimeter() {
return a + b + c;
}
public boolean isRightTriangle() {
if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
return true;
} else {
return false;
}
}
}
TestTriangle.java
import java.util.Scanner;
public class TestTriangle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入三角形的三条边长: ");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
Triangle triangle = new Triangle(a, b, c);
System.out.println("面积为:" + triangle.getArea());
System.out.println("周长为:" + triangle.getPerimeter());
if (triangle.isRightTriangle()) {
System.out.println("这是个直角三角形");
} else {
System.out.println("这不是个直角三角形");
}
}
}
在测试类中,我们通过Scanner类获取用户输入的三角形三个边长,然后创建Triangle对象,并调用对象的方法计算三角形的面积、周长和是否是直角三角形,最终输出结果。
编写三角形类,计算三角形面积和周长,用上两个构造方法和全部getter和setter,并判断是否是直角三角形
下面是一个基本的三角形类的示例代码,包括计算面积和周长、判断是否是直角三角形的方法:
public class Triangle {
private double a, b, c;
// 构造方法1:通过三边长度创建一个三角形对象
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 构造方法2:通过三个顶点的坐标创建一个三角形对象
public Triangle(double x1, double y1, double x2, double y2, double x3, double y3) {
this.a = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
this.b = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2));
this.c = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2));
}
// 获取三角形的三边长度
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
// 计算三角形的面积
public double getArea() {
double p = (a + b + c) / 2; // 计算半周长
return Math.sqrt(p * (p - a) * (p - b) * (p - c)); // 海伦公式
}
// 计算三角形的周长
public double getPerimeter() {
return a + b + c;
}
// 判断是否是直角三角形
public boolean isRightTriangle() {
// 三边平方和最大的边是斜边,如果满足勾股定理则为直角三角形
double max = Math.max(Math.max(a, b), c);
return max == a ? Math.pow(a, 2) == Math.pow(b, 2) + Math.pow(c, 2)
: max == b ? Math.pow(b, 2) == Math.pow(a, 2) + Math.pow(c, 2)
: Math.pow(c, 2) == Math.pow(a, 2) + Math.pow(b, 2);
}
}
示例用法:
// 通过三边长度创建一个三角形对象
Triangle t1 = new Triangle(3, 4, 5);
// 通过三个顶点的坐标创建一个三角形对象
Triangle t2 = new Triangle(0, 0, 3, 0, 0, 4);
// 获取三角形的三边长度
double a = t1.getA();
double b = t1.getB();
double c = t1.getC();
// 计算三角形的面积和周长
double area = t1.getArea();
double perimeter = t1.getPerimeter();
// 判断是否是直角三角形
boolean isRightTriangle = t1.isRightTriangle();
相关推荐















