Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Money.h"
- #include <iostream>
- Money::Money() : leva(0), stotinki(0)
- {
- }
- Money::Money(int lv, int st)
- {
- leva = lv;
- stotinki = st;
- }
- double Money::makeMoney(int lv, int st)
- {
- double sum = lv + ((double)st / 100);
- return sum;
- }
- Money::~Money()
- {
- }
- Money::Money(const Money & rhs)
- {
- leva = rhs.leva;
- stotinki = rhs.stotinki;
- }
- Money & Money::operator=(const Money & rhs)
- {
- leva = rhs.leva;
- stotinki = rhs.stotinki;
- return *this;
- }
- bool Money::operator<(const Money & rhs)
- {
- double sum = leva + ((double)stotinki / 100);
- double rhsSum = rhs.leva + ((double)rhs.stotinki / 100);
- return sum < rhsSum;
- }
- bool Money::operator>(const Money & rhs)
- {
- double sum = leva + ((double)stotinki / 100);
- double rhsSum = rhs.leva + ((double)rhs.stotinki / 100);
- return sum > rhsSum;
- }
- Money Money::operator+(const Money & rhs)
- {
- int sum = 100 * leva + stotinki;
- int rhsSum = 100 * rhs.leva + rhs.stotinki;
- int totalLv = (sum + rhsSum) / 100;
- int totalSt = (sum + rhsSum) % 100;
- Money res(totalLv, totalSt);
- return res;
- }
- Money Money::operator-(const Money & rhs)
- {
- int sum = 100 * leva + stotinki;
- int rhsSum = 100 * rhs.leva - rhs.stotinki;
- int totalLv = (sum - rhsSum) / 100;
- int totalSt = (sum - rhsSum) % 100;
- Money res(totalLv, totalSt);
- return res;
- }
- int Money::getLeva() const
- {
- return leva;
- }
- int Money::getStotinki() const
- {
- return stotinki;
- }
- void Money::setLeva(int leva)
- {
- this->leva = (leva > 0) ? leva : 0;
- }
- void Money::setStotinki(int stotinki)
- {
- this->stotinki = (stotinki > 0) ? stotinki : 0;
- }
- int Money::print() const
- {
- std::cout << leva << '.' << stotinki << std::endl;
- return 0;
- }
- std::ostream & operator<<(std::ostream & out, const Money& rhs)
- {
- out << rhs.getLeva() << " lv and " << rhs.getStotinki() << " st" << std::endl;
- return out;
- }
- std::istream & operator>>(std::istream & in, Money & rhs)
- {
- int lv, st;
- in >> lv;
- in >> st;
- rhs.setLeva(lv);
- rhs.setStotinki(st);
- }
- Money operator%(const double percent, const Money & rhs)
- {
- int sum = 100 * rhs.leva + rhs.stotinki;
- int percentRhs = (sum * percent) / 100;
- int newLv = percentRhs / 100;
- int newSt = percentRhs % 100;
- Money res(newLv, newSt);
- return res;
- }
- Money operator*(const double num, const Money & rhs)
- {
- int sum = 100 * rhs.getLeva() + rhs.getStotinki();
- int prodLv = num * (sum / 100);
- int prodSt = num * (sum % 100);
- Money res(prodLv, prodSt);
- return res;
- }
- Money operator/(const double num, const Money & rhs)
- {
- int sum = 100 * rhs.getLeva() + rhs.getStotinki();
- int prodLv = (sum / 100) / num;
- int prodSt = (sum % 100) / num;
- Money res(prodLv, prodSt);
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement