4.7(java)为一元二次方程ax²+bx+c = 0设计一个名为QuadraticEquation的类。这个类包括:

题目要求;
  为一元二次方程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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值