#include<iostream>
#include<string>
using namespace std;
class CMoney
{
private:
int yuan;
int jiao;
int feng;
public:
CMoney()
{
yuan = 0;
jiao = 0;
feng = 0;
}
//类对象的输出流
friend ostream& operator <<(ostream& cout, CMoney& p)
{
cout << p.yuan << "元" << p.jiao << "角" << p.feng << "分" << endl;
return cout;
}
//类对象的输入流
friend istream& operator >>(istream& cin, CMoney& p)
{
cin >> p.yuan >> p.jiao >> p.feng;
return cin;
}
CMoney(int y, int j, int f) :yuan(y), jiao(j), feng(f) {};
friend CMoney operator+(CMoney &p1, CMoney& p2);
friend CMoney operator-(CMoney& p1, CMoney& p2);
};
CMoney operator+(CMoney& p1, CMoney& p2)
{
int feng1 = p1.feng + 10 * p1.jiao + 100 * p1.yuan;
int feng2 = p2.feng + 10 * p2.jiao + 100 * p2.yuan;
int sum = feng1 + feng2;
int f = sum % 10;
int j = sum / 10 % 10;
int y = sum / 100;
CMoney temp(y, j, f);
return temp;
}
CMoney operator-(CMoney& p1, CMoney& p2)
{
int feng1 = p1.feng + 10 * p1.jiao + 100 * p1.yuan;
int feng2 = p2.feng + 10 * p2.jiao + 100 * p2.yuan;
int sum = feng1 - feng2;
int f = sum % 10;
int j = sum / 10 % 10;
int y = sum / 100;
CMoney temp(y, j, f);
return temp;
}
int main()
{
int sum;
int y, j, f;
string caozuo;
cin >> sum;
while (sum--)
{
CMoney c1;
cin >> c1; //输入对象流
cin >> caozuo;
CMoney c2;
while (caozuo !="stop")
{
if (caozuo == "add") {
cin >> c2;
c1 = c1 + c2;
}
if (caozuo == "minus")
{
cin >> c2;
c1 = c1 - c2;
}
cin >> caozuo;
}
cout << c1;
}
return 0;
}
C++左移右移(<<,>>)运算符重载
最新推荐文章于 2024-07-14 13:39:50 发布