Advertisement
Metaraddin

Untitled

Mar 27th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. #define Len 11
  5. using namespace std;
  6.  
  7. class Banknote
  8. {
  9. private:
  10. int m_rub[2][Len];
  11.  
  12. public:
  13. 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)
  14. : m_rub{ {1, 2, 5, 10, 50, 100, 200, 500, 1000, 2000, 5000}, {v1, v2, v5, v10, v50, v100, v200, v500, v1000, v2000, v5000} }
  15. {
  16. }
  17.  
  18. int funSum()
  19. {
  20. int sum = 0;
  21. for (int i = 0; i < Len; i++)
  22. {
  23. sum = sum + m_rub[0][i] * m_rub[1][i];
  24. }
  25. return sum;
  26. }
  27.  
  28. int checkRub(int ind) // Возвращает индекс в случе успешной проверки, (-1) - если купюра индификатора "ind" (m_rub[0][ind]) не найдена.
  29. {
  30. for (int i = 0; i < Len; i++)
  31. {
  32. if (ind == m_rub[0][i])
  33. {
  34. return (i);
  35. }
  36. }
  37. return (-1);
  38. }
  39.  
  40. int setRub(int ind, int val) // Добавляет val к кол-ву купюр одного вида и возвращает 0 или возвращает (-1) в случае ошибки.
  41. {
  42. if (checkRub(ind) != -1)
  43. {
  44. m_rub[1][checkRub(ind)] = m_rub[1][checkRub(ind)] + val;
  45. return (0);
  46. }
  47. else return (-1);
  48. }
  49.  
  50. int getRub(int ind) // Возвращает кол-во купюр одного вида или (-1) в случае ошибки.
  51. {
  52. if (checkRub(ind) != -1)
  53. {
  54. return m_rub[1][checkRub(ind)];
  55. }
  56. else return (-1);
  57. }
  58. };
  59.  
  60. class Ingredient
  61. {
  62. private:
  63. int m_largeCup;
  64. int m_smallCup;
  65. int m_water;
  66. int m_beans;
  67. int m_milk;
  68. int m_cream;
  69. int m_whiskey;
  70. int m_sugar;
  71.  
  72. public:
  73. 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)
  74. : m_largeCup{ largeCup },
  75. m_smallCup{ smallCup },
  76. m_water{ water },
  77. m_beans{ beans },
  78. m_milk{ milk },
  79. m_cream{ cream },
  80. m_whiskey{ whiskey },
  81. m_sugar{ sugar }
  82. {
  83. }
  84.  
  85. };
  86.  
  87. class Coffee
  88. {
  89. private:
  90. Ingredient m_recipe;
  91. string m_name;
  92. int m_price;
  93.  
  94. public:
  95. 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)
  96. : m_recipe(largeCup, smallCup, water, beans, milk, cream, whiskey, sugar),
  97. m_name{ name },
  98. m_price{ price }
  99. {
  100. }
  101. };
  102.  
  103. void DefAnn(); // Изначальные значения.
  104.  
  105. int main()
  106. {
  107. DefAnn();
  108. cin.get(); cin.get();
  109. return 0;
  110. }
  111.  
  112. void DefAnn() // Изначальные значения.
  113. {
  114. Banknote balance(100, 100, 100, 100, 50, 50, 25, 10, 6, 3, 1); // Баланс автомата.
  115. Ingredient stock(); // Запас продуктов в автомате.
  116.  
  117. // Рецепты кофе, названия и цены.
  118. Coffee r_espresso(0, 1, 30, 7, 0, 0, 0, 0, "Espresso", 0);
  119. Coffee r_doubleespresso(1, 0, 60, 10, 0, 0, 0, 0, "Double Espresso", 0);
  120. Coffee r_ristretto(0, 1, 18, 10, 0, 0, 0, 0, "Ristretto", 0);
  121. Coffee r_americano(1, 0, 60, 7, 0, 0, 0, 0, "Americano", 0);
  122. Coffee r_cappuccino(1, 0, 10, 3, 10, 0, 0, 0, "Cappuccino", 0);
  123. Coffee r_latte(0, 1, 10, 3, 20, 0, 0, 0, "Latte", 0);
  124. Coffee r_macchiato(0, 1, 30, 7, 5, 0, 0, 0, "Macchiato", 0);
  125. Coffee r_viennese(1, 0, 30, 7, 0, 20, 0, 0, "Viennese", 0);
  126. Coffee r_irish(1, 0, 30, 7, 0, 5, 7, 0, "Irish", 0);
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement