Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 12 / task1 / Bar / Bar.h
blob: 8a1750af8bd9df93e21c02bbca745f86fead4bcc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once
#include <iostream>
#include "../Drinks/AlcoholDrink.h"
#include "../Queue/Queue.hpp"



class Bar
{
	struct Statistics
	{
		size_t mlSold = 0;
		size_t allDrinksSold = 0;
		size_t alcoholDrinksSold = 0;
	};

private:
	Queue<Drink> drinks;
	Queue<AlcoholDrink> alcoholDrinks;

	Statistics stats;

	void incrementStatistics(const Drink& dr, bool isAlcoholDrink = false);

public:

	void addDrink(const char* name, int ml);
	void addAlocoholDrink(const char* name, int ml, int alcohol);

	Drink getDrink();
	AlcoholDrink getAcloholDrink();

	size_t getMlSold();
	size_t getAllDrinksSold();
	size_t getAlcoholDrinksSold();
};