diff options
sem 12
1 files changed, 45 insertions, 0 deletions
| -rw-r--r-- | Sem. 12/task1/Bar/Bar.cpp | 45 |
diff --git a/Sem. 12/task1/Bar/Bar.cpp b/Sem. 12/task1/Bar/Bar.cpp new file mode 100644 index 0000000..e702d15 --- /dev/null +++ b/Sem. 12/task1/Bar/Bar.cpp @@ -0,0 +1,45 @@ +#include "Bar.h" + +void Bar::addDrink(const char* name, int ml) +{ + drinks.enqueue(Drink(name, ml)); +} +void Bar::addAlocoholDrink(const char* name, int ml, int alcohol) +{ + alcoholDrinks.enqueue(AlcoholDrink(name, ml, alcohol)); +} + +Drink Bar::getDrink() +{ + Drink d = drinks.dequeue(); + incrementStatistics(d); + return d; +} +AlcoholDrink Bar::getAcloholDrink() +{ + AlcoholDrink d = alcoholDrinks.dequeue(); + incrementStatistics(d, true); + return d; +} + +void Bar::incrementStatistics(const Drink& dr, bool isAlcoholDrink) +{ + stats.mlSold += dr.getMl(); + stats.allDrinksSold++; + + if (isAlcoholDrink) + stats.alcoholDrinksSold++; +} + +size_t Bar::getMlSold() +{ + return stats.mlSold; +} +size_t Bar::getAllDrinksSold() +{ + return stats.allDrinksSold; +} +size_t Bar::getAlcoholDrinksSold() +{ + return stats.alcoholDrinksSold; +}
\ No newline at end of file |
