4.7(java)為一元二次方程ax²+bx+c = 0設計一個名為QuadraticEquation的類。這個類包括:

liuwenqing11發表於2020-10-11
題目要求;
  為一元二次方程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

相關文章