# include & ltiostream.h & gt
# include & ltmath.h & gt
類復合體{
雙實,imag
公共:
complex(){ real = 5;imag = 5;}//默認構造函數
復數(雙r){ real = r;imag = 0;}//只給實數部分賦值的構造函數
復數(雙r,雙I){ real = r;imag = I;}//同時為實部和虛部賦值的函數
double displayreal(){return實數;}//返回復數的實部
double display imag(){ return imag;}//返回復數的虛部
復數運算符+(復數c);//實現復數加法
復數運算符-(復數c);//實現復數減法
復數運算符*(復數c);//實現復數乘法
雙駕駛室(復雜c);//求復數的絕對值(模數)
復雜sqr(復雜c);//求復數的平方根
牡蠣之友& amp操作員& lt& lt(ostream & amp外出,復雜& ampobj);//實現復數的輸出
};
complex complex::operator+(complex c)//實現復數加法。
{
real+= c . real;
imag+= c . imag;
返回* this
}
復數復數::運算符-(復數c)//實現復數減法。
{
實數-=c .實數;
imag-= c . imag;
返回* this
}
復數復數::運算符*(復數c)//實現復數乘法。
{
real = real * c . real-imag * c . imag;
imag = real * c . imag+imag * c . real;
返回* this
}
Double complex::cab(complex c)//求復數的絕對值(模數)
{
雙ri;
ri = sqrt(c . real * c . real+c . imag * c . imag);
返回ri;
}
complex complex::sqr(complex c)//求復數的平方根。
{
real = sqrt((cab(c)+c . real)/2);
imag = sqrt((cab(c)-c . real)/2);
返回* this
}
牡蠣&;操作員& lt& lt(ostream & amp外出,復雜& ampObj)//實現復數的輸出。
{
if(obj . imag = = 0)out & lt;& ltobj.real
else out & lt& lt真實的。& lt"+" & lt;& ltobj.imag & lt& lt“我”;
退了出來;
}
Void答案(雙a,雙b,雙c)//根函數
{
復雜答案1,答案2;
雙an = b * b-4 * a * c;
if(an & gt;=0)
{
answer 1 =復數((-b+sqrt(an))/(2 * a));
answer2 =復數((-b-sqrt(an))/(2 * a));
}
其他
{
answer 1 =復數(-b/(2*a),sqrt(-an)/(2 * a));
answer2 =復數(-b/(2*a),-sqrt(-an)/(2 * a));
}
cout & lt& lt答案是:“& lt& ltendl
cout & lt& lt回答1 & lt;& lt”和“& lt& lt答案& lt& ltendl
}
Int main()//主函數
{
復合體a,b(2),c(6,9);//可以刪除下面測試類中定義的函數。
cout & lt& lt" a = " & lt& lta & lt& lt“,b = " & lt& ltb & lt& lt“,c = " & lt& ltc & lt& ltendl
c = a+b;
cout & lt& lt" a+b = " & lt;& ltc & lt& ltendl
cout & lt& lt" a = " & lt& lta & lt& lt“,b = " & lt& ltb & lt& lt“,c = " & lt& ltc & lt& ltendl
c = a-b;
cout & lt& lt" a-b = " & lt;& ltc & lt& ltendl
cout & lt& lt" a = " & lt& lta & lt& lt“,b = " & lt& ltb & lt& lt“,c = " & lt& ltc & lt& ltendl
c = a * b;
cout & lt& lt" a * b = " & lt& ltc & lt& ltendl
cout & lt& lt" a = " & lt& lta & lt& lt“,b = " & lt& ltb & lt& lt“,c = " & lt& ltc & lt& ltendl
cout & lt& lt" cab(a)= " & lt;& lta . cab(a)& lt;& ltendl
cout & lt& lt" a = " & lt& lta & lt& lt“,b = " & lt& ltb & lt& lt“,c = " & lt& ltc & lt& ltendl
cout & lt& lt" sqr(a)= " & lt;& lta . sqr(a)& lt;& ltendl//上面測試類中定義的每個函數。
回答(1,1,1);//當方程的解是虛數時。
回答(1,3,1);//當方程的解是實數時
返回0;
}