问题及代码:

/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:number.cpp
*作    者:单昕昕
*完成日期:2015年4月25日
*版 本 号: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+(const Complex &c1,const Complex &c2);friend Complex operator+(const double &d,const Complex &c);friend Complex operator+(const Complex &c,const double &d);//减法拓展运算friend Complex operator-(const Complex &c1,const Complex &c2);friend Complex operator-(const double &d,const Complex &c);friend Complex operator-(const Complex &c,const double &d);//乘法拓展运算friend Complex operator*(const Complex &c1,const Complex &c2);friend Complex operator*(const double &d,const Complex &c);//除法拓展运算friend Complex operator/(const Complex &c1,const Complex &c2);friend Complex operator/(const double &d,const Complex &c);void display();
private:double real;double imag;
};
//下面定义成员函数
//加法拓展运算
Complex operator+(const Complex &c1,const Complex &c2)
{return Complex(c1.real+c2.real,c1.imag+c2.imag);
}
Complex operator+(const double &d,const Complex &c)
{return Complex(c.real+d,c.imag);
}
Complex operator+(const Complex &c,const double &d)
{return Complex(c.real,c.imag+d);
}
//减法拓展运算
Complex operator-(const Complex &c1,const Complex &c2)
{return Complex(c1.real-c2.real,c1.imag-c2.imag);
}
Complex operator-(const double &d,const Complex &c)
{return Complex(c.real-d,c.imag);
}
Complex operator-(const Complex &c,const double &d)
{return Complex(c.real,c.imag-d);
}
//乘法拓展运算
Complex operator*(const Complex &c1,const Complex &c2)
{return Complex(c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c1.imag*c2.real);
}
Complex operator*(const double &d,const Complex &c)
{return Complex(c.real*d,c.imag*d);
}
//除法拓展运算
Complex operator/(const Complex &c1,const 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/(const double &d,const Complex &c)
{return Complex(c.real/d,c.imag/d);
}void Complex:: display()
{cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
//下面定义用于测试的main()函数
int main()
{Complex c1(3,4),c2(5,-10),c3,c4,c5,c6,c7;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();c4=5.27+c1;cout<<"5.27+c1=";c4.display();c5=c2-1.2;cout<<"c2-1.2i=";c5.display();c6=5.27*c1;cout<<"5.27*c1=";c6.display();c7=10.0/c2;cout<<"10.0/c2=";c7.display();return 0;
}

运行结果:

知识点总结:
扩展+、-、*、/运算符的功能完整实现复数类中的运算符重载。

学习心得:

就是在之前复数本身的互相运算中加入了与实数的运算功能。

第7周-项目1-完整实现复数类中的运算符重载-扩展+、-、*、/运算符的功能相关推荐

  1. 第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)

    问题及代码: [项目-实现复数类中的运算符重载] (1)请用类的成员函数,定义复数类重载运算符+.-.*./,使之能用于复数的加减乘除 class Complex { public:Complex() ...

  2. 第十二周-实现复数类中的运算符重载

    /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作    者:李德彪 *完成时间:2016年5月23日 * ...

  3. c++第八周【任务1-2】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  4. c++第八周【任务1-1】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  5. c++第八周【任务1-3】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: ...

  6. 实现复数类中的运算符重载(含有double类型)

    /* * 作 者: 霍雨佳 * 完成日期:2014 年4月15日 * 版 本 号:v1.0 * 问题描述:实现复数类中的运算符重载. * 样例输入: * 样例输出: * 问题分析:一个定义完整的类,是 ...

  7. 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键

    后盾网lavarel视频项目---2.phpstorm显示类中的方法快捷键 一.总结 一句话总结: ctrl + f12 1.npm安装js插件? npm install hdjs 2.phpstor ...

  8. 第十二周项目一-实现复数类中的运算符重载(1)

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...

  9. 实现复数类中的运算符重载

    /* *Copyright   (c)  2016,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者: 武聪 *完成日期:2016年5月31日 *版 ...

最新文章

  1. Gentoo 安装日记 06 (格式化和挂载系统)
  2. 串行通信的波特率高速和低速区别
  3. cdatabase读取excel第一行数据_pandas读取excel数据并对重复数据进行标记或者删除
  4. Java Web-网页基础-HTML基础
  5. java mvc web_JavaWeb MVC
  6. AIX 6.1 连接DS4700,多路径mpio,mpio_get_config -Av 需要打补丁。
  7. 干不过微信,又抢钉钉地盘!中移动砸下 8400 万重做飞信
  8. AIDL Service
  9. 计算机音乐制作前景,计算机音乐制作专业就业前景
  10. OC小实例关于init方法不小心的错误
  11. .net 6 简单使用redis
  12. turbo码java实现_Turbo码的迭代译码算法的设计与软件实现
  13. Java List retainAll方法使用注意事项
  14. matlab打反斜杠,[转载]转义字符 反斜杠
  15. java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z
  16. win7怎么mysql注册表_肿么删除win7的mysql的注册表
  17. 河南大学计算机学院吴哲2008年,计算机与信息工程学院86级校友荣归母校
  18. Oracle 创建表空间,创建表、数据增删改
  19. Petya and Countryside
  20. 小米路由器3c 虚拟服务器,小米路由器3C上不了网怎么办?

热门文章

  1. 前端录屏功能(JS)
  2. ubuntu退出shell终端命令_Ubuntu下,清屏等终端常用命令
  3. 学计算机的整BIM,学习BIM的电脑配置
  4. yshon对讲机如何调频率_对讲机怎样调频率?
  5. 永恒之蓝漏洞(EternalBlue)
  6. 同步助手java_QQ同步助手Java版发布
  7. 逍遥模拟器过检测_BMS选用什么样的电池模拟器
  8. 应届毕业生,是参加校招好,还是自己找工作好?
  9. 普通高中计算机装备标准,福建省普通高中图书馆装备标准.doc
  10. 【从零搭建一个淘宝客公众号01】- 开篇介绍