第八周【项目1-实现复数类中的运算符重载】
来源:互联网 发布:易安卓播放器源码 编辑:程序博客网 时间:2024/04/30 06:17
问题及代码:
/* *Copyright (c) 2014,烟台大学计算机学院 *ALL right reserved *文件名:学生成绩统计 *作者;童宇 *完成日期:2015 年 4 月 25 日 *版本号v1.0 *问题描述:(3)定义一个定义完整的类(是可以当作独立的产品发布,成为众多项目中的“基础工程”)。 这样的类在(2)的基础上,扩展+、-、*、/运算符的功能,使之能与double型数据进行运算。 设Complex c; double d; c+d和d+c的结果为“将d视为实部为d的复数同c相加”,其他-、*、/运算符类似。 *输入描述: *程序输出: */#include <iostream>using namespace std;class Complex{private: double real; double imag;public: Complex() { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } void setreal(double a) { real=a; } void setimag(double b) { imag=b; } double getreal() { return real; } double getimag() { return imag; } void display();};Complex operator+(Complex &c1, Complex &c2){ Complex c; double a,b; a=c1.getreal()+c2.getreal(); c.setreal(a); b=c1.getimag()+c2.getimag(); c.setimag(b); return 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-(Complex &c1, Complex &c2){ Complex c; double a,b; a=c1.getreal()-c2.getreal(); c.setreal(a); b=c1.getimag()-c2.getimag(); c.setimag(b); return 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*(Complex &c1, Complex &c2){ Complex c; double a,b; a=c1.getreal()*c2.getreal(); c.setreal(a); b=c1.getimag()*c2.getimag(); c.setimag(b); return 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/(Complex &c1, Complex &c2){ Complex c; double a,b; a=c1.getreal()/c2.getreal(); c.setreal(a); b=c1.getimag()/c2.getimag(); c.setimag(b); return 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;}void Complex::display(){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}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; 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(); c3=c1/c2; cout<<"c1/c2="; c3.display(); cout<<"c1/d="; (c1/d).display(); cout<<"d/c1="; (d/c1).display(); return 0;}
运行结果:
0 0
- 第八周项目1-3:实现复数类中的运算符重载-完整的复数类
- 第八周项目1-复数类中的运算符重载
- 第八周项目1-复数类中的运算符重载
- 第八周项目一 实现复数类中的运算符重载-(1)定义复数类重在运算符+-*/
- 第二学期第八周项目1--实现复数类中的运算符重载(两个复数运算)
- 第二学期第八周项目1--实现复数类中的运算符重载(两个复数的运算友元)
- 第八周项目1-实现复数类中的运算符重载(类的成员函数)
- 第八周项目1-1-实现复数类中的运算符重载
- 第八周项目1实现复数类中的运算符重载(1)
- 第八周 项目1-实现复数类中的运算符重载(1)
- 第八周项目1-1:实现复数类中的运算符重载-成员函数
- 第八周项目1-实现复数类中的运算符重载(1)
- 2013第八周上机任务【项目1 实现复数类中的运算符重载】
- 第八周项目一任务1——实现复数类中的运算符重载
- 第八周项目1 实现复数类中的运算符重载
- 第八周--项目1--实现复数类中的运算符重载
- 第八周 项目1 实现复数类中的运算符重载
- 第八周【项目1】实现复数类中的运算符重载
- 文件夹类Directory的常用方法
- hdu 2433 Travel(枚举删掉的边求取最短路)
- Hadoop分布式文件系统:架构和设计要点
- 山东省第一届ACM大学生程序设计竞赛(原题) 回顾 4.18
- OC中简单内存开辟 初始化
- 第八周【项目1-实现复数类中的运算符重载】
- 疯狂JAVA之学习笔记(5)----------注释
- 基于protobuf的RPC实现
- shell条件判断之test命令实例详解
- 树分治(hdu5016-2014西安现场赛)
- UITableView---初始化
- 深入剖析jsp的工作原理
- SQL with as 的用法 以及递归函数的写法
- 神经网络与机器学习导言笔记——网络结构与知识表示