15第六周项目六——复数模板类(1)

来源:互联网 发布:淘宝机器人客户问题 编辑:程序博客网 时间:2024/06/07 22:16

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:李晓凯
 * 完成日期:2015年 4 月 12 日
 * 版 本 号:v1.0
 *
 * 问题描述:(1)要求类成员函数在类外定义。
                    (2)在此基础上,再实现减法、乘法和除法

 * 输入描述:
 * 程序输出:输出两个复数的加、减、乘、除运算值

 */

#include <iostream>using namespace std;template<class T>class Complex{public:    Complex(T r=0,T i=0):real(r),imag(i){};    Complex complex_adds(Complex &c1);    Complex complex_subtract(Complex &c1);    Complex complex_multip(Complex &c1);    Complex complex_divide(Complex &c1);    void display();private:    T real;    T imag;};template<class T>Complex<T> Complex<T>::complex_adds(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_subtract(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_multip(Complex<T> &c2){    Complex<T> 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<T> &c2){    Complex<T> c;    T a;    a=c2.real*c2.real+c2.imag*c2.imag;    c.real=(real*c2.real+imag*c2.imag)/a;    c.imag=(imag*c2.real-real*c2.imag)/a;    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;  //实部和虚部是int型    cout<<"c1=";    c1.display();    cout<<"c2=";    c2.display();    c3=c1.complex_adds(c2);    cout<<"c1+c2=";    c3.display( );    c3=c1.complex_subtract(c2);    cout<<"c1-c2=";    c3.display( );    c3=c1.complex_multip(c2);    cout<<"c1×c2=";    c3.display();    c3=c1.complex_divide(c2);    cout<<"c1/c2=";    c3.display();    cout<<endl;    Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6; //实部和虚部是double型    cout<<"c4=";    c4.display();    cout<<"c5=";    c5.display();    c6=c4.complex_adds(c5);    cout<<"c4+c5=";    c6.display( );    //下面测试减法、乘法和除法    c6=c4.complex_subtract(c5);    cout<<"c4-c5=";    c6.display();    c6=c4.complex_multip(c5);    cout<<"c4×c5=";    c6.display();    c6=c4.complex_divide(c5);    cout<<"c4/c45=";    c6.display();    cout<<endl;    return 0;}



0 0