问题描述】一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性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. C#利用反射调用PB编译的COM组件

    问题: 1.根据COM组件的ProgID,得到COM组件公开的类型 2.创建COM组件提供的类型的对象 3.调用执行方法 正确姿势 C#利用反射调用(后期绑定)PB编译的COM组件 C#调用COM组件 ...

  2. 14、创建/恢复ETH钱包身份

    借助网上的一段描述: 若以银行账户为类比,这 5 个词分别对应内容如下: 地址=银行卡号密码=银行卡密码私钥=银行卡号+银行卡密码助记词=银行卡号+银行卡密码Keystore+密码=银行卡号+银行卡密 ...

  3. 改了改之前那个很糙的XXX

    将就着用X度去爬吧 <?php echo "***************************************\r\n"; echo "* SubDom ...

  4. Android注解支持Support Annotations详解

    ###注解支持(Support Annotations)Android support library从19.1版本开始引入了一个新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现 ...

  5. Leetcode 20题 有效的括号(Valid Parentheses) Java语言求解

    题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空 ...

  6. C++走向远洋——27(项目三,时间类)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:time.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  7. 深入理解JVM(线程部分) Note

    硬件的效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将 ...

  8. 用mpvue写个玩意儿玩玩

    下周公司要搞黑客马拉松了,组里可能会做个小程序.然后看到了mpvue感觉还不错,于是就打算试试水.用vue写小程序听上去美滋滋.那么先开始吧! 全局安装 vue-cli $ npm install - ...

  9. 基于FPGA的三段式状态机

    状态机分类: 通常, 状态机的状态数量有限, 称为有限状态机(FSM) .由于状态机所有触发器的时钟由同一脉冲边沿触发, 故也称之为同步状态机. 根据状态机的输出信号是否与电路的输入有关分为 Meal ...

  10. Redis系列五 - 哨兵、持久化、主从

    问:骚年,都说Redis很快,那你知道这是为什么吗? 答:英俊潇洒的面试官,您好.我们可以先看一下 关系型数据库 和 Redis 本质上的区别. Redis采用的是基于内存的,采用的是单进程单线程模型 ...