您的位置:首页 > 其它

复数的四则运算(模板类)

2013-04-12 19:32 232 查看
/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:赵  洋
* 完成日期: 2013年4  月12  日
* 版本号: v1.0
* 输入描述:无
* 问题描述:复数的加法运算,用友元类
* 程序输出:
*/
#include<iostream>
using namespace std;
template<class numtype>
class Complex
{public:
Complex (){real=0;imag=0;}
Complex(numtype a,numtype b){real=a;imag=b;}
Complex complex_add(Complex &c2);
Complex complex_cut(Complex &c7);
Complex complex_multiply(Complex &c13);

void display();
private:
	numtype real,imag;
};
template <class numtype>  
Complex<numtype> Complex<numtype>::complex_add(Complex &c2)
{
	Complex<numtype> c;
    c.real=real+c2.real;
	c.imag=imag+c2.imag;
	return c;
}

template <class numtype>  
Complex<numtype> Complex<numtype>::complex_cut(Complex &c7)
{
	Complex<numtype> c;
    c.real=real-c7.real;
	c.imag=imag-c7.imag;
	return c;
}

template <class numtype>
Complex<numtype> Complex<numtype>::complex_multiply(Complex &c13)
{
	Complex<numtype> c;
    c.real=real*c13.real-imag*c13.imag;
	c.imag=real*c13.imag+c13.real*imag;
	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_add(c5);  
	cout<<"c4+c5="; 
	c6.display( ); 
	//下面测试减法、乘法和除法
    Complex<int> c7(3,4),c8(5,-10),c9;  
	c9=c7.complex_cut(c8);  
	cout<<"c7-c8="; 
	c9.display( );  
	Complex<double> c10(3.1,4.4),c11(5.34,-10.21),c12;  
	c12=c10.complex_cut(c11);  
	cout<<"c10-c11="; 
	c12.display( );
	Complex<int> c13(3,4),c14(5,-10),c15;  
	c15=c13.complex_multiply(c14);  
	cout<<"c13*c14="; 
	c15.display( );  
	Complex<double> c16(3.1,4.4),c17(5.34,-10.21),c18;  
	c18=c16.complex_cut(c17);  
	cout<<"c16*c17="; 
	c18.display( );
	system("pause");
	return 0;
}

运行结果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: