资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上实验5-1编一个程序,用成员函数重载运算符“+”和“-”将两个二维数组相加和相减,要求第1个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。#includeusing namespace std;#includeconst int row=2;const int col=3;class array public: array();/构造函数 array(int a,int b,int c,int d,int e,int f); void get_array();/由键盘输入数组的值 void display();/显示数组的值 array operator+(array &X);/将两个数组相加 array operator-(array &X);/将两个数组相减private: int varrowcol;array:array()for(int i=0; irow; i+)for(int j=0;jcol; j+)varij=0;array:array(int a,int b,int c,int d,int e,int f)/由构造函数设置数组的值var00=a;var01=b;var02=c;var10=d;var11=e;var12=f;void array:get_array()/由键盘输入数组的值coutPlease input 2*3 dimension data:endl;for(int i=0; irow;i+)for(int j=0;jvarij;void array:display()/显示数组的值for(int i=0;irow;i+)for(int j=0;jcol;j+)coutsetw(5)varij;coutendl;array array:operator+(array &X)/将两个数组相加array temp;for(int i=0;irow;i+)for(int j=0;jcol;j+)temp.varij=varij+X.varij; return temp;array array:operator-(array &X)/将两个数组相减array temp;for(int i=0;irow; i+)for(int j=0;jcol;j+)temp.varij=varij-X.varij;return temp;int main()array X(11,22,33,44,55,66);array Y,Z;Y.get_array();coutDisplay object Xendl;X.display();coutDisplay object Yendl;Y.display();Z=X+Y;coutDisplay object Z=X+Yendl;Z.display();Z=X-Y; coutDisplay object Z=X-Yendl;Z.display(); return 0;实验5-2将实验5-1用友元函数重载运算符“”和“-”将两个二维数组相加和相减。#include#include/using namespace std;const int row=2;const int col=3;class array public: array();/构造函数 array(int a,int b,int c,int d,int e,int f); void get_array();/由键盘输入数组的值 void display();/显示数组的值 friend array operator+(array &X, array &Y);/将两个数组相加 friend array operator-(array &X, array &Y);/将两个数组相减private: int varrowcol;array:array()for(int i=0; irow; i+)for(int j=0;jcol; j+)varij=0;array:array(int a,int b,int c,int d,int e,int f)/由构造函数设置数组的值var00=a;var01=b;var02=c;var10=d;var11=e;var12=f;void array:get_array()/由键盘输入数组的值coutPlease input 2*3 dimension data:endl;for(int i=0; irow;i+)for(int j=0;jvarij;void array:display()/显示数组的值for(int i=0;irow;i+)for(int j=0;jcol;j+)coutsetw(5)varij;coutendl;array operator+(array &X, array &Y)/将两个数组相加array temp;for(int i=0;irow;i+)for(int j=0;jcol;j+)temp.varij=Y.varij+X.varij; return temp;array operator-(array &X, array &Y)/将两个数组相减array temp;for(int i=0;irow; i+)for(int j=0;jcol;j+)temp.varij=X.varij-Y.varij;return temp;int main()array X(11,22,33,44,55,66);array Y,Z;Y.get_array();coutDisplay object Xendl;X.display();coutDisplay object Yendl;Y.display();Z=X+Y;coutDisplay object Z=X+Yendl;Z.display();Z=X-Y; coutDisplay object Z=X-Yendl;Z.display(); return 0;实验5-3编写一个程序,要求:(1)声明一个类complex,定义类complex的两个对象c1和c2,对象c1通过构造函数直接指定复数的实部和虚部(类私有数据成员为double类型的real和imag)为2.5及3.7,对象c2通过构造函数直接指定复数的实部和虚部为4.2及6.5;(2)定义友元运算符重载函数,它以c1、c2对象为参数,调用该函数时能返回两个复数对象相加操作;(3)定义成员函数print,调用该函数时,以格式“(real,imag)”输出当前对象的实部和虚部,例如:对象的实部和虚部分别是4.2和6.5,则调用print函数输出格式为:(4.2,6.5);(4)编写主程序,计算出复数对象c1和c2相加结果,并将其结果输出。#includeclass complexpublic:complex(double r=0,double i=0);friend complex operator+(const complex c1,const complex c2);void print();private:double real,imag;complex:complex(double r,double i)real=r;imag=i;complex operator+(const complex c1,const complex c2)complex temp;temp.real=c1.real+c2.real;temp.imag=c1.imag+c2.imag;return temp;void complex:print() cout(real,imag)endl; int main()complex c1(2.5,3.7),c2(4.2,6.5);complex c;c=c1+c2;c.print();return 0;实验5-4定义复数类的加法、减法与乘法运算。#includeclass Complexpublic: Complex(double r=0,double v=0):real(r),imag(v)/构造函数 friend Complex operator+(Complex a,Complex b);/在类内对友元函数进行声明friend Complex operator-(Complex a,Complex b);friend Complex operator*(Complex a,Complex b);friend ostream& operator(ostream& out,Complex& a);private:double real;double imag;/输出运算符重载的实现ostream& operator(ostream&out,Complex&a)return outa.real+a.imagin;/+运算符重载的实现Complex operator+(Complex a,Complex b)return Complex(a.real+b.real,a.imag+b.imag); /-运算符重载的实现Complex operator-(Complex a,Complex b)return Complex(a.real-b.real,a.im
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号