C++

運行結果:

 Enter the first money (dollars): 12.123
 Invalid dollars and cents, negative values

 Enter the first money (dollars): 33.99
 Enter the second money (dollars): 35.33
 The sum is: $69.32

AltMoney.h

#ifndef __frendFuciton__AltMoney__
#define __frendFuciton__AltMoney__

class AltMoney {
private:
    int dollars;
    int cents;
public:
    AltMoney();
    AltMoney(int dollars, int cents);
    AltMoney operator+(const AltMoney& m);
    void show();
};

#endif 

AltMoney.cpp

#include "AltMoney.h"
#include <iostream>

AltMoney::AltMoney() {
    dollars = cents = 0;
}

AltMoney::AltMoney(int dollars, int cents) {
    this->dollars = dollars;
    this->cents = cents;
}

AltMoney AltMoney::operator+(const AltMoney& m) {
    const int CENTS_PER_DOLLAR = 100;
    AltMoney sum;

    sum.cents = cents + m.cents;
    int count = sum.cents / CENTS_PER_DOLLAR;
    sum.cents %= CENTS_PER_DOLLAR;

    sum.dollars = dollars + m.dollars + count;

    return sum;
}

void AltMoney::show() {
    std::cout << "The sum is: " << "$" << dollars << "." << cents;
}

operateOverFlow.cpp

#include "AltMoney.h"
#include <iostream>
#include <cstdlib>

void readMoney(int& dollars, int& cents);

int main() {
    using std::cout;
    using std::cin;

    AltMoney sum;
    int dollars, cents;

    cout << "Enter the first money (dollars): ";
    readMoney(dollars, cents);
    AltMoney m1(dollars, cents);

    cout << "Enter the second money (dollars): ";
    readMoney(dollars, cents);
    AltMoney m2(dollars, cents);

    sum = m1 + m2;
    sum.show();

    return 0;
}

void readMoney(int& dollars, int& cents) {
    using std::cout;
    using std::cin;

    cin >> dollars;
    cin.get();
    cin >> cents;

    if (dollars < 0 || cents < 0 || cents >=100 ) {
        cout << "Invalid dollars and cents, negative values\n";
        exit(EXIT_FAILURE);
    }
}
發佈了111 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章