: 2、设计表示一元一次方程( ax + b =0)的类,并根据 a 的系数情况求解方程。3、编写程序,求一元二次方程ax2+ bx + c =0的实根,系数 a 、 b 、 c 从键盘输入。 Java
时间: 2024-09-26 22:13:04 浏览: 35
在Java中,我们可以创建一个名为`LinearEquation`的类来表示一元一次方程(`ax + b = 0`),并添加一个根据a的值判断是否为零的成员函数。如果a非零,则可以进一步求解x的值;如果a为零,则方程变为b=0,需要单独处理。
```java
public class LinearEquation {
private double a;
private double b;
public LinearEquation(double a, double b) {
this.a = a;
this.b = b;
}
// 判断方程是否有解
public boolean hasSolution() {
return a != 0; // 如果a不为零,说明有唯一解
}
// 当a不为零时求解x
public double solveIfPossible() {
if (hasSolution()) {
return -b / a; // x = -b/a
} else {
throw new IllegalArgumentException("Invalid equation: a must not be zero");
}
}
}
// 对于一元二次方程,我们可以创建另一个类如QuadraticEquation
class QuadraticEquation {
private double a;
private double b;
private double c;
public QuadraticEquation(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;
}
// 根据判别式计算实数根
public double[] solve() {
double discriminantResult = discriminant();
if (discriminantResult > 0) {
return new double[] {(-b + Math.sqrt(discriminantResult)) / (2 * a), (-b - Math.sqrt(discriminantResult)) / (2 * a)};
} else if (discriminantResult == 0) {
return new double[] {-b / (2 * a)};
} else {
throw new ArithmeticException("The equation has no real roots.");
}
}
}
```
阅读全文