publicclassEquation{doublea,b,c;//方程的系数doublex1,x2;//两个根inttype;//0表示一个根,1表示两个实根,2表示没有实数根publicEquation(doublea,doubleb,doublec){this.a=a;this....
public class Equation {
double a,b,c; //方程的系数
double x1,x2; //两个根
int type; //0表示一个根,1表示两个实根,2表示没有实数根
public Equation(double a,double b,double c){
this.a = a;
this.b = b;
this.c = c;
}
private double delta(){
return b*b-4*a*c;
}
public void calculate(){
double d = delta();
if(Math.abs(d) < 1E-5){
type = 0;
x1 = -b/(2*a);
x2 = x1;
}else if(d > 0){
type = 1;
x1 = (-b+Math.sqrt(d))/(2*a);
x2 = (-b-Math.sqrt(d))/(2*a);
}else if(d<0){
type =2;
return;
}
}
public void showResult(){
switch(type){
case 0:
System.out.println("方程只有一个实根,x1=x2="+x1);
break;
case 1:
System.out.println("方程有两个实根,分别是:x1="+x1+"\tx2="+x2);
break;
case 2:
System.out.println("方程无实数根");
}
}
public static void main(String[] args) {
Equation eq1 = new Equation(1,2,2);
eq1.calculate();
eq1.showResult();
Equation eq2 = new Equation(1,-2,1);
eq2.calculate();
eq2.showResult();
Equation eq3 = new Equation(1,-3,1);
eq3.calculate();
eq3.showResult();
}
}
请哪位高手帮分析一下 , 如果能够改进更好,比如加上一些异常类!谢谢
展开