第八周项目1——3 实现复数类中的运算符重载(实数与复数的计算)
2015-04-22 16:59
381 查看
/* *Copyright (c) 2014,烟台大学计算机学院void change(int a[8][8]); *All rights reserved. *文件名称:main.cpp *作者:苏强 *完成日期:2015年4月22日 *版本号:v1.0 * *问题描述:利用运算符重载计算复数的计算 */ #include<iostream> using namespace std; class Complex { public: Complex() { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } friend Complex operator+(Complex &c1,Complex &c2); friend Complex operator-(Complex &c1,Complex &c2); friend Complex operator*(Complex &c1,Complex &c2); friend Complex operator/(Complex &c1,Complex &c2); friend Complex operator+(double &i,Complex &c2); friend Complex operator-(double &i,Complex &c2); friend Complex operator*(double &i,Complex &c2); friend Complex operator/(double &i,Complex &c2); friend Complex operator+(Complex &c1,double &i); friend Complex operator-(Complex &c1,double &i); friend Complex operator*(Complex &c1,double &i); friend Complex operator/(Complex &c1,double &i); void display(); private: double real; double imag; }; //下面定义成员函数 Complex operator+(Complex &c1,Complex &c2) { return Complex (c1.real+c2.real,c1.imag+c2.imag); } Complex operator-(Complex &c1,Complex &c2) { return Complex (c1.real-c2.real,c1.imag-c2.imag); } Complex operator*(Complex &c1,Complex &c2) { return Complex (c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c1.imag*c2.real); } Complex operator/(Complex &c1,Complex &c2) { return Complex (c1.real*c2.real-c1.imag*(-c2.imag)/(c2.real*c2.real+c2.imag*c2.imag),c1.real*(-c2.imag) +c1.imag*c2.real/(c2.real*c2.real+c2.imag*c2.imag)); } Complex operator+(double &i,Complex &c2) { return Complex (i+c2.real,c2.imag); } Complex operator+(Complex &c1,double &i) { return Complex (i+c1.real,c1.imag); } Complex operator-(double &i,Complex &c2) { return Complex (i-c2.real,c2.imag); } Complex operator-(Complex &c1,double &i) { return Complex (i-c1.real,c1.imag); } Complex operator*(double &i,Complex &c2) { return Complex (i*c2.real,i*c2.imag); } Complex operator*(Complex &c1,double &i) { return Complex (i*c1.real,i*c1.imag); } Complex operator/(double &i,Complex &c2) { return Complex (i*c2.real/(c2.real*c2.real+c2.imag*c2.imag),i*c2.imag/(c2.real*c2.real+c2.imag*c2.imag)); } Complex operator/(Complex &c1,double &i) { return Complex (c1.real/i,c1.imag/i); } void Complex::display() { if(imag>0) cout<<real<<"+"<<imag<<"i"<<endl; else cout<<real<<imag<<"i"<<endl; } //下面定义用于测试的main()函数 int main() { Complex c1(3,4),c2(5,-10),c3; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); c3=c1+c2; cout<<"c1+c2="; c3.display(); c3=c1-c2; cout<<"c1-c2="; c3.display(); c3=c1*c2; cout<<"c1*c2="; c3.display(); c3=c1/c2; cout<<"c1/c2="; c3.display(); double n=5; cout<<"n+c2="; c3=n+c2; c3.display(); cout<<"c2+n="; c3=c2+n; c3.display(); cout<<"n-c2="; c3=n-c2; c3.display(); cout<<"c2-n="; c3=c2-n; c3.display(); cout<<"n*c2="; c3=n*c2; c3.display(); cout<<"c2*n="; c3=c2*n; c3.display(); cout<<"n/c2="; c3=n/c2; c3.display(); cout<<"c2/n="; c3=c2/n; c3.display(); return 0; }
相关文章推荐
- 第八周项目1-3:实现复数类中的运算符重载-完整的复数类
- 第二学期第八周项目1--实现复数类中的运算符重载(两个复数运算)
- 第二学期第八周项目1--实现复数类中的运算符重载(两个复数的运算友元)
- 第十二周项目1-实现复数类中的运算符重载(1.3实现复数与实数相加减乘除)
- 第八周项目:实现复数类中的运算符重载(1)
- 第八周项目1-1:实现复数类中的运算符重载-成员函数
- 第八周 课后实践:项目一——实现复数类中的运算符重载(3)
- 第八周 项目一--实现复数类中的运算符重载(3)扩展运算符功能
- 第八周项目1-实现复数类中的运算符重载
- 第八周上级项目1 实现复数类中的运算符重载
- 第八周 项目一(3):实现复数类中的运算符重载(扩充类)
- 15第八周项目一——实现复数类中的运算符重载(成员函数)
- 2014-第八周项目一--用成员函数实现复数的运算符重载
- 第八周上机实践项目——实现复数类中的运算符重载(1)
- 第八周项目一 实现复数类中的运算符重载-(1)定义复数类重在运算符+-*/
- 第八周项目1-实现复数类中的运算符重载
- 第二学期第八周项目1--实现复数类中的运算符重载
- 第八周 项目1-实现复数类中的运算符重载(1)
- 第八周上机实践项目1——实现复数类中的运算符重载(3)
- 第八周项目1-1-实现复数类中的运算符重载