实验二 运算符重载
班级 09计算机2班 学号 Xb09620220 姓名 吴建豪
1. 实验目的:
学习运用运算符重载
2. 实验任务:
1、要求为复数类重载“+”、“ -”、“<<”、“>>”,输出复数的形式为a+bi。
2、定义RMB类,数据成员有yuan、jiao、fen,请为该类定义构造函数、并重载“+”、“-”、“<<”、“>>”。考虑类型的转换。输出的格式:X元y角z分。
1.设计思路
对运算符“+”、“ -”、“<<”、“>>”进行运算符重载,使其适用于复数运算,然后考虑类型的转换。
2.列出代码 220_1.cpp:
#include\"iostream.h\" class complex { public: };
complex complex::operator + (complex &c2) { }
complex complex::operator - (complex &c2) {
complex c;
c.real=real+c2.real; c.imag=imag+c2.imag; return c;
complex operator + (complex &c2); complex operator - (complex &c2);
friend ostream& operator << (ostream &,complex&); friend istream& operator >> (istream &,complex&); double real; double imag;
private:
}
complex c;
c.real=real-c2.real; c.imag=imag-c2.imag; return c;
ostream& operator << (ostream& output,complex& c) { }
istream& operator >> (istream& input,complex& c) { }
void main() { }
complex c1,c2; cin>>c1>>c2; cout<<\"c1:\"<>c.real>>c.imag; return input;output<<\"(\"<220_2.cpp:#include\"iostream.h\" #include\"math.h\" class complex { public:
complex(int a,int b,int c) { }
complex(){}
complex(double rmb) {
double a,b; yuan=a; jiao=b; fen=c;
};
}
a=b=rmb; yuan=(int)a;
jiao=((int)(b*10))%10; fen=((int)(rmb*100))%10;
friend complex operator + (complex c1,complex c2); friend complex operator - (complex c1,complex c2); friend ostream& operator << (ostream &,complex&); friend istream& operator >> (istream &,complex&); int yuan; int jiao; int fen;
private:
complex operator + (complex c1,complex c2) { }
complex operator - (complex c1,complex c2) { }
ostream& operator << (ostream& output,complex& c) {
if(c.fen>=10) { }
if(c.jiao>=10) { }
output<<\" \"<c.yuan=c.yuan+c.jiao/10; c.jiao=c.jiao%10; c.jiao=c.jiao+c.fen/10; c.fen=c.fen%10; double a1,a2,result;a1=(int)c1.yuan+(double)c1.jiao/10+(double)c1.fen/100; a2=(int)c2.yuan+(double)c2.jiao/10+(double)c2.fen/100; result=a1-a2;
return complex((int)result,abs(((int)(result*10)%10)),abs(((int)(result*100)%10))); double a1,a2,result;
a1=(int)c1.yuan+(double)c1.jiao/10+(double)c1.fen/100; a2=(int)c2.yuan+(double)c2.jiao/10+(double)c2.fen/100; result=a1+a2;
return complex((int)result,abs(((int)(result*10)%10)),abs(((int)(result*100)%10)));
}
istream& operator >> (istream& input,complex& c) { }
void main() { }
complex rmb1,rmb2; cin>>rmb1>>rmb2; cout<<\"rmb1:\"<cout<<\"rmb1+rmb2:\"<cout<<\"Please Input:\"; input>>c.yuan>>c.jiao>>c.fen;}while(c.jiao<0 || c.jiao>=10 || c.fen<0 || c.fen>=10); return input;
5.
运行无误结果分析
实验一
实验二