第七周项目5-复数类模板

来源:互联网 发布:柏林陆军大学 知乎 编辑:程序博客网 时间:2024/06/06 14:14
/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:田成琳*完成日期:2014  年 4 月 8 日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述:无*问题描述:复数类模板          (1)要求类成员函数在类外定义。        (2)在此基础上,再实现减法、乘法和除法*程序输出:- -*问题分析:*算法设计:*/#include<iostream>using namespace std;template<class A>  //声明类模板Aclass Complex{public:Complex(){a=0;b=0;}Complex(A x,A y){a=x;b=y;}Complex complex_add(Complex&);//成员函数,返回类型为ComplexComplex complex_dec(Complex&);Complex complex_mul(Complex&);Complex complex_div(Complex&);void display();private:A a,b;};int main(){    Complex<int> c1(3,4),c2(5,-10),c3;   //实部和虚部是int型    c3=c1.complex_add(c2);    cout<<"c1+c2=";    c3.display();    c3=c1.complex_dec(c2);      cout<<"c1-c2=";    c3.display();    c3=c1.complex_mul(c2);      cout<<"c1*c2=";    c3.display();c3=c1.complex_div(c2);      cout<<"c1/c2=";    c3.display();    Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6; //实部和虚部是double型    c6=c4.complex_add(c5);    cout<<"c4+c5=";    c6.display();    //下面测试减法、乘法和除法 c6=c4.complex_dec(c5);       cout<<"c4-c5=";     c6.display();     c6=c4.complex_mul(c5);       cout<<"c4*c5=";     c6.display(); c6=c4.complex_div(c5);       cout<<"c4/c5=";     c6.display();    return 0;}template<class A>Complex<A> Complex<A>::complex_add(Complex<A> &c2)     {  //成员函数的类外定义。Complex<A> c;      c.a=a+c2.a;  c.b=b+c2.b;  return c;  }  template<class A>     Complex<A> Complex<A>::complex_dec(Complex<A> &c2)     {  Complex<A> c;      c.a=a-c2.a;  c.b=b-c2.b;  return c;  }  template <class A>      Complex<A> Complex<A>::complex_mul(Complex <A> &c2)        {            Complex <A> c;            c.a=a*c2.a-b*c2.b;            c.b=b*c2.a+a*c2.b;            return c;      }    template <class A>      Complex<A> Complex<A>::complex_div(Complex <A> &c2)        {            Complex <A> c;            A d=c2.a*c2.a+c2.b*c2.b;      c.a=(a*c2.a+b*c2.b)/d;             c.b=(b*c2.a-a*c2.b)/d;            return c;      }  template <class A> void Complex<A>::display( )     {        cout<<a<<"+"<<b<<"i"<<endl;  }

运行结果:

心得体会:真麻烦。两节课进去了。。。

0 0
原创粉丝点击