第七周实验报告三
来源:互联网 发布:淘宝刷收藏加购物车 编辑:程序博客网 时间:2024/06/05 06:12
#include <iostream> using namespace std; template <class numtype> class Complex { public: Complex( ){real=0;imag=0;} Complex(numtype r,numtype i){real=r;imag=i;} Complex complex_add(Complex &c2); Complex complex_subtract(Complex &c2); Complex complex_multiply(Complex &c2); Complex complex_divide(Complex &c2); void display( ); private: numtype real; numtype imag; }; template <class numtype> Complex<numtype> Complex<numtype>::complex_add(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } template <class numtype> Complex<numtype> Complex<numtype>::complex_subtract(Complex &c2) { Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c; } template <class numtype> Complex<numtype> Complex<numtype>::complex_multiply(Complex &c2) { Complex c; c.real=real*c2.real-imag*c2.imag; c.imag=real*c2.imag+imag*c2.real; return c; } template <class numtype> Complex<numtype> Complex<numtype>::complex_divide(Complex &c2) { Complex c,c3,c4; c3.real=c2.real; c3.imag=c2.imag; c.real=real*c3.real+imag*c3.imag; c.imag=(-real*c3.imag)+imag*c3.real; c4.real=c2.real*c2.real+c2.imag*c3.imag; c.real=c.real/c4.real; c.imag=c.imag/c4.real; return c; } template <class numtype> void Complex<numtype>::display( ) { cout<<"("<<real<<","<<imag<<"i)"<<endl; } int main( ) { Complex<int> c1(3,4),c2(5,-10),c3; c3=c1.complex_add(c2); cout<<"c1+c2="; c3.display( ); Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6; c6=c4.complex_subtract(c5); cout<<"c4-c5="; c6.display( ); Complex<double> c7(2,4.4),c8(5.34,-10.21),c9; c9=c7.complex_multiply(c8); cout<<"c7*c8="; c9.display( ); Complex<double> c10(3,-2),c11(5,10),c12; c12=c10.complex_divide(c11); cout<<"c10/c11="; c12.display( ); return 0; }