java编写程序用于计算一元二次方程的实根。要求定义Equation类以表示一元二次方程, 包括:方程系数、求解方法、实根的个数与类型、每个实根的值、输出方法。再定义 EquationDemo类演示求根过程。
时间: 2024-10-27 12:07:17 浏览: 26
在Java中,我们可以定义一个名为`Equation`的类来表示一元二次方程,它包含相关的属性和方法。以下是这个类的设计:
```java
public class Equation {
private double a; // 二次项系数
private double b; // 一次项系数
private double c; // 常数项
// 构造函数
public Equation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 求解方法 - 计算判别式和实根
private double discriminant() {
return Math.pow(b, 2) - 4 * a * c;
}
private double[] roots() {
double sqrtDiscriminant = Math.sqrt(discriminant());
if (discriminant() > 0) { // 两个实根
return new double[]{(-b + sqrtDiscriminant) / (2 * a), (-b - sqrtDiscriminant) / (2 * a)};
} else if (discriminant() == 0) { // 一个实根(重根)
return new double[]{-b / (2 * a)};
} else { // 无实根
throw new IllegalArgumentException("The equation has no real roots.");
}
}
// 输出方法
public void printRoots() {
int rootCount = roots().length;
System.out.println("This quadratic equation has " + rootCount + " real root(s):");
for (double root : roots()) {
System.out.println(root);
}
}
}
// EquationDemo类用于演示如何创建并求解一元二次方程实例
public class EquationDemo {
public static void main(String[] args) {
Equation eqn = new Equation(1, -3, 2); // 示例方程 ax^2 + bx + c = 0
eqn.printRoots();
}
}
```
在这个例子中,`Equation`类包含了方程的系数以及求解方法,包括计算判别式和实根。`printRoots()`方法用于输出根的数量和值。在`EquationDemo`的`main`方法里,我们创建了一个`Equation`对象并展示了求解的过程。
阅读全文