第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)
问题及代码:
【项目-实现复数类中的运算符重载】
(1)请用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除
class Complex
{
public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r; imag=i;}Complex operator+(const Complex &c2);Complex operator-(const Complex &c2);Complex operator*(const Complex &c2);Complex operator/(const Complex &c2);void display();
private:double real;double imag;
};
//下面定义成员函数//下面定义用于测试的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();return 0;
}
(2)请用类的友元函数,而不是成员函数,再次完成上面提及的运算符的重载;
/*Copyright(c)2016,烟台大学计算机与控制工程学院All rights reserced文件名称:test.cpp作 者:蔡汝佳完成日期:2016年6月2日版 本 号: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+(const Complex &c1,const Complex &c2);friend Complex operator-(const Complex &c1,const Complex &c2);friend Complex operator*(const Complex &c1,const Complex &c2);friend Complex operator/(const Complex &c1,const Complex &c2);void display();
private:double real;double imag;
};
//下面定义成员函数
Complex operator+(const Complex &c1,const Complex &c2)
{Complex c;c.real=c1.real+c2.real;c.imag=c1.imag+c2.imag;return c;
}
Complex operator-(const Complex &c1,const Complex &c2)
{Complex c;c.real=c1.real-c2.real;c.imag=c1.imag-c2.imag;return c;
}
Complex operator*(const Complex &c1,const 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/(const Complex &c1,const 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;
}void Complex::display()
{cout<<"("<<real<<","<<imag<<")"<<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();return 0;
}
运行结果:
知识点总结:
用友元函数实现运算符重载
学习心得:
//复数相加: (a+bi)+(c+di)=(a+c)+(b+d)i.
//复数相减:(a+bi)-(c+di)=(a-c)+(b-d)i.
//复数相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.
//复数相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i
第十二周上机实践项目 项目1-实现复数类中的运算符重载 (2)相关推荐
- 第7周-项目1-完整实现复数类中的运算符重载-扩展+、-、*、/运算符的功能
问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:number.cpp *作 者:单昕昕 *完成日期:20 ...
- 第十二周-实现复数类中的运算符重载
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李德彪 *完成时间:2016年5月23日 * ...
- c++第八周【任务1-2】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...
- c++第八周【任务1-1】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...
- c++第八周【任务1-3】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: ...
- 第十二周项目一-实现复数类中的运算符重载(3)
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...
- 第十二周项目一-实现复数类中的运算符重载(2)
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...
- 第十二周项目一-实现复数类中的运算符重载(1)
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月15日*版 本 号:v1. ...
- 第八周--项目1--实现复数类中的运算符重载
/* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者:王静 * 完成日期:2013 年 4 月 24 日 * 版 本 号:v1 ...
最新文章
- JavaScript初学者编程题(12)
- ckeditor_4.5.10_full,ckfinder_aspnet_2.6.2,插件使用
- 当汇错款时该怎么办?
- 让Windows7 x64 IIS7支持32位应用程序
- SYSTEM32 下的几乎所有文件的简单说明
- java nbsp_引用了实体 nbsp
- (第十一章)数据表的增删改
- DXUT框架剖析(2)
- bzoj 4653: [Noi2016]区间(尺取+线段树)
- PS小技巧 | 怎么又下雨了
- java私有 公开 保护_性能与设计相关的java中的私有/受保护方法
- matlab建立子程序,怎么实现matlab子程序的放置以及调用
- 博弈算法实现简单五子棋
- 爬取4399网站的图片
- Vue elementUI中的Breadcrumb面包屑
- 基于 arduino 的两轮自行车
- 阿里云ACP云计算对象存储OSS例题
- android gallary demo
- java date before,Java中的LocalDate isBefore()方法
- 多项式回归(PolynomialFeatures)
热门文章
- Hadoop_day04学习笔记
- PAT (Advanced Level) Practice 1053 Path of Equal Weight (30 分)
- 将社交玩法玩到极致的连咖啡,如何让咖啡成为日常消费?
- 亚马逊本土化视频拍摄-合规化的白帽运营玩法
- Vue3.2(语法糖写法) 入门推荐
- 2019年如何抓住社交电商的风口
- nslookup网络管理命令行工具
- BZOJ - 3884 上帝与集合的正确用法
- Guava之RateLimiter限流
- QT- label实现滚动字幕 (跑马灯)效果 -像素级