Java 三角形类:计算周长和面积,判断是否成立
Java 三角形类:计算周长和面积,判断是否成立
本示例演示如何使用 Java 语言创建一个 Triangle 类,实现三角形的判断,周长计算和面积计算,并演示如何实例化三角形对象并执行操作。
基础版 (70分)
public class Triangle {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public boolean isValidTriangle() {
return (a + b > c) && (a + c > b) && (b + c > a);
}
public double calculatePerimeter() {
return a + b + c;
}
public double calculateArea() {
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
public static void main(String[] args) {
Triangle triangle1 = new Triangle(3, 4, 5);
Triangle triangle2 = new Triangle(1, 2, 5);
if (triangle1.isValidTriangle()) {
System.out.println('Triangle 1: Perimeter = ' + triangle1.calculatePerimeter() + ', Area = ' + triangle1.calculateArea());
} else {
System.out.println('Triangle 1: a=' + triangle1.a + ', b=' + triangle1.b + ', c=' + triangle1.c + ' cannot form a triangle.');
}
if (triangle2.isValidTriangle()) {
System.out.println('Triangle 2: Perimeter = ' + triangle2.calculatePerimeter() + ', Area = ' + triangle2.calculateArea());
} else {
System.out.println('Triangle 2: a=' + triangle2.a + ', b=' + triangle2.b + ', c=' + triangle2.c + ' cannot form a triangle.');
}
}
}
进阶版 (80分)
public class Triangle {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
setSides(a, b, c);
}
public void setSides(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public boolean isValidTriangle() {
return (a + b > c) && (a + c > b) && (b + c > a);
}
public double calculatePerimeter() {
return a + b + c;
}
public double calculateArea() {
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
public static void main(String[] args) {
Triangle triangle1 = new Triangle(3, 4, 5);
Triangle triangle2 = new Triangle(1, 2, 5);
if (triangle1.isValidTriangle()) {
System.out.println('Triangle 1: Perimeter = ' + triangle1.calculatePerimeter() + ', Area = ' + triangle1.calculateArea());
} else {
System.out.println('Triangle 1: a=' + triangle1.a + ', b=' + triangle1.b + ', c=' + triangle1.c + ' cannot form a triangle.');
}
if (triangle2.isValidTriangle()) {
System.out.println('Triangle 2: Perimeter = ' + triangle2.calculatePerimeter() + ', Area = ' + triangle2.calculateArea());
} else {
System.out.println('Triangle 2: a=' + triangle2.a + ', b=' + triangle2.b + ', c=' + triangle2.c + ' cannot form a triangle.');
}
}
}
高阶版 (90分)
import java.util.Scanner;
public class Triangle {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) {
setSides(a, b, c);
}
public void setSides(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public boolean isValidTriangle() {
return (a + b > c) && (a + c > b) && (b + c > a);
}
public double calculatePerimeter() {
return a + b + c;
}
public double calculateArea() {
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
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();
Triangle triangle = new Triangle(a, b, c);
if (triangle.isValidTriangle()) {
System.out.println('Perimeter = ' + triangle.calculatePerimeter() + ', Area = ' + triangle.calculateArea());
} else {
System.out.println('a=' + triangle.a + ', b=' + triangle.b + ', c=' + triangle.c + ' cannot form a triangle.');
}
}
}
专业版 (-10~+10分)
专业版的评分取决于编程风格和可读性,以下是一些建议来提高代码的可读性和编程风格:
- 使用有意义的变量和方法命名,例如使用
sideA代替a,使用calculateArea()代替getArea()等,以增加代码可读性。 - 添加注释来解释代码的目的和功能,特别是对于复杂的部分或自定义的方法。
- 使用适当的缩进和代码格式化,使代码结构清晰易读。
- 避免在主类中直接进行逻辑操作,而是将逻辑封装到方法中,保持主方法简洁。
- 注意异常处理,例如在高阶版中,应该考虑输入值的合法性和异常情况。
- 可以考虑使用Java的JavaDoc注释来生成文档,以便其他开发人员了解类和方法的使用方法。
请注意,以上只是一些建议,您可以根据自己的编程风格和需求进行调整和修改。
本示例展示了如何创建 Triangle 类,并实现了一些基本的操作。您可以根据自己的需求添加更多功能,例如:
- 判断三角形的类型(等腰、等边、直角)
- 计算三角形的内角和
- 计算三角形的重心、内心、外心
希望本示例对您有所帮助。
原文地址: https://www.cveoy.top/t/topic/bB9q 著作权归作者所有。请勿转载和采集!