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
- 15第六周项目六——复数模板类(1)
- 第六周项目六——复数模板类
- 第六周项目六:复数模板类(1)
- 第六周 项目六(1):复数模板类
- 第六周 项目六--复数模板类(1)
- 第六周项目六复数模板类(1)
- 第六周项目六——复数模板类(1)
- 第六周项目六 复数模板类
- 第六周项目六--复数模板类
- 15第六周项目六——复数函数模板(2)
- 第六周——项目六 复数模板类(一)
- 第六周项目六——复数模板类(2)
- 第六周项目六——复数模板类(2)
- 第六周项目六 复制模板类(复数类)
- 第六周项目六:复数模板类(2)
- 第六周项目六 复数模板类(3)
- 第六周 项目六(3):复数模板类
- 第六周 项目六--复数模板类(3)
- 深度学习方法:受限玻尔兹曼机RBM(二)网络模型
- JavaScript规范
- css3中边框的4种样式
- mongodb系列之四:java高级查询
- Delphi移动平台UI自定义控件OrangeUI 1.47 XE7、XE8版正式发布
- 15第六周项目六——复数模板类(1)
- nil,Nil,NULL,NSNull的理解
- 米老师谆谆教导---2015.4.12
- KMP代码及思路解析
- c++
- Qt4.8.6 Embedded Linux 的编译与移植
- 简单工厂模式(一)
- mongodb系列之五:java分页优化
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序