给学妹改程序
2015-06-12 09:25
260 查看
#include <iostream> #include <cmath> using namespace std; class Complex {public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Complex operator +(Complex &c2); Complex operator -(Complex &c2); Complex operator *(Complex &c2); Complex operator /(Complex &c2); Complex operator ++(); Complex operator ++(int); bool operator <(Complex &c2) { if(sqrt(real*real+imag*imag)<sqrt(c2.real*c2.real+c2.imag*c2.imag)) return true; else return false; } bool operator >(Complex &c2) { if(sqrt(real*real+imag*imag)>sqrt(c2.real*c2.real+c2.imag*c2.imag)) return true; else return false; } bool operator == (Complex &c2) { if(real == c2.real && imag == c2.imag ) return true; else return false; } friend ostream & operator <<(ostream &,Complex &); friend istream & operator >>(istream &,Complex &); void display(); private: double real; double imag; }; Complex Complex::operator+(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } Complex Complex::operator -(Complex &c2) { Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c; } Complex Complex::operator *(Complex &c2) { Complex c; c.real=real*c2.real-imag*c2.imag; c.imag=imag*c2.real+real*c2.imag; return c; } Complex Complex::operator /(Complex &c2) { Complex c; c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(imag*c2.real+real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); return c; } Complex Complex::operator++(int) { Complex c; c.real=real+1; return c; } Complex Complex::operator ++() { real=real+1; return *this; } void compare(Complex c1,Complex c2) { if(c1>c2) { cout<<c1<<">"<<c2<<endl; } else if (c1<c2) { cout<<c1<<"<"<<c2<<endl; } else if (c1 ==c2) { cout<<c1 <<"=="<< c2 <<endl; } } ostream& operator<<(ostream &output,Complex &c) { if(c.real == 0 && c.imag == 0) cout<<"0"; else { if(c.imag>=0) output<<"("<<c.real<<"+"<<c.imag<<"i)"; else output<<"("<<c.real<<c.imag<<"i)"; } return output; } istream& operator>>(istream & input,Complex &c) { cout<<"input real part and imaginary part of complex number:"; input>>c.real>>c.imag; return input; } int main() { Complex c1,c2,c3; cin>>c1>>c2; c3=c1+c2; cout<<c1<<"+"<<c2<<"="<<c3<<endl; c3=c1-c2; cout<<c1<<"-"<<c2<<"="<<c3<<endl; c3=c1*c2; cout<<c1<<"*"<<c2<<"="<<c3<<endl; c3=c1/c2; cout<<c1<<"/"<<c2<<"="<<c3<<endl; cout<<"c1 == "<<c1<<endl; c1++; cout<<"c1++ = "<<c1<<endl; cout<<"c2 == "<<c2<<endl; ++c2; cout<<"++c2 == "<<c2<<endl; compare(c1 ,c2); return 0; }大一的时候逃课太多,关于重载也根本不懂,没想到现在大二了却有学妹求助:哦吧,help!
。想到自己如此风度翩翩怎好意思说出 不!会!两个字,结果改来改去自己还收获不少。。。。。
相关文章推荐
- 矩阵运算函数
- js正则表达式语法
- 用CSS如何实现单行图片与文字垂直居中
- 6-5单独调整通道曲线
- 认识自己——要拒绝
- 直观的几大排序算法理解
- 在Windows XP中对“任务计划”进行疑难解答
- Android之应用开发基础
- 纯CSS实现图片
- linux网络配置相关文件
- kingeditor编辑器修改默认字体以及默认字体大小
- Android studio更新提示网络问题
- ActivityManagerService(四)
- EasyUI DataGrid根据字段动态合并单元格
- JEECG微云快速开发平台
- tomcat启动web项目时候突然卡住
- Multi-Thread
- [转]Memcache的原理和命中率的总结
- 薏米红豆粥的功效和实践演示
- Java获得正则表达式