使用模板类实现复数的四则运算
来源:互联网 发布:aoi编程 编辑:程序博客网 时间:2024/05/05 07:34
复数:是指能写成如下形式的数a+bi,这里a和b是实数,i是虚数单位, i*i = -1
在复数 a+bi 中 a为复式的实部 , b为复数的虚部
复数的四则运算:
(a+bi)+ (c+di)= (a+c)+ (b+d)i;
(a+bi)- (c+di) = (a-c) + (b-d)i;
(a+bi)* (c+di) = (ac-bd)+ (ad+bc)i;
(a+bi)/ (c+di)= ((ac+bd)+(bc-ad)i) / (c*c+d*d);
程序代码:
#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 &c2)//复数的加法{ Complex c3; c3.real = real + c2.real; c3.imag = imag + c2.imag; return c3;}template<class T>Complex<T> Complex<T>::complex_minus(Complex &c2)//复数的减法{ Complex c3; c3.real = real - c2.real; c3.imag = imag - c2.imag; return c3;}template<class T>Complex<T> Complex<T>::complex_multiply(Complex &c2)//复数的乘法{ Complex c3; c3.real = real*c2.real - imag * c2.imag; c3.imag = real*c2.imag + imag * c2.real; return c3;}template<class T>Complex<T> Complex<T>::complex_divide(Complex &c2)//复数的除法{ Complex c3; c3.real = (real * c2.real + imag * c2.imag) / (c2.real*c2.real + c2.imag * c2.imag); c3.imag = (imag * c2.real - real * c2.imag) / (c2.real*c2.real + c2.imag * c2.imag); return c3;}template<class T>void Complex<T>::display( )//显示复数{ if(imag > 0)//当虚部大于0时 { cout<<real<<'+'<<imag<<'i'; } else if(0 == imag)//当虚部等于0时 { cout<<real; } else//当虚部小于0时 { cout<<real<<imag<<'i'; }}int main( ){ Complex<double> Cmp1(8,-2), Cmp2(7,10), Cmp3; //两个复数相加 Cmp1.display(); cout<<" + "; Cmp2.display(); cout<<" = "; Cmp3 = Cmp1.complex_add(Cmp2); Cmp3.display(); cout<<endl; //两个复数相减 Cmp1.display(); cout<<" - "; Cmp2.display(); cout<<" = "; Cmp3 = Cmp1.complex_minus(Cmp2); Cmp3.display(); cout<<endl; //两个复数相乘 Cmp1.display(); cout<<" * "; Cmp2.display(); cout<<" = "; Cmp3 = Cmp1.complex_multiply(Cmp2); Cmp3.display(); cout<<endl; //两个复数相除 Cmp1.display(); cout<<" / "; Cmp2.display(); cout<<" = "; Cmp3 = Cmp1.complex_divide(Cmp2); Cmp3.display(); cout<<endl; system("pause");}
执行结果:
1 0
- 使用模板类实现复数的四则运算
- 复数四则运算--类模板实现
- 第7周任务3(使用类模板,实现复数的四则运算)
- 复数的四则运算(模板类)
- 复数类的四则运算
- 给出复数,实现复数的四则运算
- 使用运算符重载实现复数的四则运算
- 复数类完整实现 + 四则运算符重载
- 复数模板类的简单实现
- 复数的四则运算
- 复数的四则运算
- 复数的四则运算
- 复数四则运算-c++代码实现
- 实现复数的加减乘除四则运算的C#类(已测成功)
- 数据结构实验之实现两个复数的四则运算
- 在复数类模板中使用友元函数实现复数相加
- 数据结构之 复数的四则运算
- 数据结构之复数的四则运算
- Java之WeakReference与SoftReference使用讲解
- IE11 for Windows 7 Enterprise With SP1 故障
- Centos中安装code blocks
- 查看Oracle当前用户下的信息(用户,表视图,索引...)
- 每日一得--详细介绍java中的数据结构
- 使用模板类实现复数的四则运算
- 利用commons-net-3.2.jar实现ftp文件上传功能
- 管理员表的设计;webservice用于内网提供服务端安全性较高
- 免安装版tomcat在windows和linux环境下的JVM设置
- 设计模式(六):原型模式——深复制
- 使用php写的算法
- 处理CFormView类 -- 保护类型的构造函数和Create函数(讨厌的东西!!!)
- Unity3D的断点调试功能
- java计算时间差