用面向对象的设计思路设计一个特殊运算符,实现两复数加减乘除,两矩阵加减乘

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用面向对象的设计思路设计一个特殊运算符,(1)可以实现复数的加、减、乘和除,(2)实现两个方阵的加法、减法和乘法。(3)用菜单方式选择所需的运算操作。

Complex.h

#include"iostream.h"

class complex

{

public:

complex(double r=0,double i=0):real(r),imag(i){}

complex operator+(complex &c2);

complex operator+(double d);

complex operator-(complex &c2);

friend complex operator+(double d,complex &c2);

friend complex operator*(complex &c1,complex &c2);

friend complex operator/(complex &c1,complex &c2);

friend ostream& operator<<(ostream &output,complex &c);

friend istream& operator>>(istream &input,complex &c);

private:

double real;

double imag;

};

Jz.h

#include"iostream.h"

const int m=2;

class jz

{

public:

jz();

jz(int b[m][m]);

void print();

friend jz operator+(jz &a1,jz &a2);

friend jz operator-(jz &a1,jz &a2);

friend jz operator*(jz &a1,jz &a2);

friend ostream& operator<<(ostream &output,jz &);

friend istream& operator>>(istream &input,jz &);

private:

int a[m][m];

};

Complex.cpp

#include"complex.h"

complex complex::operator+(complex &c2)

{

complex c;

c.real=this->real+c2.real;

c.imag=this->imag+c2.imag;

return c;

}

complex complex::operator-(complex &c2)

{

complex c;

c.real=this->real-c2.real;

c.imag=this->imag-c2.imag;

return c;

}

complex operator+(double d,complex &c1)

{

return complex(d+c1.real,c1.imag);

}

complex operator*(complex &c1,complex &c2)

{

return

complex(c1.real*c2.real+(-1)*c1.imag*c2.imag,c1.real*c2.imag+c2.real*c1.imag); }

complex operator/(complex &c1,complex &c2)

{

complex c;

double sum;

sum=c2.real*c2.real-c2.imag*c2.imag*(-1);

c.real=(c1.real*c2.real+c1.imag*(-c2.imag)*(-1))/sum;

c.imag=(c1.real*(-c2.imag)+c1.imag*c2.real)/sum;

return c;

}

ostream& operator<<(ostream &output,complex &c)

{

if(c.imag>=0)

output<

else

output<

return output;

istream& operator>>(istream &input,complex &c) {

cout<<"输入实部:"<

input>>c.real;

cout<<"输入虚部:"<

input>>c.imag;

return input;

}

Jz.cpp

#include"jz.h"

jz::jz()

{

for(int i=0;i

for(int j=0;j

a[i][j]=0;

}

jz::jz(int b[m][m])

{

for(int i=0;i

for(int j=0;j

a[i][j]=b[i][j];

}

jz operator+(jz &a1,jz &a2)

{

jz c;

for(int i=0;i

for(int j=0;j

c.a[i][j]=a1.a[i][j]+a2.a[i][j];

return c;

}

jz operator-(jz &a1,jz &a2)

{

jz c;

for(int i=0;i

for(int j=0;j

c.a[i][j]=a1.a[i][j]-a2.a[i][j];

return c;

}

jz operator*(jz &a1,jz &a2)

{

相关文档
最新文档