Währungsaddition und -subtraktion (Input- und Output-Überladung)

【id:322】【1分】H. 货币加减(输入输出重载)
时间限制
1s
内存限制
128MB
题目描述

定义CMoney类,包含元、角、分三个数据成员,友元函数重载‘+’、'-',实现货币的加减运算(假设a-b中a的金额始终大于等于b的金额),重载输入、输出,实现货币的输入,输出。

读入最初的货币值,对其不断进行加、减操作,输出结果。

可根据需要,为CMoney类添加构造函数或其它成员函数。


输入

测试次数

每组测试数据格式如下:

第一行,初始货币:元 角 分

第二行开始,每行一个操作:add 元 角 分(加)、minus 元 角 分(减)、stop(结束)


输出

对每组测试数据,输出操作终止后的货币金额,具体输出格式见样例。


样例查看模式 
正常显示
查看格式
输入样例1 <-复制
2
0 0 0
add 48 9 0
minus 0 5 3
add 18 6 8
add 12 1 2
stop
10 2 5
add 5 8 0
add 32 1 2
minus 10 5 9
minus 37 5 8
stop



输出样例1
79元1角7分
0元0角0分

Das Format der Operatorüberladung:

CMoney &operator+(CMoney one) {

int temp = (y + one.y) * 100 + (j + one.j) * 10 + (f + one.f);

y = Temperatur / 100;

j = (Temperatur % 100) / 10;

f = Temperatur % 10;

return *this;

}

#include<iostream>
#include<string>
#include<cstring>
#include <iomanip>

#define PI 3.14
using namespace std;

//定义 CMoney 类,包含元、角、分三个数据成员,友元函数重载‘+’、'-',
// 实现货币的加减运算(假设a-b中a的金额始终大于等于b的金额),重载输入、输出,实现货币的输入,输出。
class CMoney {
public:
    int y;
    int j;
    int f;

    CMoney(int y, int j, int f) : y(y), j(j), f(f) {}

    CMoney &operator+(CMoney one) {
        int temp = (y + one.y) * 100 + (j + one.j) * 10 + (f + one.f);
        y = temp / 100;
        j = (temp % 100) / 10;
        f = temp % 10;
        return *this;
    }

    CMoney &operator-(CMoney one) {
        int temp = (y - one.y) * 100 + (j - one.j) * 10 + (f - one.f);
        y = temp / 100;
        j = (temp % 100) / 10;
        f = temp % 10;
        return *this;
    }

    void print() {
        cout << y << "元" << j << "角" << f << "分" << endl;
    }
};

int main() {
    //测试次数
    //
    // 每组测试数据格式如下:
    //
    // 第一行,初始货币:元 角 分
    //
    // 第二行开始,每行一个操作:add 元 角 分(加)、minus 元 角 分(减)、stop(结束)
    int times;
    cin >> times;
    int y;
    int j;
    int f;
    while (times--) {
        cin >> y >> j >> f;
        CMoney cMoney(y, j, f);

        string oper = "";
        cin >> oper;
        while (oper != "stop") {
            cin >> y >> j >> f;
            CMoney temp(y, j, f);
            if (oper == "add") {
                cMoney = cMoney + temp;
            } else if (oper == "minus") {
                cMoney = cMoney - temp;

            }
            cin >> oper;
        }
        cMoney.print();


    }
}

Supongo que te gusta

Origin blog.csdn.net/m0_62288512/article/details/131580221
Recomendado
Clasificación