问题描述】一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性realPart和imagPart分别表示复数的实部和虚部,三个成员函数:initComplex实现复数成员变量的初始化,add函数实现复数的求和运算并返回计算后的复数,printComplex按要求格式输出复数。

【输入形式】

第一行:第一个复数的实数数据部分  第一个复数的虚数数据部分

第二行:第二个复数的实数数据部分  第二个复数的虚数数据部分

第三行:输入一个整数(1-3),选择执行switch语句

【输出形式】

实数数据+虚数数据i

就这道题,在我们学结构体的时候出现过一次类似的,那一次是要求用结构体写的,

这个题型无非注意两点

  “+”不能在开头

  系数为-1,1时要省略系数

下面是代码(结构体写法)//有点丑

 #include  <iostream>
using namespace std;
struct Complex{
double a,b;
};
void inputComplex(Complex &x){
cin>>x.a>>x.b;
}
Complex add(Complex c1,Complex c2){
Complex sum;
sum.a=c1.a+c2.a;
sum.b=c1.b+c2.b;
return sum;
}
void printComplex(Complex x){
if(x.a!=&&x.b>&&x.b!=)cout<<x.a<<"+"<<x.b<<"i"<<'\n';
else if(x.a!=&&x.b==)cout<<x.a<<"+"<<"i"<<'\n';
else if(x.a!=&&x.b<)cout<<x.a<<x.b<<"i"<<'\n';
else if(x.a!=&&x.b==)cout<<x.a<<'\n';
else if(x.a==&&x.b!=&&x.b!=)cout<<x.b<<"i"<<'\n';
else if(x.a==&&x.b==)cout<<"i"<<'\n';
else if(x.a==&&x.b==)cout<<<<'\n'; }
int main() {
Complex c1,c2;//定义复数变量
inputComplex(c1);//初始化复数变量:从键盘终端输入复数实部和虚部数据
inputComplex(c2);
printComplex(add(c1,c2));//输出复数变量c1和c2相加后的结果复数。
return ;
}

下面是类的写法

类与对象的笔记

点这里查看笔记↑↑↑↑

 #include  <iostream>
using namespace std;
class Complex{
private:
double realPart;//实部
double imagPart;//虚部,
public:
void initComplex(double real,double imag){//实现复数成员变量的初始化,
realPart=real;
imagPart=imag;
};
Complex add(Complex x){//函数实现复数的求和运算并返回计算后的复数,
Complex ans;
ans.realPart=realPart+x.realPart;
ans.imagPart=imagPart+x.imagPart;
return ans;
} void printComplex();//按要求格式输出复数。 }; void Complex::printComplex(){
if(realPart!=){
cout<<realPart;
if(imagPart==)cout<<"+i"<<'\n';
else if(imagPart>&&imagPart!=)cout<<"+"<<imagPart<<"i"<<'\n';
else if (imagPart<&&imagPart!=-)cout<<imagPart<<"i"<<'\n';
else if (imagPart==-)cout<<"-i"<<'\n';
}
else if(realPart==){
if(imagPart==)cout<<"+i"<<'\n';
else if(imagPart!=-&&imagPart!=&&imagPart!=)cout<<imagPart<<"i"<<'\n';
else if (imagPart==-)cout<<"-i"<<'\n';
else if(imagPart==)cout<<""<<'\n';
} } int main() {
Complex c1,c2;
double real,imag;
cin>>real>>imag;
c1.initComplex(real,imag);
cin>>real>>imag;
c2.initComplex(real,imag);
int sel;
cin>>sel;
switch(sel){
case :
c1.printComplex();
break;
case :
c2.printComplex();
break;
case :
Complex c=c1.add(c2);//add函数返回c1和c2相加后的结果复数对象
c.printComplex();
}
return ;
}

类与对象 CG作业1. 复数类Comple 。的更多相关文章

  1. Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系

    Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...

  2. python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系

    https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...

  3. JAVA类和对象课后作业

    1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?" 代码: //显示类 //YiMingLai 2 ...

  4. l类与对象课后作业

    java 的初始化规律 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”. 执行类的构造函数. 类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行.因 ...

  5. python的类和对象——番外篇(类的静态字段)

    什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...

  6. java入门学习(4)— 类,对象理解,如何创建类,对象

    1.什么是类?具有一定相同的属性的对象的集合就叫类.2.对象:类的具体实例,就是类的实例化.比如学生是一个类(student),那学生里面的小红就是一个对象,一个有学生的属性的对象.3.如何定义一个类 ...

  7. python cookbook第三版学习笔记十二:类和对象(三)创建新的类或实例属性

    先介绍几个类中的应用__getattr__,__setattr__,__get__,__set__,__getattribute__,. __getattr__:当在类中找不到attribute的时候 ...

  8. C++复习:类和对象

    类和对象 基本概念 1)类.对象.成员变量.成员函数 2)面向对象三大概念 封装.继承.多态 3)编程实践     类的定义和对象的定义,对象的使用     求圆形的面积     定义Teacher类 ...

  9. Objective-C Runtime 运行时之一:类与对象

    Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...

随机推荐

  1. 【最简单的vim教程】vim学习笔记-基础操作

    说明 C-字母 = Ctrl + 字母 char = 任意字符 开始编辑 insert 按键 功能 说明 i(I) insert 当前位置插入(当前行前) a(A) append 当前字符后面插入(当 ...

  2. golang 统计系统测试覆盖率

    golang 统计系统测试覆盖率 参考资料 https://www.elastic.co/blog/code-coverage-for-your-golang-system-tests https:/ ...

  3. TCP 可靠传输与流量控制的实现

    TCP 可靠传输与流量控制的实现 一.TCP可靠传输的实现 现在所讲的可靠传输是根据之前所说的可靠传输原理的实现,是现实中应用的技术. 1.1.以字节为单位的滑动窗口 如图A端一份文件分为了多个字节, ...

  4. Scrum模拟微信看一看“疫情专区”的敏捷开发过程

    无论作为产品用户还是管理咨询顾问,都非常非常喜欢微信.自认感情比较克制属于“高冷”挂,但从很多方面都太佩服太崇拜张小龙了(新书里微信也会是最喜欢的案例之一,真的不只是一个产品而已,很多方面都太牛了). ...

  5. 搭建websocket消息推送服务,必须要考虑的几个问题

    近年,不论是正在快速增长的直播,远程教育以及IM聊天场景,还是在常规企业级系统中用到的系统提醒,对websocket的需求越来越大,对websocket的要求也越来越高.从早期对websocket的应 ...

  6. MVC07

    1. 讲解ASP.net MVC的I/O操作 新建一个控制台程序,输入代码如下 using System; using System.IO; namespace IO { class Program ...

  7. vue+element tree(树形控件)组件(1)

    最近做了第一个组内可以使用的组件,虽然是最简版,也废了不少力.各位前辈帮我解决问题,才勉强搞定.让我来记录这个树形组件的编写过程和期间用到的知识点. 首先说说需求,就是点击出现弹窗+蒙板,弹窗内容是一 ...

  8. 第二章、 Vue 起步

    2-2.编写hello world 首先创建vue实例,然后实例接收一些配置项,el表示实例负责管理的区域,data表示区域内的数据 两秒后内容变为bye world 其中app表示实例对象,$dat ...

  9. axios下载文件乱码问题 无法解压 文件损坏

    /* 下载附件 */ downloadFile(fileName) { // window.open(url); var that = this; var url = "PO2116&quo ...

  10. 你知道吗,Flutter内置了10多种Button控件

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Flutter内置了10多种Button(按钮)类控件供我 ...