问题描述】一个完整的复数由实数部分和序数部分构成,请定义一个复数类,含有两个私有属性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 ;
}

最新文章

  1. Mac系统下React Native环境搭建
  2. delphi XE4 隐藏程序在任务管理器和隐藏任务栏
  3. Android Studio中怎么使用DDMS工具?
  4. js获取样式的兼容写法
  5. Java 7 Concurrency Cookbook 翻译 第一章 线程管理之二
  6. Spark SQL - DataFrame
  7. ubuntu下PHP支持cURL
  8. svn删除目录后提交显示Item &#39;XXXX&#39; is out of date解决方法
  9. searchbar的使用介绍
  10. javascript DOM对象转jquery对象
  11. 通过扩展改善ASP.NET MVC的验证机制[使用篇]
  12. PPT里面实现动态图表
  13. ##3.Keystone 验证服务--openstack
  14. Python列表list对象方法总结
  15. python常用模块详解
  16. 省市县从数据库读出来的list数据转换成json格式的数据
  17. 空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)
  18. c++趣味之为变参模板的每个参数执行单独函数
  19. JMeter配置好环境变量后无法启动---翻车笔记
  20. Frameworks(不定时更新)

热门文章

  1. 从租人APP沦为性工作发布平台 看共享经济监管边界
  2. mysql 分表实现方法详解
  3. nexus7入手
  4. LSTM 句子相似度分析
  5. Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面
  6. C++扬帆远航——3(打印图形)
  7. C++走向远洋——59(项目三、图形面积、抽象类)
  8. Redis(3)——分布式锁深入探究
  9. PyQt5之QtMultimedia模块音乐播放没声音已解决
  10. Python几个简单实用的模块