类与对象 CG作业1. 复数类Comple 。
问题描述】一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性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 。的更多相关文章
- Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系
Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...
- python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...
- JAVA类和对象课后作业
1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?" 代码: //显示类 //YiMingLai 2 ...
- l类与对象课后作业
java 的初始化规律 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”. 执行类的构造函数. 类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行.因 ...
- python的类和对象——番外篇(类的静态字段)
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...
- java入门学习(4)— 类,对象理解,如何创建类,对象
1.什么是类?具有一定相同的属性的对象的集合就叫类.2.对象:类的具体实例,就是类的实例化.比如学生是一个类(student),那学生里面的小红就是一个对象,一个有学生的属性的对象.3.如何定义一个类 ...
- python cookbook第三版学习笔记十二:类和对象(三)创建新的类或实例属性
先介绍几个类中的应用__getattr__,__setattr__,__get__,__set__,__getattribute__,. __getattr__:当在类中找不到attribute的时候 ...
- C++复习:类和对象
类和对象 基本概念 1)类.对象.成员变量.成员函数 2)面向对象三大概念 封装.继承.多态 3)编程实践 类的定义和对象的定义,对象的使用 求圆形的面积 定义Teacher类 ...
- Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...
随机推荐
- 让git push命令不再需要密码
最近利用jekyll写博客,为的就是博客管理方便,但是在上传博客的时候使用git push命令每次都得输入github帐号和密码特别的不方便,于是就搜了一下. 在这篇文章里提到,GitHub获得远程库 ...
- NERDTree快捷键
切换工作台和目录 ctrl + w + h 光标 focus 左侧树形目录ctrl + w + l 光标 focus 右侧文件显示窗口ctrl + w + w 光标自动在左右侧窗口切换ctrl + w ...
- 2016/11/10 吃吃喝喝Hacking Thursday Night聚餐活动 at Dunkin Donuts
店名:Dunkin Donuts 唐恩都乐 点评:http://www.dianping.com/shop/21378231 地址:静安区南京西路1649号静安公园内(近静安公园) 走法:地铁2号线静 ...
- O2O倒逼汽车行业改革:服务超越销售成重心
汽车作为越来越普及的出行工具,已经进入千家万户.与其他家具.家电.服饰等产品不同,从新车销售到售后保养.保险购买.维修乃至报废阶段,都能细分化,形成一个个潜力巨大的垂直领域.而随着互联网元素的渗入,汽 ...
- HTML笔记03------cookie
新浪布局 初始布局代码: div.header+(div.container>(div.left+div.right))+div.footer ---------- .header{height ...
- docker save和load将本地镜像上传AWS
今天在AWS云主机上部署Grafana,发现无法使用私有仓库,于是,尝试了下docker save和docker load.着实很好用,简单记录下: docker save用法: Usage: doc ...
- MVC04
1. 从页面到action 讲述controller与View之间的具体运作关系 在上次添加的名为Movie的Model内添加 下面我们尝试为该model内的属性添加attribute 具体修改如下: ...
- XSS_跨站脚本攻击
前段时间在网上看到一个网址,好奇之下进去看了看.胜利的条件是你录入一个串,让其调用prompt(1) .发现里面有好多想不到的东西,今天终于悠闲了来这里说说XSS. XSS 原理 恶意攻击者往Web页 ...
- 【Amaple教程】6. 路由配置
在 第1节<启动路由> 章节中为了能让单页应用顺利跑起来,我们提前介绍了简单的路由配置方法.我们已了解路由配置的目的是指定不同的url下对应的 模块节点(也叫做模块容器)内应该显示哪个模块 ...
- HashSet底层、及存入对象时候如何保持唯一
HashSet底层.及存入对象时候如何保持唯一 在JDK1.8之前,哈希表底层采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里. 但是当位于一个桶中的元素较多,即hash ...