第九周任务(一)
2012-04-15 21:10
295 查看
#include <iostream> using namespace std; class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} friend Complex operator+(Complex &c1,Complex &c2); friend Complex operator-(Complex &c1,Complex &c2); friend Complex operator*(Complex &c1,Complex &c2); friend Complex operator/(Complex &c1,Complex &c2); friend Complex operator+(Complex &c1,double d); friend Complex operator+(double d,Complex &c1); friend Complex operator-(Complex &c1,double d); friend Complex operator-(double d,Complex &c1); friend Complex operator*(Complex &c1,double d); friend Complex operator*(double d,Complex &c1); friend Complex operator/(Complex &c1,double d); friend Complex operator/(double d,Complex &c1); Complex operator-(); void display(); friend ostream & operator <<(ostream &,Complex &); friend istream & operator >>(istream &,Complex &); private: double real; double imag; }; //下面定义成员函数 Complex operator+(Complex &c1,Complex &c2) { return Complex(c1.real+c2.real,c1.imag+c2.imag); } Complex operator-(Complex &c1,Complex &c2) { return Complex(c1.real-c2.real,c1.imag-c2.imag); } Complex operator*(Complex &c1,Complex &c2) { Complex c; c.real=c1.real*c2.real-c1.imag*c2.imag; c.imag=c1.real*c2.imag-c1.imag*c2.real; return c; } Complex operator/(Complex &c1,Complex &c2) { Complex c; c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real); c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.imag*c2.imag+c2.real*c2.real); return c; } Complex operator+(Complex &c1,double d) { return Complex(c1.real+d,c1.imag); } Complex operator+(double d,Complex &c1) { return Complex(c1.real+d,c1.imag); } Complex operator-(Complex &c1,double d) { return Complex(c1.real-d,c1.imag); } Complex operator-(double d,Complex &c1) { return Complex(c1.real-d,c1.imag); } Complex operator*(Complex &c1,double d) { return Complex(c1.real*d,c1.imag*d); } Complex operator*(double d,Complex &c1) { return Complex(c1.real*d,c1.imag*d); } Complex operator/(Complex &c1,double d) { return Complex(c1.real/d,c1.imag/d); } Complex operator/(double d,Complex &c1) { return Complex(c1.real/d,c1.imag/d); } Complex Complex:: operator-() { return Complex(-real,-imag); } void Complex::display() { cout<<"("<<real<<","<<imag<<"i)"<<endl; } ostream & operator <<(ostream & output,Complex &c) { output<<"("<<c.real; if(c.imag>=0)output<<"+"; output<<c.imag<<"i)"<<endl; return output; } istream & operator >>(istream & input,Complex &c) { cout<<"请输入虚数"<<endl; input>>c.real>>c.imag; return input; } int main() { Complex c1,c2,c3; double d=3; cin>>c1; cout<<"c1="<<c1<<endl; cin>>c2; cout<<"c2="<<c2<<endl; c3=c1+c2; cout<<"c1+c2="<<c3<<endl; c3=c1-c2; cout<<"c1-c2="<<c3<<endl; c3=c1*c2; cout<<"c1*c2="<<c3<<endl; c3=c1/c2; cout<<"c1/c2="<<c3<<endl; c3=c1+d; cout<<"c1+d="<<c3<<endl; c3=d+c1; cout<<"d+c1="<<c3<<endl; c3=c1-d; cout<<"c1-d="<<c3<<endl; c3=d-c1; cout<<"d-c1="<<c3<<endl; c3=c1*d; cout<<"c1*d="<<c3<<endl; c3=d*c1; cout<<"d*c1="<<c3<<endl; c3=c1/d; cout<<"c1/d="<<c3<<endl; c3=d/c1; cout<<"d/c1="<<c3<<endl; c3=-c1; cout<<"-c1="<<c3<<endl; c3=-c2; cout<<"-c2="<<c3<<endl; system("pause"); return 0; }
相关文章推荐
- 第九周任务二
- 第九周上机任务项目3-分数类
- 《C++第九周实验报告1-1》--------接第8周任务1,定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 第九周任务三
- 第九周任务四
- 第九周实验报告(任务2)
- 第九周项目六(任务委派)
- 第九周任务,错的一塌糊涂,欢迎帮忙改错……switch语句不会用啊
- 第九周上机任务项目4:本月有几天?
- 个人所得税计算器(第九周上机任务)
- 第九周实验报告任务1
- 第九周任务2
- 2013第九周上机任务【项目4-一元一次方程类】
- 第九周试验任务四--建立一个二维数组类Douary,完成矩阵的输入、输出、加、减、相等判断等操作
- 第九周上机任务项目4-一元一次方程类
- 《C++第九周实验报告2-1》---接第8周任务2,定义Time类中的<<和>>运算符重载,实现时间的输入输出
- 第九周实验报告(任务四)【一元一次方程类】
- 第九周实验报告任务4 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 第九周实验报告(任务3)
- 第九周上机任务4