现在的位置: 首页 > 综合 > 正文

2013第七周上机任务【项目4-复数模板类】

2012年08月03日 ⁄ 综合 ⁄ 共 1491字 ⁄ 字号 评论关闭
/* 
* Copyright (c) 2013, 烟台大学计算机学院                     
* All rights reserved.                     
* 文件名称:test.cpp                     
* 作者:樊露露                    
* 完成日期:2013 年 4 月 16 日                     
* 版本号:v1.0                   
*                     
* 输入描述:无                     
* 问题描述:                  
* 程序输出:
* 问题分析:                    
* 算法设计:略                     
*/         
#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_minus(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<T> &c2){
	Complex<T> c;
	c.real=real+c2.real;
	c.imag=imag+c2.imag;
	return c;
}

template <class T>        
Complex<T> Complex<T>::complex_minus(Complex <T> &c2)        
{        
      Complex <T> c;        
      c.real=real-c2.real;        
      c.imag=imag-c2.imag;        
      return c;        
}        
template <class T>        
Complex<T> Complex<T>::complex_multiply(Complex <T> &c2)          
{        
      Complex <T> c;        
      c.real=real*c2.real-imag*c2.imag;        
      c.imag=imag*c2.real+real*c2.imag;        
      return c;        
}        
      
template <class T>        
Complex<T> Complex<T>::complex_divide(Complex <T> &c2)          
{        
      Complex <T> c;        
      T d=c2.real*c2.real+c2.imag*c2.imag;  
      c.real=(real*c2.real+imag*c2.imag)/d;          
      c.imag=(imag*c2.real-real*c2.imag)/d;        
      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_add(c5);  
	cout<<"c4+c5="; 
	c6.display( ); 
	c6=c4.complex_minus(c5);    
	cout<<"c4-c5=";  
	c6.display( );  
	
	
	c6=c4.complex_multiply(c5);    
	cout<<"c4*c5=";  
	c6.display( );  
	
	
	c6=c4.complex_divide(c5);    
	cout<<"c4/c5=";  
	c6.display( );  
	
	system("pause");
	return 0;
}

抱歉!评论已关闭.