10.7

xiaoxiao2021-02-28  33

//complex0.h #ifndef COMPLEX0_H #define COMPLEX0_H #include<iostream> namespace COMPLEX{ class complex{ private: double x; double y; public: complex(); complex(double a,double b){ x = a;y=b;}; complex operator+(complex &com); complex operator-(complex &com); complex operator*(complex &com); complex operator*(double n); complex operator~(); friend complex operator*(double n ,complex &com); friend std:: istream & operator>>(std::istream &os,complex &com); friend std::ostream & operator<<(std::ostream &os,complex &com); }; } #endif //complex.cpp #include"complex0.h" namespace COMPLEX{ complex::complex() { x = y =0; } complex complex::operator+(complex &com) { double x1,y1; x1=x+com.x; y1=y+com.y; return complex(x1,y1); } complex complex:: operator-(complex &com) { double x1,y1; x1 = x-com.x; y1= y-com.y; return complex(x1,y1); } complex complex::operator*(complex &com) { double x1,y1; x1 = x*com.x-y*com.y; y1 = com.x*y+x*com.y; return complex(x1,y1); } complex complex:: operator*(double n) { return complex(x*n,y*n); } complex operator*(double n ,complex &com) { return com*n; } complex complex::operator~() { return complex(x,-y); } std:: istream & operator>>(std::istream &os,complex &com) { double n,m; std::cout<<"enter x: "; os>>n; std::cout<<"enter y: "; os>>m; com.x=n; com.y =m; return os; } std::ostream & operator<<(std::ostream &os,complex &com) { os<<"("<<com.x<<","<<com.y<<"i)"<<std::endl; return os; } } //main.cpp #include"complex0.h" int main() { using COMPLEX::complex; using std::cin; using std::cout; using std::endl; complex a(3.0,4.0); complex c; cout<<"enter a complex number (q to quit):\n"; while(cin>>c) { cout<<"c is"<<c<<"\n"; cout<<"complex conjugate is"<<~c<<'\n'; cout<<"a is"<<a<<'\n'; cout<<"~a is"<<~a<<endl; cout<<"a+c is"<<a+c<<endl; cout<<"c-c is"<<a-c<<endl; cout<<"a*c is"<<a*c<<endl; cout<<"2*c is"<<2*c<<endl; cout<<"enter a complex number (q to quit):"<<endl; } cout<<"done"; system("pause"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-2619694.html

最新回复(0)