第七周项目 1 实现复数类中的运算符重载(3)
来源:互联网 发布:js如何返回顶部 编辑:程序博客网 时间:2024/06/04 23:22
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:main.cpp * 作 者 :韩娟 * 完成日期 :2015年4月30日 * 版 本 号 :v1.0 ** 问题描述 :定义一个定义完整的类(是可以当作独立的产品发布,成为众多项目中的“基础工程”)。这样的类在(2)的基础上,扩展+、-、*、/运算符的功能,使之能与double型数据进行运算。设Complex c; double d; c+d和d+c的结果为“将d视为实部为d的复数同c相加”,其他-、*、/运算符类似 * 输入描述 : 略 * 程序输出 :按要求输出 */ #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+(Complex &c1,double d2); friend Complex operator+(double d1,Complex &c2); friend Complex operator-(Complex &c1,double d2); friend Complex operator-(double d1,Complex &c2); friend Complex operator*(Complex &c1,double d2); friend Complex operator*(double d1,Complex &c2); friend Complex operator/(Complex &c1,double d2); friend Complex operator/(double d1,Complex &c2); void display();private: double real; double imag;};//下面定义成员函数Complex operator+(Complex &c1,Complex &c2){ Complex c; c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c;}Complex operator-(Complex &c1,Complex &c2){ Complex c; c.real=c1.real-c2.real; c.imag=c1.imag-c2.imag; return c;}Complex operator*(Complex &c1,Complex &c2){ Complex c; c.real=c1.real*c2.real-c1.imag*c2.imag; c.imag=c1.imag*c2.real+c1.real*c2.imag; return c;}Complex operator/(Complex &c1,Complex &c2){ Complex c; c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); return c;}Complex operator+(Complex &c1,double d2){ Complex c; c.real=c1.real+d2; c.imag=c1.imag; return c;}Complex operator+(double d1,Complex &c2){ Complex c; c.real=c2.real+d1; c.imag=c2.imag; return c;}Complex operator-(Complex &c1,double d2){ Complex c; c.real=c1.real-d2; c.imag=c1.imag; return c;}Complex operator-(double d1,Complex &c2){ Complex c; c.real=c2.real-d1; c.imag=c2.imag; return c;}Complex operator*(Complex &c1,double d2){ Complex c(d2,0); return c1*c;}Complex operator*(double d1,Complex &c2){ Complex c(d1,0); return c*c2;}Complex operator/(Complex &c1,double d2){ Complex c(d2,0); return c1/c;}Complex operator/(double d1,Complex &c2){ Complex c(d1,0); return c/c2;}void Complex::display(){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}//下面定义用于测试的main()函数int main(){ Complex c1(3,4),c2(5,-10),c3; double d=11; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); cout<<"d="<<d<<endl<<endl; cout<<"下面是重载运算符的计算结果: "<<endl; c3=c1+c2; c3.display(); cout<<"c1+d="; (c1+d).display(); cout<<"d+c1="; (d+c1).display(); c3=c1-c2; cout<<"c1-c2="; c3.display(); cout<<"c1-d="; (c1-d).display(); cout<<"d-c1="; (d-c1).display(); c3=c1*c2; cout<<"c1*c2="; c3.display(); cout<<"c1*d="; (c1*d).display(); cout<<"d*c1="; (d*c1).display(); c3=c1/c2; cout<<"c1/c2="; c3.display(); cout<<"c1/d="; (c1/d).display(); cout<<"d/c1="; (d/c1).display(); return 0;}
知识点总结 :
写这个的时候要记得细心一点,比如c1+c2和c2+c1是不一样的,都要分别定义,不然输出的时候会有麻烦。
学习心得 :
看似很简单的一个用户界面,可是程序员要想到的是很多很多的。
0 0
- 第七周项目 1 实现复数类中的运算符重载(3)
- 第七周项目 1 实现复数类中的运算符重载(1)
- 第七周项目1——实现复数类中的运算符重载(成员函数)
- 第七周项目 1 实现复数类中的运算符重载(2)
- 第七周项目一实现复数类中的运算符重载1
- 第七周项目1——实现复数类中的运算符重载(友元函数)
- 第八周项目1-3:实现复数类中的运算符重载-完整的复数类
- 项目1-实现复数类中的运算符重载 3
- 项目1-实现复数类中的运算符重载(3)
- 第八周 项目1-实现复数类中的运算符重载(3)
- 第8周项目1-实现复数类中的运算符重载(3)
- 第8周项目1(3)实现复数类中的运算符重载(拓展)
- 第八周项目1-实现复数类中的运算符重载(3)
- 第12周项目1—实现复数类中的运算符重载 (3)
- 第十二周上机实践项目1(3):实现复数类中的运算符重载
- 第八周项目1——3 实现复数类中的运算符重载(实数与复数的计算)
- 第八周项目一 实现复数类中的运算符重载-(1)定义复数类重在运算符+-*/
- 第二学期第八周项目1--实现复数类中的运算符重载(两个复数运算)
- 使用 CocoaPods 的国内镜像
- 打造个人物联网 Mobile Beacon让全世界做伙伴
- 网口问题-原因
- 线程组ThreadGroup
- MySQL5.6中设置relay_log_info_repository 为TABLE
- 第七周项目 1 实现复数类中的运算符重载(3)
- 蓝桥杯的征程继续!!!!征战北京全国总决赛
- C++ GDI+ Region区域
- 犀牛——第2章词法结构
- tomcat ServletContextListener contextDestroyed 没有执行
- BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3)
- POJ 3111(二分)
- scheme心得(2) 从列表到流,高阶函数,惰性计算
- gdb调试Segmentation fault (core dumped)