运算符重载实验Word格式.docx
- 文档编号:19024252
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:10
- 大小:69.65KB
运算符重载实验Word格式.docx
《运算符重载实验Word格式.docx》由会员分享,可在线阅读,更多相关《运算符重载实验Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
Scomplex(floatr,floati){real=r;
image=i;
voidShow(){cout<
<
fixed<
setprecision
(2)<
"
("
<
real<
"
image<
)"
endl;
friendScomplexoperator+(Scomplexcomp,intiNum);
friendScomplexoperator-(Scomplexcomp,intiNum);
friendScomplexoperator+(Scomplexcomp,floatfNum);
friendScomplexoperator-(Scomplexcomp,floatfNum);
Scomplexoperator=(Scomplexnum);
};
ScomplexScomplex:
:
operator=(Scomplexnum)
this->
real=num.real;
image=num.image;
return*this;
Scomplexoperator+(Scomplexcomp,intiNum)
comp.real=comp.real+(float)iNum;
returncomp;
Scomplexoperator+(intiNum,Scomplexcomp)
comp=comp+iNum;
Scomplexoperator-(Scomplexcomp,intiNum)
comp.real=comp.real-(float)iNum;
Scomplexoperator-(intiNum,Scomplexcomp)
comp=comp-iNum;
}
Scomplexoperator+(Scomplexcomp,floatfNum)
comp.real=comp.real+fNum;
Scomplexoperator+(floatfNum,Scomplexcomp)
//comp.real=comp.real+fNum;
comp=comp+fNum;
Scomplexoperator-(Scomplexcomp,floatfNum)
comp.real=comp.real-fNum;
Scomplexoperator-(floatfNum,Scomplexcomp)
comp=comp-fNum;
intmain(void)
intiData=10;
floatfData=66.6;
Scomplexcomp(23.5,86.5);
ScomplexIntAdd,IntSub,FloatAdd,FloatSub,AssigNum;
IntAdd=iData+comp;
IntSub=iData-comp;
FloatAdd=fData+comp;
FloatSub=fData-comp;
AssigNum=comp;
cout<
整数加上复数:
;
IntAdd.Show();
整数减上复数:
IntSub.Show();
浮点数加上复数:
FloatAdd.Show();
浮点数减上复数:
FloatSub.Show();
重载赋值运算符后:
AssigNum.Show();
system("
PAUSE"
);
return0;
2.空间一点p的坐标为(x,y,z),其中x,y,z为整数。
编写点类Point3D,定义空间两点之间的加”+”,减”-”运算为相应三个坐标值分别进行加、减运算,要求实现空间两点之间的加”+”减”-”赋值”=”运算,空间两点间的比较”==”运算。
要求编写Point3D类的声明定义和测试程序。
头文件Poin3D.h
#ifndefPOINT3D_H
#definePOINT3D_H
classPoint3D
intx,y,z;
Point3D(){x=0;
y=0;
z=0;
Point3D(intxx,intyy,intzz):
x(xx),y(yy),z(zz){}
voidPrint()const{cout<
"
x<
"
y<
z<
>
Point3Doperator+(constPoint3D&
pnt)const;
Point3Doperator-(constPoint3D&
Point3Doperator=(constPoint3D&
pnt);
booloperator==(constPoint3D&
Point3DPoint3D:
operator+(constPoint3D&
pnt)const
Point3Dtemp;
temp.x=this->
x+pnt.x;
temp.y=this->
y+pnt.y;
temp.z=this->
z+pnt.z;
returntemp;
operator-(constPoint3D&
x-pnt.x;
y-pnt.y;
z-pnt.z;
operator=(constPoint3D&
pnt)
x=pnt.x;
y=pnt.y;
z=pnt.z;
boolPoint3D:
operator==(constPoint3D&
if((this->
x==pnt.x)&
&
(this->
y==pnt.y)&
z==pnt.z))
return1;
else
return0;
#endif
源文件:
Point3D.cpp
#include"
Point3D.h"
Point3Dp1(7,8,9);
Point3Dp2(1,2,3);
Point3DPointAdd,PointSub,PointAssign;
Point3DRightComp(1,2,3);
Point3DWrongComp(4,5,6);
PointAdd=p1+p2;
PointSub=p1-p2;
PointAssign=p1;
两点坐标的和:
PointAdd.Print();
两点坐标的差:
PointSub.Print();
两点坐标进行赋值:
PointAssign.Print();
if(RightComp==p2)
cout<
两点坐标值一样."
else
两点坐标值不一样."
if(WrongComp==p2)
3.设计一个时间类Time,包括时、分、秒等私有数据成员。
重载“+”和“-”运算符以实现时间的加法和减法运算,并进行测试。
classTime
inthour,minute,second;
Time(){hour=0;
minute=0;
second=0;
Time(inth,intm,ints){hour=h;
minute=m;
second=s;
voidPrint();
friendTimeoperator+(Timet1,Timet2);
friendTimeoperator-(Timet1,Timet2);
voidTime:
Print()
hour<
minute<
second<
Timeoperator+(Timet1,Timet2)
Timetemp;
temp.hour=t1.hour+t2.hour;
temp.minute=t1.minute+t2.minute;
temp.second=t1.second+t2.second;
temp.minute=temp.minute+temp.second/60;
temp.second%=60;
temp.hour=temp.hour+temp.minute/60;
temp.minute%=60;
temp.hour%=24;
Timeoperator-(Timet1,Timet2)
if(t1.second-t2.second<
0)
{
t1.minute--;
temp.second=t1.second+60-t2.second;
}
temp.second=t1.second-t2.second;
if(t1.minute-t2.minute<
t1.hour--;
temp.minute=t1.minute+60-t2.minute;
temp.minute=t1.minute-t2.minute;
if(t1.hour-t2.hour<
temp.hour=24+t1.hour-t2.hour;
temp.hour=t1.hour-t2.hour;
Timet1(11,42,55),t2(1,1,1);
TimeTimeAdd,TimeSub;
TimeAdd=t1+t2;
TimeSub=t1-t2;
时间相加结果:
TimeAdd.Print();
时间相减结果:
TimeSub.Print();
return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 重载 实验