解一元二次方程

(代数:二次方程式)为二次方程式ax'+bx+c=0设计一个名为QuadraticEquation的类。这个类包括:

  • 代表三个系数的私有数据域a、b和c
  • 一个参数为a、b和c的构造方法
  • a、b、c的三个get方法
  • 一个名为getDiscriminant()的方法返回判别式,b^2 - 4ac
  • 名为 getRoot1() 和 getRoot2() 的方法返回等式的两个根:
  • -b+Vb2-4ac f-b-√b2-4ac  i=2a这些方法只有在判别式为非负数时才有用。如果判别式为负,这些方法返回0。
  • 画出该类的UML图并实现这个类。
  • 编写一个测试程序,提示用户输入a、b和c的值,然后显示判别式的结果。如果判别式为正数,显示两个根;如果判别式为0,显示一个根;否则,显示“The equation has no roots.”(这个方程无根)

 

解一元二次方程_第1张图片

package www.javaExperiment;

import java.util.Scanner;

/**
 * 对一元二次方程求根
 */

class Equation {
    private double a = 0;
    private double b = 0;
    private double c = 0;
    public Equation() {
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public double getA() {
        return a;
    }

    public double getB() {
        return b;
    }

    public double getC() {
        return c;
    }
    public double getDiscriminant(double a,double b,double c) {
        return (b*b - 4*a*c);
    }

    public double getRoot1(double a,double b,double c) {
        double r1 = (-b + Math.sqrt(b*b - 4*a*c)) / 2 * a;
        return  r1;
    }
    public double getRoot2(double a,double b,double c) {
        double r2 = (-b - Math.sqrt(b*b - 4*a*c)) / 2 * a;
        return r2;
    }
}

public class QuadraticEquation {
    public static void main(String[] args) {
        Equation equation = new Equation();
        Scanner input = new Scanner(System.in);
        System.out.print("Please enter three number a,b,c: ");
        double a = input.nextDouble();
        double b = input.nextDouble();
        double c = input.nextDouble();
        System.out.print("要求解的方程为:" + a + "*x*x + " +
                b + "*x + " + c + " = 0");
        System.out.println("\n方程的判别式为:" + equation.getDiscriminant(a,b,c));

        if(equation.getDiscriminant(a,b,c) >= 0) {
            System.out.println("\n方程的根为:" + equation.getRoot1(a,b,c) +
                    " " + equation.getRoot2(a,b,c));
        }else {
            System.out.println("The equation has no roots...");
        }
    }
}

 

 

你可能感兴趣的:(#,LeetCode)