C++定义复数类(Complex)
题目描述:
定义一个复数类Complex,使得下面的代码能够工作:
Complex c1(3, 5); //用复数3+5i初始化c1
Complex c2 = 4.5; //用实参4.5作为实部初始化c2,虚部为0
c1.add(c2); //将c1与c2相加,结果保存在c1中
c1.show(); //将c1输出(这时结果应该是7.5+5i)
输入格式:
每组输入2行,第一行是空格隔开的实部、虚部,用于初始化第一个复数。第二行是一个实数,用于初始化第二个复数。
输出格式:
使用成员函数show()输出第一个复数和第二个复数相加的结果
输入样例
3 5
4.5
3.6 0
4
0 5.6
-9.7
12 -9.5
-15
3.4 5
-3.4
0 0
0
输出样例 :
7.5+5i
7.6
-9.7+5.6i
-3-9.5i
5i
0
分析思路:
初始化的过程便是要我们自己来定义两个构造函数(构造函数可以用来初始化参数),接着add函数中有点巧妙的是用c1中来调用类内的add函数其中add内的输入参数是Complex中的一个构造函数(这里的c2).紧接着对c1进行一个成员函数(show)调用即可。
另外需要注意的是,在show函数中,需要留意实数,虚数的不同情况的讨论,以及“+”或者“-”符号表示。
代码展示:
#include<iostream>
using namespace std;
class Complex {
private:
double shi, xu;
public:
Complex(double a, double b);//有两个初始化值的构造函数
Complex(double c);//只初始化一个值的构造函数
void add(Complex J);//add函数定义
void show();//函数的结果输出
};
//两个初始化值的构造函数,实部和虚部
Complex::Complex(double a, double b) {
shi = a;
xu = b;
}
//只初始化实部
Complex::Complex(double c) {
shi = c;
}
void Complex::add(Complex J) {
shi = shi + J.shi;
xu = xu;
}
void Complex::show() {
if (shi == 0 && xu == 0) {
cout << 0 << endl;
}
else if (shi == 0) {
cout << xu << "i" << endl;
}
else if (xu == 0) {
cout << shi << endl;
}
else {
if (xu > 0) {
cout << shi << "+" << xu << "i" << endl;
}
else if (xu < 0) {
cout << shi << xu << "i" << endl;
}
}
}
int main() {
double x, y, z;
while (cin >> x >> y >> z) {
Complex c1(x, y);//这里是调用两个初始化值的构造函数语法
Complex c2(z);//这里是调用一个初始化值的构造函数语法
c1.add(c2);//这里是利用c1类来调用参数是c2的add成员函数,c1提供一个shi加上c2的一个shi合成一个新的shi
c1.show();//结果输出
}
}
运行结果展示:
小小感悟:
其实类就是一个封装起来的一个类型,其中有一些语法需要我们注意。main函数里面定义Complex c1这个c1就是类的一个名字,在c1中我们仍可以利用它来作为参数基础调用类内成员函数。其实类是一个非常好用的小知识点,用了类我们可以通过函数名来表示用途,用的人也不用在意函数具体怎么实现,直接用就可以了,而且主函数可以非常简洁。
C++定义复数类(Complex)相关推荐
- 定义复数类Complex,重载运算符“+”,使之用于复数的加法运算
定义复数类Complex,重载运算符"+",使之用于复数的加法运算.将运算符函数重载为非成员.非友元的普通函数. C++代码实现: #include<iostream> ...
- 利用友元函数与友元类定义复数类,实现基本运算
定义复数类Complex,使用友元,完成复数的加法.减法.乘法.除法运算,以及对复 数的输出. 直接上代码: #include "iostream" using namespace ...
- 复数类 complex
定义复数类Complex,包括两个double型的数据成员real和image,要求对+.-../.+=.-+.=./=.几个运算符进行重载以实现复数的运算,并进行验证. #define _CRT_S ...
- 定义一个复数类Complex,重载运算符+
定义一个复数类Complex,重载运算符"+".使之能用于复数的加法运算,将运算符函数重载为非成员.非友员的普通函数.编写程序求2个复数之和. #include<iostre ...
- 定义一个复数类Complex,重载运算符“+”,
定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.参加运算的两个运算符可以都是类对象.也可以其中一个是整数,顺序任意.例如:c1+c2,i+c1,c1+i ...
- 1、定义一个复数类Complex,使得下面的代码能够工作。 Complex c1(3,5); Complex c2=4.5; c1.add(c2); c1.show();
一.问题描述 1.定义一个复数类Complex,使得下面的代码能够工作. Complex c1(3,5); Complex c2=4.5; c1.add(c2); c1.show(); #includ ...
- 定义一个复数类Complex,重载运算符“+”,“ -”,“*”,“/”使之能用于计算两个复数的加减乘除。
定义一个复数类Complex,重载运算符"+"," -","*","/"使之能用于计算两个复数的加减乘除.运算符重载函数 ...
- 定义一个复数类Complex
3. 定义一个复数类 Complex ,使得代码能够进行下面的工作 (20 分 ) : Complex c1(3, 5); // 用复数 3+5i 初始化 c1 Complex c2 = 4.5; / ...
- 设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个带两
设计复数类 Complex继承于数字类 Number,私有成员变量包括 double类型的实部rea(父类 Number中已定义)和虚部imag,公有成员方法包括两个构造方法(一个不带参数的和一个 ...
- python定义一个复数类complex、并实现复数相加_用java定义一个复数类Complex,能够创建复数对象,并且实现复数之间的加、减运算...
题目: 用java定义一个复数类Complex,能够创建复数对象,并且实现复数之间的加.减运算 复数具有实部和虚部两部分,如2+5i就是一个复数,其中2为实部,5i为虚部;两复数相加时,实部与实部相加 ...
最新文章
- SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析
- activiti如何最后一次提交事务_MySQL如何找出未提交事务的SQL浅析
- 【原创 HadoopSpark 动手实践 6】Spark 编程实例与案例演示
- win7安装android驱动,Windows7:安卓智能手机刷机驱动安装教程(图文详解)
- svm 10折交叉验证 matlab,怎么用10折交叉验证程序?
- 计算机电子表格题教程,计算机电子表格题教程.doc
- 【校招VIP 前端】电影详情模块的开发文档设计实战
- python如何自己写库_亲自动手写一个python库(二)
- 治愈系课程教材 第三课
- 隐马尔科夫模型(HMM)等文章记录
- Excel 使用技巧集锦
- 移动之过之过还是UC、GGlive,vfun之过?——cmwap无限流量卡价格飚升背后的故事
- 台灣人如何在大陸工作
- Maxent软件安装及使用
- 区间dp入门——总结+习题+解析
- linux安全(1)
- 关于浏览器访问servlet404异常
- Spring定时任务实现方式
- python删除文件夹下面的所有文件
- 找到任何你想要找的人-王春明大佬超强干货