题目要求; 为一元二次方程ax²+bx+c = 0设计一个名为QuadraticEquation的类。这个类包括: 1.代表三个 系数的私有数据域a、b、和c; 2.一个参数为a、b和c的构造方法; 3.a 、 b、c的三个getter方法; 4.一个名为getDiscriminant()的方法返回判别式,b²-4ac; 5. 名为getRoot1()和getRoot2()的方法返回方程的两个根。 x1 = -b+(根号b²-4ac)/2a 和 x2 =-b-(根号b²-4ac)/2a 这些方法只有在判别式为非负数时才有用,如果判别式为负,这些方法返回0. 编写一个测试程序,提示用户输入a b c 的值,然后显示判别式的结果。如果判别式为正数,显示两个根;如果判别式为0, 显示一个根;否则显示“方程无根”
package bookTest2;
public class QuadraticEquation {
// 1.代表三个 系数的私有数据域a、b、和c;
private double a;
private double b;
private double c;
//2.一个参数为a、b和c的构造方法;
//快捷键 在空白右键 ->Alt+Insert-->constructor 就可以了
public QuadraticEquation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 3.a 、 b、c的三个getter方法;
//快捷键在空白右键 ->Alt+Insert-->Getter 就可以了
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
// 4.一个名为 getDiscriminant()的方法返回判别式,b²-4ac;
public double getDiscriminant() {
double discriminant = b * b - 4 * a * c;
return discriminant;
}
// 5. 名为getRoot1()和getRoot2()的方法返回方程的两个根。如果判别式为负,这些方法返回0
public double getRoot1() {
if (getDiscriminant() < 0)
return 0;
else {
double root1 = (-b + Math.sqrt(getDiscriminant())) / 2 * a;
return root1;
}
}
public double getRoot2 () {
if (getDiscriminant() < 0)
return 0;
else {
double root2 = (-b - Math.sqrt(getDiscriminant())) / 2 * a;
return root2;
}
}
}
2.测试类
testQuadraticEquation
package bookTest2;
import java.util.Scanner;
public class testQuadraticEquation {
public static void main(String[] args) {
//编写一个测试程序,提示用户输入a b c 的值,然后显示判别式的结果。如果判别式为正数,显示两个根;如果判别式为0,
// 显示一个根;否则显示“方程无根”
Scanner sc = new Scanner(System.in);
System.out.println("请输入a的值");
double a = sc.nextDouble();
System.out.println("请输入b的值");
double b = sc.nextDouble();
System.out.println("请输入c的值");
double c = sc.nextDouble();
//引过来
//如果判别式为正数,显示两个根;如果判别式为0 显示一个根;否则显示“方程无根”
QuadraticEquation quadraticEquation = new QuadraticEquation(a,b,c);
if (quadraticEquation.getDiscriminant() > 0) {
System.out.println("x1="+quadraticEquation.getRoot1());
System.out.println("x2="+quadraticEquation.getRoot2());
}else
if (quadraticEquation.getDiscriminant() == 0) {
//因为两个值相等引用一个就可以
System.out.println("x1=x2="+quadraticEquation.getRoot1());
}else {
System.out.println("您输入的方程无根");
}
}
}
运行结果图 1 是>0 ; 2是=0;3是<0