Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- #define Len 11
- using namespace std;
- class Banknote
- {
- private:
- int m_rub[2][Len];
- public:
- Banknote(int v1 = 0, int v2 = 0, int v5 = 0, int v10 = 0, int v50 = 0, int v100 = 0, int v200 = 0, int v500 = 0, int v1000 = 0, int v2000 = 0, int v5000 = 0)
- : m_rub{ {1, 2, 5, 10, 50, 100, 200, 500, 1000, 2000, 5000}, {v1, v2, v5, v10, v50, v100, v200, v500, v1000, v2000, v5000} }
- {
- }
- int funSum()
- {
- int sum = 0;
- for (int i = 0; i < Len; i++)
- {
- sum = sum + m_rub[0][i] * m_rub[1][i];
- }
- return sum;
- }
- int checkRub(int ind) // Возвращает индекс в случе успешной проверки, (-1) - если купюра индификатора "ind" (m_rub[0][ind]) не найдена.
- {
- for (int i = 0; i < Len; i++)
- {
- if (ind == m_rub[0][i])
- {
- return (i);
- }
- }
- return (-1);
- }
- int setRub(int ind, int val) // Добавляет val к кол-ву купюр одного вида и возвращает 0 или возвращает (-1) в случае ошибки.
- {
- if (checkRub(ind) != -1)
- {
- m_rub[1][checkRub(ind)] = m_rub[1][checkRub(ind)] + val;
- return (0);
- }
- else return (-1);
- }
- int getRub(int ind) // Возвращает кол-во купюр одного вида или (-1) в случае ошибки.
- {
- if (checkRub(ind) != -1)
- {
- return m_rub[1][checkRub(ind)];
- }
- else return (-1);
- }
- };
- class Ingredient
- {
- private:
- int m_largeCup;
- int m_smallCup;
- int m_water;
- int m_beans;
- int m_milk;
- int m_cream;
- int m_whiskey;
- int m_sugar;
- public:
- Ingredient(int largeCup = 0, int smallCup = 0, int water = 0, int beans = 0, int milk = 0, int cream = 0, int whiskey = 0, int sugar = 0)
- : m_largeCup{ largeCup },
- m_smallCup{ smallCup },
- m_water{ water },
- m_beans{ beans },
- m_milk{ milk },
- m_cream{ cream },
- m_whiskey{ whiskey },
- m_sugar{ sugar }
- {
- }
- };
- class Coffee
- {
- private:
- Ingredient m_recipe;
- string m_name;
- int m_price;
- public:
- Coffee(int largeCup = 0, int smallCup = 0, int water = 0, int beans = 0, int milk = 0, int cream = 0, int whiskey = 0, int sugar = 0, string name = '\0', int price = 0)
- : m_recipe(largeCup, smallCup, water, beans, milk, cream, whiskey, sugar),
- m_name{ name },
- m_price{ price }
- {
- }
- };
- void DefAnn(); // Изначальные значения.
- int main()
- {
- DefAnn();
- cin.get(); cin.get();
- return 0;
- }
- void DefAnn() // Изначальные значения.
- {
- Banknote balance(100, 100, 100, 100, 50, 50, 25, 10, 6, 3, 1); // Баланс автомата.
- Ingredient stock(); // Запас продуктов в автомате.
- // Рецепты кофе, названия и цены.
- Coffee r_espresso(0, 1, 30, 7, 0, 0, 0, 0, "Espresso", 0);
- Coffee r_doubleespresso(1, 0, 60, 10, 0, 0, 0, 0, "Double Espresso", 0);
- Coffee r_ristretto(0, 1, 18, 10, 0, 0, 0, 0, "Ristretto", 0);
- Coffee r_americano(1, 0, 60, 7, 0, 0, 0, 0, "Americano", 0);
- Coffee r_cappuccino(1, 0, 10, 3, 10, 0, 0, 0, "Cappuccino", 0);
- Coffee r_latte(0, 1, 10, 3, 20, 0, 0, 0, "Latte", 0);
- Coffee r_macchiato(0, 1, 30, 7, 5, 0, 0, 0, "Macchiato", 0);
- Coffee r_viennese(1, 0, 30, 7, 0, 20, 0, 0, "Viennese", 0);
- Coffee r_irish(1, 0, 30, 7, 0, 5, 7, 0, "Irish", 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement