#include
#include
#include
usingnamespacestd;
classCFindRoot
{
public:
voidSetData(floatx,floaty,floatz);//设置系数
voidFind();//求方程的根
voidDisplay();//输出方程的根
private:
floata,b,c,delta;//a,b,c表示方程的系数,delta表示判断根
doublex1,x2;//表示方程的根
};
voidCFindRoot::SetData(floatx,floaty,floatz)
{
a=x;
b=y;
c=z;
delta=bb-4ac;
}
voidCFindRoot::Find()
{
if(delta>0)
{
x1=(-b+sqrt(delta))/(2a);
x2=(-b-sqrt(delta))/(2a);
}
elseif(delta==0)
{
x1=x2=(-b)/(2a);
}
else
{
x1=(-b)/(2a);
x2=sqrt(-delta)/(2a);
}
}
voidCFindRoot::Display()
{
if(delta>0)
{
cout<<"方程有两个不相等的实根:\tx1="< return;
}
elseif(delta==0)
{
cout<<"方程有两个相等的实根:\tx1=x2="< return;
}
else
{
cout<<"方程有两个共轭复根:\tx1="< }
}
intmain()
{
floats1,s2,s3;
cout<<"请输入三个系数:"< cin>>s1>>s2>>s3;
CFindRootp1;
p1.SetData(s1,s2,s3);
p1.Find();
p1.Display();
getch();
return0;
}
|
|