栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java、二次方程式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java、二次方程式

为二次方程式 ax^2 + bx + c = 0 设计一个名为QuadraticEquation 的类。这个类包括:

代表三个系数的私有数据域a、b和c。一个参数为a、b和c的构造方法。a、b、c的三个get方法。一个名为getDiscriminant() 的方法返回判别式,b^2 - 4ac。名为getRoot1() 和getRoot2() 的方法返回等式的两个根:

r1 = (-b + √(b^2 - 4ac) ) / (2a)           r2 = (-b - √(b^2 - 4ac) ) / (2a) 

        这些方法只有在判别式为非负数时才有用。如果判别式为0,这些方法返回0。

        画出该类的UML图并实现这个类。编写一个测试程序,提示用户输入a、b、c的值,然后显示判别式的结果。如果判别式为正数,显示两个根;如果判别式为0,显示一个根;否则,显示"The equation has no root."(这个方程无根)。 


UML类图:

————————————————————————
                     QuadraticEquation
————————————————————————
-a: double
-b: double
-c: double
————————————————————————
+QuadraticEquation(a: double, b: double,
                    c: double)
-getDiscriminant(): double
+getRoot1(): double
+getRoot2(): double
+getA(): double
+getB(): double
+getC(): double
————————————————————————


package pack2;

public class QuadraticEquation {
	private double a, b, c;	//系数
	
	
	public QuadraticEquation(double a, double b, double c) {
		this.a = a;
		this.b = b;
		this.c = c;
	}

	
	public double getDiscriminant() {
		return Math.pow(b, 2)  - 4 * a * c;
	}

	
	public double getRoot1() {
		return (getDiscriminant() < 0) ? 0 : (-b + Math.sqrt(getDiscriminant())) / 
                (2 * a);
	}
	
	
	public double getRoot2() {
		return (getDiscriminant() < 0) ? 0 : (-b - Math.sqrt(getDiscriminant())) /
                 (2 * a);
	}
	
	
	public double getA() {
		return a;
	}

	
	public double getB() {
		return b;
	}

	
	public double getC() {
		return c;
	}

	//——————————————————————————————————————————————————————
	public static void main(String[] args) {
		QuadraticEquation q1 = new QuadraticEquation(1, 5, 2);
		QuadraticEquation q2 = new QuadraticEquation(2, 5, 4);
		
		System.out.println("q1:");
		showRoots(q1);
		System.out.println("nq2");
		showRoots(q2);
	}

	
	public static void showRoots(QuadraticEquation q) {
		double discriminantQ1 = q.getDiscriminant();
		if(discriminantQ1 > 0)
			System.out.println("Root1: " + q.getRoot1() + "nRoot2: " + q.getRoot2());
		else if(discriminantQ1 < 0)
			System.out.println("The equation has no roots.");
		else
			System.out.println(q.getRoot1());
	}
}

 


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759624.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号