设计、定义并实现Complex类

 #include <iostream>
#include <cmath>
using namespace std;
class MyComplex
{
public:
MyComplex(double aa=,double bb=);
MyComplex(MyComplex &pp);
void add(MyComplex tt);
void show();
double qumo();
private:
double reality;
double imaginary;
};
MyComplex::MyComplex(double aa,double bb)
{
reality=aa;
imaginary=bb;
}
MyComplex::MyComplex(MyComplex &pp)
{
reality=pp.reality;
imaginary=pp.imaginary;
}
void MyComplex::add(MyComplex tt)
{
reality+=tt.reality;
imaginary+=tt.imaginary;
}
void MyComplex::show()
{
cout<<reality<<"+"<<imaginary<<"i"<<endl;
}
double MyComplex::qumo()
{
double mo;
mo=sqrt(reality*reality+imaginary*imaginary);
return mo;
}
int main ()
{
double result;
MyComplex c1(,);
MyComplex c2(4.5);
MyComplex c3(c1);
c1.add(c2);
c1.show();
result=c3.qumo();
cout<<result<<endl;
return ;
}

输出结果为复数c1和c2的和,以及c3的模数。

由于这个类里的加法函数和常规习惯有出入,所以修改为下面的重载函数形式:

 #include <iostream>
#include <cmath>
using namespace std;
class MyComplex
{
public:
MyComplex(double aa=,double bb=);
MyComplex(MyComplex &pp);
void add(MyComplex tt,MyComplex rr);
void add(MyComplex tt);
void show();
double qumo();
private:
double reality;
double imaginary;
};
MyComplex::MyComplex(double aa,double bb)
{
reality=aa;
imaginary=bb;
}
MyComplex::MyComplex(MyComplex &pp)
{
reality=pp.reality;
imaginary=pp.imaginary;
}
void MyComplex::add(MyComplex tt,MyComplex rr)
{
reality=tt.reality+rr.reality;
imaginary=tt.imaginary+rr.imaginary;
}
void MyComplex::add(MyComplex tt)
{
reality+=tt.reality;
imaginary+=tt.imaginary;
}
void MyComplex::show()
{
cout<<reality<<"+"<<imaginary<<"i"<<endl;
}
double MyComplex::qumo()
{
double mo;
mo=sqrt(reality*reality+imaginary*imaginary);
return mo;
}
int main ()
{
double result;
MyComplex c1(,);
MyComplex c2(4.5);
MyComplex c3(c1);
MyComplex c4;
c4.add(c1,c2);
c1.add(c2);
c4.show();
c1.show();
result=c3.qumo();
cout<<result<<endl;
return ;
}

一种是把结果保存在加数c1中,另一种是保存在另一个复数对象c4中。

实验总结:

(1)当要求的操作方式可以改进时可以尝试进行改进。

(2)成员函数的形参个数 是否需要默认形参值 是否需要返回值 返回值类型 都需要结合函数的作用适当选择。

设计、定义并实现Complex类的更多相关文章

  1. 课堂小练习 设计、定义并实现Complex类

    定义一个负数类Complex使得下面的代码能够工作.(课本P145) #include<iostream> #include<cmath> using namespace st ...

  2. 面向对象程序设计(C++)_作业一_设计、定义并实现Complex类

    源代码: 运行结果:

  3. Complex类的设计与改进

    Complex类 源码 #include <cmath> #include <iomanip> #include <iostream> #include <s ...

  4. 【c++ primer, 5e】设计Sales_data类 & 定义改进的Sales_data类

    [设计Sales_data类] 1.考虑Sales_data类应该有那些接口. isbn.combine.add.read.print... 2.考虑如何使用这些接口. Sales_data tota ...

  5. day24:面向对象设计与面向对象编程、类和对象

    一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...

  6. 用C++设计一个不能被继承的类(用私有构造函数+友元函数)

    题目:用C++设计一个不能被继承的类. 分析:这是Adobe公司2007年校园招聘的最新笔试题.这道题除了考察应聘者的C++基本功底外,还能考察反应能力,是一道很好的题目. 在Java中定义了关键字f ...

  7. 选做题:设计并实现一个Book类

    目录 题目分析 设计思路 具体代码 测试代码 运行截图 参考资料 题目分析 题目内容 0.设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期 1.这些数据 ...

  8. 课堂练习Complex类

    Complex类 #include<iostream> #include<cmath> using namespace std; class Complex { public: ...

  9. ItcastOA_设计BaseDao_设计DAO接口和实现类_写DAO实现类中的方法内容

    3. 基础功能 3.1. 设计BaseDao接口与BaseDaoImpl类 每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作.例 实体Dao接口实现类 ================= ...

随机推荐

  1. git知识总结-1.git基础之基本术语

    1.前言 git是一种分布式版本管理工具,本文主要是通过阅读博客中几篇讲述git的优秀文章,并对文章进行整理.提炼总结得出一份git的说明文档. 本文档介绍了git的基本原理及常用操作,目标是通过阅读 ...

  2. Docker安装MySQL数据库

    本文翻译自:MySQL Docker Containers:Understanding the basics 1.下载MySQL镜像 docker pull mysql:5.6 如此便可以下载最新的M ...

  3. 【原创】大数据基础之ElasticSearch(4)es数据导入过程

    1 准备analyzer 内置analyzer 参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis- ...

  4. linux在telnet情况下root登录提示login incorrect

    root登录时总是提示 login incorrect SSH可以登录 别的用户也可以通过telnet登录 唯独root不可以   解决方法: vi /etc/pam.d/login # auth r ...

  5. Java_Scanner和System类

    目录 Scanner类(util包) System类(lang包) Scanner类(util包) Scanner类是一个不可变的类,实现了迭代器接口.一个简单的文本扫描器,可以使用正则表达式解析原始 ...

  6. POI导出数据以Excel的方式录入,下载

    简单描述:把数据导出到excel文件中.过程:获取要导出的数据列表(list),创建excel文件,数据放入. 代码: //html代码 <div class="btn-group&q ...

  7. 【python】flask+nginx配置

    背景信息 有wordpress服务A 有flask服务B, gunicorn启动,8个进程 用nginx代理,实现访问A然后跳转到B 问题 flask服务B上有文件上传操作,用nginx后发现无法上传 ...

  8. 数据库备份和还原(固定IP版)

    使用方法: 1.首次使用双击export.bat进行备份数据库:2.以后每次使用双击setup.bat进行还原数据库: 备注:如果数据库内容有变,需要重新执行export.bat进行备份数据库. ex ...

  9. 为什么用Flow

    Flow 是 facebook 出品的 JavaScript 静态类型检查工具.Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码. flow的工作方式? ...

  10. python 几个简单算法详解

    一.冒泡排序 基本思想:它的思路很有特点循环,两两向后比较.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数 ...