Advertisement
Sanlover

Untitled

Oct 18th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <string>
  4. #include <windows.h>
  5. using namespace std;
  6.  
  7. class Money {
  8. int rub10 = 0; // 10 рублей
  9. int rub50 = 0; // 50 рублей
  10. int rub100 = 0; // 100 рублей
  11. int rub500 = 0; // 500 рублей
  12. int rub1000 = 0; // 1000 рублей
  13. int rub5000 = 0; // 5000 рублей
  14. int kop10 = 0; // 10 копеек
  15. int kop50 = 0; // 50 копеек
  16. public:
  17.  
  18. Money() // конструктор
  19. {
  20. rub10 = 0;
  21. rub50 = 0;
  22. rub100 = 0;
  23. rub500 = 0;
  24. rub1000 = 0;
  25. rub5000 = 0;
  26. kop10 = 0;
  27. kop50 = 0;
  28. }
  29.  
  30. Money(int r10, int r50, int r100, int r500, int r1000, int r5000, int k10, int k50) // конструктор
  31. {
  32. if ((rub10 >= 0) || (rub50 >= 0) || (rub100 >= 0) || (rub500 >= 0) || (rub1000 >= 0) || (rub5000 >= 0) || (kop10 >= 0) || (kop50 >= 0))
  33. {
  34. rub10 = r10;
  35. rub50 = r50;
  36. rub100 = r100;
  37. rub500 = r500;
  38. rub1000 = r1000;
  39. rub5000 = r5000;
  40. kop10 = k10;
  41. kop50 = k50;
  42. }
  43. }
  44.  
  45. void set_rub10(int r10)
  46. {
  47. rub10 = r10;
  48. }
  49.  
  50. void set_rub50(int r50)
  51. {
  52. rub50 = r50;
  53. }
  54.  
  55. void set_rub100(int r100)
  56. {
  57. rub100 = r100;
  58. }
  59.  
  60. void set_rub500(int r500)
  61. {
  62. rub500 = r500;
  63. }
  64.  
  65. void set_rub1000(int r1000)
  66. {
  67. rub1000 = r1000;
  68. }
  69.  
  70. void set_rub5000(int r5000)
  71. {
  72. rub5000 = r5000;
  73. }
  74.  
  75. void set_kop10(int k10)
  76. {
  77. kop10 = k10;
  78. }
  79.  
  80. void set_kop50(int k50)
  81. {
  82. kop50 = k50;
  83. }
  84.  
  85. int get_rub10()
  86. {
  87. return rub10;
  88. }
  89.  
  90. int get_rub50()
  91. {
  92. return rub50;
  93. }
  94.  
  95. int get_rub100()
  96. {
  97. return rub100;
  98. }
  99.  
  100. int get_rub500()
  101. {
  102. return rub500;
  103. }
  104.  
  105. int get_rub1000()
  106. {
  107. return rub1000;
  108. }
  109.  
  110. int get_rub5000()
  111. {
  112. return rub5000;
  113. }
  114.  
  115. int get_kop10()
  116. {
  117. return kop10;
  118. }
  119.  
  120. int get_kop50()
  121. {
  122. return kop50;
  123. }
  124.  
  125. double TotalSumm()
  126. {
  127. return (rub10 * 10 + rub50 * 50 + rub100 * 100 + rub500 * 500 + rub1000 * 1000 + rub5000 * 5000 + kop10 * 10 / 100.0 + kop50 * 50 / 100.0);
  128. }
  129.  
  130. void read();
  131. Money add(Money&);
  132. Money sub(Money&);
  133. double div(Money&);
  134. double div_sum_on_fraction(double ch);
  135. double multiplication_on_fraction(double ch);
  136. bool comparison(Money&, Money&);
  137. };
  138.  
  139. Money read()
  140. {
  141. int r10 = 0, r50 = 0, r100 = 0, r500 = 0, r1000 = 0, r5000 = 0, k10 = 0, k50 = 0;
  142. cout << "РУБЛИ" << endl;
  143. cout << "Введите количество купюр номиналом 10 рублей: "; cin >> r10;
  144. cout << "Введите количество купюр номиналом 50 рублей: "; cin >> r50;
  145. cout << "Введите количество купбр номиналом 100 рублей: "; cin >> r100;
  146. cout << "Введите количество купюр номиналом 500 рублей: "; cin >> r500;
  147. cout << "Введите количество купюр номиналом 1000 рублей: "; cin >> r1000;
  148. cout << "Введите количество купюр номиналом 5000 рублей: "; cin >> r5000;
  149. cout << "КОПЕЙКИ" << endl;
  150. cout << "Введите количесвто копеек номиналом 10: "; cin >> k10;
  151. cout << "Введите количество копеек номиналом 50: "; cin >> k50;
  152.  
  153. return Money(r10, r50, r100, r500, r1000, r5000, k10, k50);
  154. }
  155.  
  156. void read(int r10, int r50, int r100, int r500, int r1000, int r5000, int k10, int k50)
  157. {
  158. cout << "РУБЛИ" << endl;
  159. cout << "Введите количество купюр номиналом 10 рублей: "; cin >> r10;
  160. cout << "Введите количество купюр номиналом 50 рублей: "; cin >> r50;
  161. cout << "Введите количество купбр номиналом 100 рублей: "; cin >> r100;
  162. cout << "Введите количество купюр номиналом 500 рублей: "; cin >> r500;
  163. cout << "Введите количество купюр номиналом 1000 рублей: "; cin >> r1000;
  164. cout << "Введите количество купюр номиналом 5000 рублей: "; cin >> r5000;
  165. cout << "КОПЕЙКИ" << endl;
  166. cout << "Введите количесвто копеек номиналом 10: "; cin >> k10;
  167. cout << "Введите количество копеек номиналом 50: "; cin >> k50;
  168. }
  169.  
  170. Money Money::add(Money& b)
  171. {
  172. return Money(kop10 + b.kop10, kop50 + b.kop50, rub10 + b.rub10, rub50 + b.rub50, rub100 + b.rub100, rub500 + b.rub500, rub1000 + b.rub1000, rub5000 + b.rub5000);
  173. }
  174.  
  175. Money Money::sub(Money& b)
  176. {
  177. if (b.kop10 > kop10 || b.kop50 > kop50 || b.rub10 > rub10 || b.rub50 > rub50 || b.rub100 > rub100
  178. || b.rub500 > rub500 || b.rub1000 > rub1000 || b.rub5000 > rub5000)
  179. throw exception("Низя вычитац, патамучта слишком много деняк");
  180. return Money(kop10 - b.kop10, kop50 - b.kop50, rub10 - b.rub10, rub50 - b.rub50, rub100 - b.rub100, rub500 - b.rub500, rub1000 - b.rub1000, rub5000 - b.rub5000);
  181. }
  182.  
  183. double Money::div(Money& b)
  184. {
  185. return TotalSumm() / static_cast<double>(b.TotalSumm());
  186. }
  187.  
  188. double Money::div_sum_on_fraction(double ch)
  189. {
  190. return TotalSumm() / ch;
  191. }
  192.  
  193. double Money::multiplication_on_fraction(double ch)
  194. {
  195. return TotalSumm() * ch;
  196. }
  197.  
  198. bool Money::comparison(Money& a, Money& b)
  199. {
  200. if (a.TotalSumm() > b.TotalSumm())
  201. cout << "A > B" << endl;
  202. else if (a.TotalSumm() < b.TotalSumm())
  203. cout << "A < B" << endl;
  204. else if (a.TotalSumm() == b.TotalSumm())
  205. cout << "A = B" << endl;
  206. else return 0;
  207. }
  208.  
  209. //__________________________________________________________________________
  210.  
  211. int main()
  212. {
  213. SetConsoleCP(1251);
  214. SetConsoleOutputCP(1251);
  215.  
  216. Money sht;
  217. Money a, b;
  218.  
  219. cout << "ВВОДИТЕ СВОИ ДАННЫЕ: " << endl;
  220. cout << "Ввод суммы A: " << endl;
  221. a = read();
  222. cout << endl << "A total = " << a.TotalSumm() << endl;
  223. cout << endl;
  224. cout << "Ввод cуммы B: " << endl;
  225. b = read();
  226. cout << endl << "B total = " << b.TotalSumm() << endl;
  227. cout << endl;
  228.  
  229. int choice;
  230. do {
  231. cout << "Выберите номер действия\n";
  232. cout << "1. Сложение сумм\n";
  233. cout << "2. Вычитание сумм\n";
  234. cout << "3. Деление сумм\n";
  235. cout << "4. Деление суммы на дробное число\n";
  236. cout << "5. Умножение суммы на дробное числ\n";
  237. cout << "6. Сравнение сумм\n";
  238. cout << "0. Выйти\n";
  239.  
  240. cin >> choice;
  241.  
  242. switch (choice) {
  243. case 1:
  244. {
  245. Money c = a.add(b);
  246. cout << "A + B = " << c.TotalSumm() << endl;
  247. break;
  248. }
  249. case 2:
  250. {
  251. Money d = a.sub(b);
  252. cout << "A - B = " << d.TotalSumm() << endl;
  253. break;
  254. }
  255. case 3:
  256. {
  257. double e = a.div(b);
  258. cout << "A / B = " << e << endl;
  259. break;
  260. }
  261. case 4:
  262. {
  263. double chislo;
  264. cout << "введите дробное число\n";
  265. cin >> chislo;
  266. a.div_sum_on_fraction(chislo);
  267. b.div_sum_on_fraction(chislo);
  268. cout << "A / число = " << a.TotalSumm() << endl;
  269. cout << "B / число = " << b.TotalSumm() << endl;
  270. break;
  271. }
  272. case 5:
  273. {
  274. double chislo;
  275. cout << "введите дробное число\n";
  276. cin >> chislo;
  277. a.multiplication_on_fraction(chislo);
  278. b.multiplication_on_fraction(chislo);
  279. cout << "A * число = " << a.TotalSumm() << endl;
  280. cout << "B * число = " << b.TotalSumm() << endl;
  281. break;
  282. }
  283. case 6:
  284. {
  285. cout << "Сравнение : ";
  286. cout << sht.comparison(a, b) << endl;
  287. break;
  288. }
  289. default:
  290. {
  291. cout << "Программа завершена\n";
  292. break;
  293. }
  294. }
  295. } while (choice);
  296.  
  297. system("pause");
  298. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement