第七周C++实验报告(3)
来源:互联网 发布:知乎数据挖掘考研 编辑:程序博客网 时间:2024/05/29 07:22
- #include<iostream>
- using namespace std;
- template<class T>
- class Complex
- {
- public:
- Complex( ){real=0;imag=0;}
- Complex(T r,T 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:
- T real;
- T imag;
- };
-
- template <class T>
- Complex<T> Complex<T>::complex_add(Complex &c2)
- {
- Complex c;
- c.real=real+c2.real;
- c.imag=imag+c2.imag;
- return c;
- }
-
- template <class T>
- Complex<T> Complex<T>::complex_subtract(Complex &c2)
- {
- Complex c;
- c.real=real-c2.real;
- c.imag=imag-c2.imag;
- return c;
- }
-
- template <class T>
- Complex<T> Complex<T>::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 T>
- Complex<T> Complex<T>::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 T>
- void Complex<T>::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(3,4.5),c8(6.3,-1.89),c9;
- c9=c7.complex_multiply(c8);
- cout<<"c7*c8=";
- c9.display( );
-
- Complex<double> c10(3.7,3),c11(4,5.5),c12;
- c12=c10.complex_divide(c11);
- cout<<"c10/c11=";
- c12.display( );
- system("pause");
- return 0;
- }