#include<iostream>
using namespace std
class complex//复数类声明
{
private:
double real
double image
public:
complex(double r=0.0,double i=0.0)//构造函数
{
real=r
image=i
}
complex operator+(complex c2)//+重载为成员函数
complex operator-(complex c2)//-重载为成员函数
complex operator*(complex c2)//*重载为成员函数
friend complex operator/(complex,complex)///重载为成员函数
bool operator==(complex c2)//==重载为成员函数
void display()
}
complex complex::operator +(complex c2)//重载的实现
{
complex c
c.real=c2.real+real
c.image=c2.image+image
return complex(c.real,c.image)
}
complex complex::operator -(complex c2)//重载的实现
{
complex c
c.real=real-c2.real
c.image=image-c2.image
return complex(c.real,c.image)
}
complex complex::operator *(complex c2)//重载的实现
{
complex c
c.real=c2.real*real
c.image=c2.image*image
return complex(c.real,c.image)
}
complex operator/(complex c1,complex c2)//重载的实现
{
return complex(c1.real/c2.real,c1.image/c2.image)
}
bool complex::operator ==(complex c2)//重载的实现
{
if((real==c2.real)||(image==c2.image))return true
else return false
}
void complex::display()
{
cout<<"("<<real<<","<<image<<")"<<endl
}
void main()
{
complex c1(5.0,4),c2(5.0,4),c3
cout<<"c1="
c1.display()
cout<<"c2="
c2.display()
c3=c1+c2//使用重载运算符完成复数加法
cout<<"c3=c1+c2="
c3.display()
c3=c1-c2//使用重载运算符完成复数减法
cout<<"c3=c1-c2="
c3.display()
c3=c1*c2//使用重载运算符完成复数乘法
cout<<"c3=c1*c2="
c3.display()
c3=c1/c2//使用重载运算符完成复数除法
cout<<"c3=c1/c2="
c3.display()
//使用重载运算符完成两个复数的比较
bool result=(c1==c2)
cout<<"(c1==c2)="<<result<<endl
#include"stdafx.h"
#include<iostream>
using
namespace
std
class
Complex4
{
private:
double
real
double
imag
public:
Complex4()//默认构造函数
Complex4(double
r)//函数重载
Complex4(double
r,double
i)//函数重载
friend
Complex4
operator
+(Complex4
&c1,Complex4
&c2)//复数的加法函数
friend
Complex4
operator
-(Complex4
&c1,Complex4
&c2)//减法函数
Complex4
operator
*(Complex4
&c1)//乘法函数
friend
istream&
operator
>>(istream
&output,Complex4
&c1)//输入函数的重载
friend
ostream&
operator
<<(ostream&
input,Complex4
&c1)//输出函数的重载
friend
Complex4
operator
-(Complex4
&c1)//复数负数函数
Complex4
operator
-()
operator
double(){return
real}//类型转换函数
Complex4
Qiumo()//求模函数
}
Complex4::Complex4()
{
real=0
imag=0
}//构造函数的实现
Complex4::Complex4(double
r)
{
real=r
imag=0
}//类型转换函数
Complex4::Complex4(double
r,double
i)
{
real=r
imag=i
}//构造函数重载
Complex4
operator
+(Complex4
&c1,Complex4
&c2)
{
Complex4
c
c.real=c1.real+c2.real
c.imag=c1.imag+c2.imag
return
c
}//+符号的重载
Complex4
operator
-(Complex4
&c1,Complex4
&c2)
{
Complex4
c
c.real=c1.real-c2.real
c.imag=c1.imag-c2.imag
return
c
}//减号的重载函数
Complex4
Complex4::operator
*(Complex4
&c1)
{
Complex4
c
c.real=this->real*c1.real+this->imag*c1.imag
c.imag=this->real*c1.imag+this->imag*c1.real
return
c
}//乘法的函数重载
/*Complex4
operator
-(Complex4
&c1)
{
Complex4
c
c.real=-c.real
c.imag=-c.imag
return
c
}//负号的函数重载*/
Complex4
Complex4::operator
-()
{
real=-(this->real)
imag=-(this->imag)
return
*this
}
istream&
operator
>>(istream
&input,Complex4
&c1)
{
cout<<"input
real
part
and
image
part
of
Complex4
number:
"
input>>c1.real>>c1.imag
return
input
}//>>函数重载
ostream&
operator
<<(ostream&
output,Complex4
&c)
{
output<<"("<<c.real
if(c.imag>=0)output<<"+"
output<<c.imag<<"i)"<<endl
return
output
}//<<函数重载
Complex4
Complex4::Qiumo()
{
double
M//表示模
M=sqrt(this->real*this->real+this->imag*this->imag)
return
M
}
int
main()
{
Complex4
c1,c2,c3,c4,c5,c6
double
i,M
cin>>c1>>c2
c3=c1+c2//实现复数的加法
c4=c1*c2//实现复数的乘法
cout<<c1
c1=c1.operator
-()//实现复数取负数
i=2.5+c1//类型的转换实现
c6=2.5+c1
M=c1.Qiumo()
cout<<"c1="<<c1<<"c2="<<c2<<"c3="<<c3<<"c4="<<c4<<"c6="<<c6<<"i="<<i<<endl<<"M="<<M<<endl
return
0
}
用结构体函数计算两个复数的四则运算是一个相对简单的程序。重难点在于理解复数的运算规则,并将其转化为程序代码。结构体函数是指将结构体作为函数的参数和返回值的函数。在这个程序中,我们可以定义一个结构体来表示复数,包括它的实部和虚部。然后我们可以定义四个结构体函数来分别实现两个复数的加法、减法、乘法和除法。
结论:通过使用结构体函数,我们可以方便地实现复数的四则运算。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)