#include <iostream>
using namespace std;
class Sparschwein{
int inhalt;
int muenzen[3] {0, 0, 0};
public:
Sparschwein();
Sparschwein(int coin);
Sparschwein(int firstCoin, int secondCoin, int thirdCoin);
void print();
void einwerfen(int firstCoin, int secondCoind, int thirdCoin);
void leeren();
private:
void einwerfen(int coin);
};
Sparschwein::Sparschwein()
{
this->inhalt = 0;
}
Sparschwein::Sparschwein(int coin)
{
this->einwerfen(coin);
}
Sparschwein::Sparschwein(int firstCoin, int secondCoin, int thirdCoin)
{
this->einwerfen(firstCoin, secondCoin, thirdCoin);
}
void Sparschwein::print()
{
cout << this->muenzen[0] << "x 1 cent +" << this->muenzen[1] << "x 5 cent + " << this->muenzen[2] << "x 10 cent = " << this->inhalt << " cent" << endl;
}
void Sparschwein::einwerfen(int firstCoin, int secondCoin, int thirdCoin) {
this->einwerfen(firstCoin);
this->einwerfen(secondCoin);
this->einwerfen(thirdCoin);
}
void Sparschwein::einwerfen(int coin)
{
if(coin != 1 && coin != 5 && coin != 10)
throw std::range_error("Münzwert ist ungültig.");
this->inhalt += coin;
if(coin == 1)
this->muenzen[0] += 1;
else if(coin == 5)
this->muenzen[1] += 1;
else if(coin == 10)
this->muenzen[2] += 1;
}
void Sparschwein::leeren() {
this->inhalt = 0;
this->muenzen[0] = 0;
this->muenzen[1] = 0;
this->muenzen[2] = 0;
}
int main () {
Sparschwein a;
a.print();
Sparschwein b = 10;
b.print();
Sparschwein c(47, 11, 42);
c.print();
Sparschwein d;
d.einwerfen(0, 8, 15);
d.print();
d.leeren();
d.print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiAKY2xhc3MgU3BhcnNjaHdlaW57CiAKICAgIGludCBpbmhhbHQ7CiAgICBpbnQgbXVlbnplblszXSB7MCwgMCwgMH07CgogICAgcHVibGljOgogICAgICAgIFNwYXJzY2h3ZWluKCk7CiAgICAgICAgU3BhcnNjaHdlaW4oaW50IGNvaW4pOwogICAgICAgIFNwYXJzY2h3ZWluKGludCBmaXJzdENvaW4sIGludCBzZWNvbmRDb2luLCBpbnQgdGhpcmRDb2luKTsKICAgICAgICB2b2lkIHByaW50KCk7CiAgICAgICAgdm9pZCBlaW53ZXJmZW4oaW50IGZpcnN0Q29pbiwgaW50IHNlY29uZENvaW5kLCBpbnQgdGhpcmRDb2luKTsKICAgICAgICB2b2lkIGxlZXJlbigpOwogICAgICAgIAogICAgcHJpdmF0ZToKICAgIAl2b2lkIGVpbndlcmZlbihpbnQgY29pbik7CiAKfTsKClNwYXJzY2h3ZWluOjpTcGFyc2Nod2VpbigpCnsKCXRoaXMtPmluaGFsdCA9IDA7Cn0KClNwYXJzY2h3ZWluOjpTcGFyc2Nod2VpbihpbnQgY29pbikKewoJdGhpcy0+ZWlud2VyZmVuKGNvaW4pOwp9CgpTcGFyc2Nod2Vpbjo6U3BhcnNjaHdlaW4oaW50IGZpcnN0Q29pbiwgaW50IHNlY29uZENvaW4sIGludCB0aGlyZENvaW4pCnsKCXRoaXMtPmVpbndlcmZlbihmaXJzdENvaW4sIHNlY29uZENvaW4sIHRoaXJkQ29pbik7Cn0KCnZvaWQgU3BhcnNjaHdlaW46OnByaW50KCkKewoJY291dCA8PCB0aGlzLT5tdWVuemVuWzBdIDw8ICJ4IDEgY2VudCArIiA8PCB0aGlzLT5tdWVuemVuWzFdIDw8ICJ4IDUgY2VudCArICIgPDwgdGhpcy0+bXVlbnplblsyXSA8PCAieCAxMCBjZW50ID0gIiA8PCB0aGlzLT5pbmhhbHQgPDwgIiBjZW50IiA8PCBlbmRsOyAKfQoKdm9pZCBTcGFyc2Nod2Vpbjo6ZWlud2VyZmVuKGludCBmaXJzdENvaW4sIGludCBzZWNvbmRDb2luLCBpbnQgdGhpcmRDb2luKSB7CiAgICB0aGlzLT5laW53ZXJmZW4oZmlyc3RDb2luKTsKICAgIHRoaXMtPmVpbndlcmZlbihzZWNvbmRDb2luKTsKICAgIHRoaXMtPmVpbndlcmZlbih0aGlyZENvaW4pOwp9Cgp2b2lkIFNwYXJzY2h3ZWluOjplaW53ZXJmZW4oaW50IGNvaW4pCnsKCWlmKGNvaW4gIT0gMSAmJiBjb2luICE9IDUgJiYgY29pbiAhPSAxMCkKCQl0aHJvdyBzdGQ6OnJhbmdlX2Vycm9yKCJNw7xuendlcnQgaXN0IHVuZ8O8bHRpZy4iKTsKCQkKCXRoaXMtPmluaGFsdCArPSBjb2luOwoJaWYoY29pbiA9PSAxKQoJCXRoaXMtPm11ZW56ZW5bMF0gKz0gMTsKCWVsc2UgaWYoY29pbiA9PSA1KQoJCXRoaXMtPm11ZW56ZW5bMV0gKz0gMTsKCWVsc2UgaWYoY29pbiA9PSAxMCkKCQl0aGlzLT5tdWVuemVuWzJdICs9IDE7Cn0KIAp2b2lkIFNwYXJzY2h3ZWluOjpsZWVyZW4oKSB7CiAgICB0aGlzLT5pbmhhbHQgPSAwOwogICAgdGhpcy0+bXVlbnplblswXSA9IDA7CiAgICB0aGlzLT5tdWVuemVuWzFdID0gMDsKICAgIHRoaXMtPm11ZW56ZW5bMl0gPSAwOwp9CgogCmludCBtYWluICgpIHsKIAogICAgU3BhcnNjaHdlaW4gYTsKICAgIGEucHJpbnQoKTsKIAogICAgU3BhcnNjaHdlaW4gYiA9IDEwOwogICAgYi5wcmludCgpOwogCiAgICBTcGFyc2Nod2VpbiBjKDQ3LCAxMSwgNDIpOwogICAgYy5wcmludCgpOwogCiAgICBTcGFyc2Nod2VpbiBkOwogICAgZC5laW53ZXJmZW4oMCwgOCwgMTUpOwogICAgZC5wcmludCgpOwogCiAgICBkLmxlZXJlbigpOwogICAgZC5wcmludCgpOwogCiAKcmV0dXJuIDA7Cn0KCg==