设计、定义并实现Complex类
设计、定义并实现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类的更多相关文章
- 课堂小练习 设计、定义并实现Complex类
定义一个负数类Complex使得下面的代码能够工作.(课本P145) #include<iostream> #include<cmath> using namespace st ...
- 面向对象程序设计(C++)_作业一_设计、定义并实现Complex类
源代码: 运行结果:
- Complex类的设计与改进
Complex类 源码 #include <cmath> #include <iomanip> #include <iostream> #include <s ...
- 【c++ primer, 5e】设计Sales_data类 & 定义改进的Sales_data类
[设计Sales_data类] 1.考虑Sales_data类应该有那些接口. isbn.combine.add.read.print... 2.考虑如何使用这些接口. Sales_data tota ...
- day24:面向对象设计与面向对象编程、类和对象
一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...
- 用C++设计一个不能被继承的类(用私有构造函数+友元函数)
题目:用C++设计一个不能被继承的类. 分析:这是Adobe公司2007年校园招聘的最新笔试题.这道题除了考察应聘者的C++基本功底外,还能考察反应能力,是一道很好的题目. 在Java中定义了关键字f ...
- 选做题:设计并实现一个Book类
目录 题目分析 设计思路 具体代码 测试代码 运行截图 参考资料 题目分析 题目内容 0.设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期 1.这些数据 ...
- 课堂练习Complex类
Complex类 #include<iostream> #include<cmath> using namespace std; class Complex { public: ...
- ItcastOA_设计BaseDao_设计DAO接口和实现类_写DAO实现类中的方法内容
3. 基础功能 3.1. 设计BaseDao接口与BaseDaoImpl类 每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作.例 实体Dao接口实现类 ================= ...
随机推荐
- 3D Slicer中文教程(四)—图像分割
1.数据获取 (1)下载3D Slicer自带的样本数据 (2)选择自由的数据 (3)网上数据库等其他方式下载数据 2.分割工具 Segment Editor是一个用于分割的模块.细分(也称为轮廓)描 ...
- webstorm允许移动端访问本地html页面的方法
- 【原创】大叔经验分享(5)oozie提交spark任务如何添加依赖
spark任务添加依赖的方式: 1 如果是local方式运行,可以通过--jars来添加依赖: 2 如果是yarn方式运行,可以通过spark.yarn.jars来添加依赖: 这两种方式在oozie上 ...
- MongoDB在CentOS上的安装和配置
1. 创建mongodb-org-4.0.repo文件,并放入/etc/yum.repos.d目录下,repo文件内容如下 [mongodb-org-4.0] name=MongoDB Reposit ...
- [C][变量作用域]语句块
概述 C语言作用域有点类似于链式结构,就是下层能访问上层声明的变量,但是上层则不能访问下层声明的变量: #include <stdio.h> #define TRUE 1 int main ...
- 命令制作Mac系统U盘启动
命令 sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Vol ...
- java 根据Url下载对应的文件到指定位置,读txt文件获取url
package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...
- python 2.7 数据结构: 基础面试总结
python中基础的数据类型包括: 1 Number(数字) 2 String(字符串) 3 List(列表) 4 Tuple(元组) 5 set(集合) 6 Pictionary(字典) 按照可变数 ...
- Centos系统中彻底删除Mysql数据库
步骤: 1.输入命令查询系统中已安装的mysql. rpm -qa |grep -i mysql 2.逐个卸载mysql. yum remove 系统显示已安装的mysql 比如:yum remove ...
- 西北地区打不开github的解决办法~
泱泱我大西北,github打不开,的确痛苦的. http://ipaddress.com/ip_lookup/ 先查github.com 可能存在打不开的情况~ 随便找一个web在线代理,就可以查到了 ...