实验5 定义类和创建对象求解一元二次方程的根
一、实验目的
(1)理解对象和类,掌握用类创建对象模型。
(2)学习如何定义类和创建对象,理解对象引用变量的概念。
(3)理解构造方法的作用,并使用构造方法创建类的对象。
二、实验内容
按照如下步骤完成实验:
步骤1:创建一个Java Project,命名为:exp02
步骤2:按下列要求定义一个类表示一元二次方程

(1) 类名为:QuadraticEquation,放置在名exp02中;
(2) 类中定义3个double类型的数据域:a,b,c分别表示3个系数;
(3) 类中定义有参构造方法:QuadraticEquation(double n1, double n2, double n3),3个参数依次初始化系数a,b,c;
(4) 类中定义返回一元二次方程的判别式的值的方法:double getDiscriminant(),判断式如下:
![]()
(5) 类中定义两个求解一元二次方程两个实根的方法:double getRoot1()和double getRoot2(),分别计算2个实根:

步骤3:编写主类,类名为:Main,放置在名exp02中。主方法中实现如下功能:
(1) 输入一元二次方程的3个系数;
(2) 如果该方程无实根,则输出“方程没有实根”;
(3) 如果该方程有2个相等的实根,则输出“方程有2个相等的实根,是:xx.xx”;
(4) 如果该方程有2个不等的实根,则输出“方程有2个不等的实根,是:xx.xx和xx.xx”;
提交要求:包含源程序文件的JAR
源代码如下:
主函数代码:
package exp02;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
QuadraticEquation exp;
double a , b , c ;
Scanner scan = new Scanner(System.in);
System.out.println("请输入一元二次方程的3个系数:");
a = scan.nextDouble();
b = scan.nextDouble();
c = scan.nextDouble();
exp = new QuadraticEquation( a , b , c );
if( exp.getDiscriminant() < 0 )
{
System.out.println("方程没有实根");
}
else if( exp.getDiscriminant() == 0 )
{
System.out.println("方程有2个相等的实根,是:"+ exp.getRoot1() );
}
else if( exp.getDiscriminant() > 0 )
{
System.out.println("方程有2个不等的实根,是:"+ exp.getRoot1() + exp.getRoot2() );
}
}
}
QuadraticEquation类代码:
package exp02;
public class QuadraticEquation {
double a , b , c ;
QuadraticEquation( double n1 , double n2 , double n3 )
{
a = n1;
b = n2;
c = n3;
}
double getDiscriminant()
{
return b*b - 4*a*c;
}
double getRoot1()
{
return ( -b + Math.sqrt(getDiscriminant()) ) / ( 2*a );
}
double getRoot2()
{
return ( -b - Math.sqrt(getDiscriminant()) ) / ( 2*a );
}
}
本文介绍了如何在Java中定义类QuadraticEquation来表示一元二次方程,包括数据域、构造方法、判别式计算以及实根求解。通过主类Main演示了如何输入系数并根据方程特性输出结果。





