java加减乘除乘方开方_复数的加减乘除及开方乘方运算 | 学步园

本文展示了如何使用C++实现复数的加、减、乘、除操作,以及复数的乘方和开方运算。通过定义一个名为`Fushu`的类,并重载各种运算符,实现了复数的算术运算。此外,还提供了输入输出重载函数,方便用户交互。示例代码包括了主函数,用于演示这些运算的使用。
摘要由CSDN通过智能技术生成

#include

#include

using namespace std;

const double pi=3.1415926535897932384626433;

class Fushu{

private:

double x, y;

public:

Fushu(){x=0.0;y=0.0;}

Fushu operator +(const Fushu& f);

Fushu operator -(const Fushu& f);

Fushu operator *(const Fushu& f);

Fushu operator /(const Fushu& f);

void operator =(const Fushu& f);

void cf(int n);

void kf(int n);

friend ostream& operator <

friend istream& operator >>(istream& In, Fushu& f);

};

// operator + /

Fushu Fushu::operator +(const Fushu& f){

Fushu tem;

tem.x=(*this).x+f.x;

tem.y=(*this).y+f.y;

return tem;

}

// operator - /

Fushu Fushu::operator -(const Fushu& f){

Fushu tem;

tem.x=(*this).x-f.x;

tem.y=(*this).y-f.y;

return tem;

}

// operator * /

Fushu Fushu::operator *(const Fushu& f){

Fushu tem;

tem.x=(*this).x*f.x-(*this).y*f.y;

tem.y=(*this).y*f.x+(*this).x*f.y;

return tem;

}

// operator / /

Fushu Fushu::operator /(const Fushu& f){

Fushu tem;

tem.x=((*this).x*f.x+(*this).y*f.y)/((*this).y*(*this).y+f.y*f.y);

tem.y=((*this).y*f.x-(*this).x*f.y)/((*this).y*(*this).y+f.y*f.y);

return tem;

}

// operator = /

void Fushu::operator =(const Fushu& f){

// Fushu tem;

(*this).x=f.x;

(*this).y=f.y;

// return tem;

}

// 乘方 /

void Fushu::cf(int n){

Fushu tem;

//if(n<0) cout<

if(n==0){

tem.x=1;

tem.y=0;

}

else if (n==1){

tem.x=(*this).x;

tem.y=(*this).y;

}

else

{

double r,j;

r=sqrt((*this).x*(*this).x+(*this).y*(*this).y);

j=atan((*this).y/(*this).x);

tem.x=pow(r,n)*cos(n*j);

tem.y=pow(r,n)*sin(n*j);

}

cout<

}

// 开方 /

void Fushu::kf(int n){

Fushu tem;

double r,j;

r=sqrt((*this).x*(*this).x+(*this).y*(*this).y);

j=atan((*this).y/(*this).x);

cout<

for(int i=0;i

tem.x=pow(r,1.0/n)*cos((j+i*pi*2.0)/n);

tem.y=pow(r,1.0/n)*sin((j+i*pi*2.0)/n);

cout<

}

return;

}

// 输出重载 /

ostream& operator <

if(f.y<0)

return os<

else

return os<

}

// 输入重载 /

istream& operator >>(istream & in, Fushu & f){

in>>f.x>>f.y;

return in;

}

void main(){

Fushu a,b,c;

cout<

cin>>a;

cin>>b;

cout<

cout<

c=a+b;

cout<

c=a-b;

cout<

c=a*b;

cout<

c=a/b;

cout<

c.cf(2);

c.kf(2);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值