Java實驗(6) 二次方程類

設計一個二次方程類QuadraticEquation,用於處理形如ax2 + bx + x = 0 (a≠0)的二次方程,成員如下:

私有成員a, b, c用於存儲係數;

含三個參數的構造方法,用於傳入a, b, c;

三個方法getA(), getB(), getC(),用於傳出係數;

一個方法getDiscriminant()用於傳出b2 - 4ac的值;

兩個方法getRoot1()和getRoot2()用來返回方程的兩個根。注意方程可能沒有實根,所以返回值定義爲String。

請提供一個測試類,測試上述所有方法。

                                                                                 

<span style="font-family:Courier New;">import java.util.Scanner;
class Equation
{
    private double a,b,c;
    Equation(double a1,double b1,double c1){ //構造方法
        a=a1;
        b=b1;
        c=c1;
    }
    //傳出係數a,b,c
    public double getA(){return a;}
    public double getB(){return b;}
    public double getC(){return c;}
    //傳出b^2-4ac的值
    public double getDiscriminant(){
        return b*b-4*a*c;
    }
    //求兩個根
    private String getRoot1(){
        String s=String.valueOf((-b+Math.sqrt(getDiscriminant()))/(2*a));
        return s;
    }
    private String getRoot2(){
        String s=String.valueOf((-b-Math.sqrt(getDiscriminant()))/(2*a));
        return s;
    }
    //求解方程組
    public void solveEq(){
        if(getDiscriminant()<0){  //無解
            System.out.println("方程無解!");
        }
        else if(getDiscriminant()==0){ //只有一個解
            System.out.println("x1=x2="+getRoot1());
        }
        else{  //兩個解
            System.out.println("x1="+getRoot1());
            System.out.println("x2="+getRoot2());
        }  
    }
}
public class QuadraticEquation {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        double a=input.nextDouble();
        double b=input.nextDouble();
        double c=input.nextDouble();
        Equation eq=new Equation(a,b,c);
        System.out.println("a="+eq.getA());
        System.out.println("b="+eq.getB());
        System.out.println("c="+eq.getC());
        System.out.println("b^2-4*a*c="+eq.getDiscriminant());
        eq.solveEq();
    }
}</span>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章