如题,要求实现:
1、复数类含两个参数的构造函数,一个为实部,一个为虚部。
2、实现-加-减-乘运算符重载运算符重载功能,并实现返回值为复数类。
3、Show出结果。
例如输入
7 8
输出:
(10.00+12.00i)
(-4.00-4.00i)
(-11.00+52.00i)
(0.47+0.04i)
注意:
如果是-4.00+-4.00i 结果应该变成 -4.00-4.00i . 即加一个if判断
2,小数的精度
头文件:
#include<iostream>
#include<iomanip>
using namespace std;
Show()
{ cout <<setiosflags(ios::fixed); 具体显示几位小数的设置
cout<<"("<<setprecision(2)<<x<<"+"<<setprecision(2)<<y<<"i)";
}
#include<iostream> #include<iomanip> using namespace std; class Cmycomplex { private: double real,imag; public: Cmycomplex(double r=0,double i=0);//构造函数设默认值,或者重载构造函数 Cmycomplex operator +(Cmycomplex &);//注意,这里只需要传一个参数,运算符+重载功能上类似自定义的.add()函数 Cmycomplex operator -(Cmycomplex &); Cmycomplex operator *(Cmycomplex &); Cmycomplex operator /(Cmycomplex &); void Set(double x,double y); void Show(); }; Cmycomplex::Cmycomplex(double r,double i)//类外定义时无需再写默认值 { real=r; imag=i; } Cmycomplex Cmycomplex::operator +(Cmycomplex &z) { Cmycomplex tmp; tmp.real=real+z.real; tmp.imag=imag+z.imag; return tmp; } Cmycomplex Cmycomplex::operator -(Cmycomplex &z) { Cmycomplex tmp; tmp.real=real-z.real; tmp.imag=imag-z.imag; return tmp; } Cmycomplex Cmycomplex::operator *(Cmycomplex &z) { Cmycomplex tmp; tmp.real=real*z.real-imag*z.imag;//这里注意一下运算规则 tmp.imag=real*z.imag+z.real*imag; return tmp; } Cmycomplex Cmycomplex::operator/(Cmycomplex &z) { Cmycomplex tmp; tmp.real=(real*z.real+imag*z.imag)/(z.real*z.real+z.imag*z.imag);//这里可能需要上网查一下怎么计算 tmp.imag=(z.real*imag-real*z.imag)/(z.real*z.real+z.imag*z.imag); return tmp; } void Cmycomplex::Set(double x,double y) { real=x; imag=y; } void Cmycomplex::Show() { cout<<setprecision(2)<<fixed; if(imag>0) cout << "(" << real << "+" << imag << "i" << ")" << endl; else if(imag<0) cout << "(" << real << imag << "i" << ")" << endl; else if(imag==0) cout << real << endl; }
//StudybarCommentBegin
int main()
{
Cmycomplex z1(3,4),z2(7),z3;
double x,y;
cin>>x>>y;
z2.Set(x,y);
z3=z1+z2;
cout<<"\n";
z3.Show();
z3=z1-z2;
cout<<"\n";
z3.Show();
z3=z1*z2;
cout<<"\n";
z3.Show();
z3=z1/z2;
cout<<"\n";
z3.Show();
}
//StudybarCommentEnd
-END