基于C++的复数四则运算

#include<stdio.h>
#include<iostream>
using namespace std;
typedef struct    //定义复数类型
{
	float realPart;  
	float imagPart; 
}Complex;
void InitComplex(Complex &Z)//输入两个复数 
{
	float x,y;
	cout<<"请输入一个复数"<<endl;
	cin>>x>>y;
	Z.realPart=x;
	Z.imagPart=y;
}
void PrintComplex(Complex z)//输出目标复数 
{
	if(z.imagPart>=0)
		cout<<z.realPart<<'+'<<z.imagPart<<'i'<<endl;
	else
		cout<<z.realPart<<z.imagPart<<'i'<<endl;
}
void Add(Complex z1 ,Complex z2)	//求两个复数z1和z2的和sum
{
	Complex sum;
	sum.realPart=z1.realPart + z2.realPart;
	sum.imagPart=z1.imagPart + z2.imagPart ;
	PrintComplex(sum);
}
void Sub(Complex z1 ,Complex z2)	//求两个复数z1和z2的差dif 
{
	Complex dif;
	dif.realPart = z1.realPart - z2.realPart;
	dif.imagPart = z1.imagPart - z2.imagPart;
	PrintComplex(dif);
}
void Mcl(Complex z1 ,Complex z2)	//求两个复数z1和z2的积mul
{
	Complex mul;
	mul.realPart = z1.realPart * z2.realPart - z1.imagPart * z2.imagPart;
	mul.imagPart = z1.realPart * z2.imagPart + z1.imagPart * z2.realPart;
	PrintComplex(mul);
}
void Div(Complex z1 ,Complex z2)	//求两个复数z1和z2的商div
{
	Complex div;
	div.realPart = (z1.realPart * z2.realPart + z1.imagPart * z2.imagPart)/(z2.realPart * z2.realPart + z2.imagPart * z2.imagPart) ;
	div.imagPart = (z1.imagPart * z2.realPart - z1.realPart * z2.imagPart)/(z2.realPart * z2.realPart + z2.imagPart * z2.imagPart) ;
	PrintComplex(div);
}
int main()
{
	Complex z1,z2;
	InitComplex(z1);
	InitComplex(z2);
	char c;
	cout<<"请输入您要进行的运算"<<endl;
	cin>>c;
	switch(c)	//判断运算符号 
	  {
	   case '+': 
		   Add(z1,z2);
		   break;
	   case '-': 
		   Sub(z1,z2);
		   break;
	   case '*': 
		   Mcl(z1,z2);
		   break;
	   case '/': 
		   Div(z1,z2);
		   break;
	   }
	   return 0;
}

1、复数不在基本数据类型中,需要使用typedef声明

2、将加减乘除和复数的生成与输出作为单独的函数引用,确保输出简洁明了

3、输出可以用cout加更多的语言说明来保证输出的可读性

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值