Advertisement
Leitenantochko

Untitled

Feb 23rd, 2020
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5. #include <string.h>
  6. #include <math.h>
  7.  
  8. struct data
  9. {
  10. /*mvs-минуты в сети
  11. mvds-минуты в другие сети
  12. gorod-минуты на городскую линию
  13. sms-кол-во смс */
  14. int mvs;
  15. int mvds;
  16. int gorod;
  17. int sms;
  18. };
  19.  
  20. struct tarifs
  21. {
  22. char name[16];
  23. float mvsprice;
  24. float mvdsprice;
  25. float gorodprice;
  26. float smsprice;
  27. float abonentprce;
  28. };
  29.  
  30. void vvod(data&);
  31. void raschet(tarifs*, data, float*,int);
  32. void vyvod(tarifs*, int );
  33. void contacts(void);
  34.  
  35. // Вывести меню пользователю и вернуть номер варианта
  36. int prompt_menu_item()
  37. {
  38. // Выбранный вариант меню
  39. int variant;
  40. printf("Выберите вариант\n");
  41. printf("1. Ввод входных параметров\n"
  42. "2. Расчет оптимального тарифа\n"
  43. "3. Информационные услуги(перечень существующих тарифов с описанием)\n"
  44. "4. Обратная связь(контактная информация компании МТС)\n"
  45. "5. Выход из программы\n");
  46. printf(">>> ");
  47. scanf_s("%d", &variant);
  48.  
  49. return variant;
  50. }
  51. int main()
  52. {
  53. system("chcp 1251"); // переходим в консоли на русский язык
  54. data obj;
  55. obj.mvds = 1;
  56. obj.gorod = 1;
  57. obj.mvs = 1;
  58. obj.sms = 1;
  59.  
  60. tarifs* proj;
  61. proj = new tarifs[3];
  62.  
  63. strcpy_s(proj[0].name, "Безлимитище 2.0");
  64. proj[0].mvsprice = 0.045f;
  65. proj[0].mvdsprice = 0.095f;
  66. proj[0].abonentprce = 22.5f;
  67. proj[0].gorodprice = 0.095f;
  68. proj[0].smsprice = 0.075f;
  69.  
  70. strcpy_s(proj[1].name, "Супер max+");
  71. proj[1].mvsprice = 0;
  72. proj[1].mvdsprice = 0;
  73. proj[1].abonentprce = 25.0;
  74. proj[1].gorodprice = 0;
  75. proj[1].smsprice = 0.0595f;
  76.  
  77. strcpy_s(proj[2].name, "Супер");
  78. proj[2].mvsprice = 0.0469f;
  79. proj[2].mvdsprice = 0.1147f;
  80. proj[2].abonentprce = 10.4f;
  81. proj[2].gorodprice = 0.1147f;
  82. proj[2].smsprice = 0.0595f;
  83.  
  84. int variant;
  85. int amount = 3;
  86. float result[3];
  87.  
  88.  
  89. do
  90. {
  91. system("cls");
  92. variant = prompt_menu_item();
  93.  
  94. switch (variant)
  95. {
  96. case 1:
  97. vvod(obj);
  98. break;
  99. case 2:
  100. raschet(proj, obj, result,amount);
  101. break;
  102. case 3:
  103. vyvod(proj, amount);
  104. case 4:
  105. contacts();
  106. }
  107.  
  108. } while (variant != 5);
  109.  
  110. }
  111.  
  112. void vvod(data& obj)
  113. {
  114. printf("Введите количество минут в сети:");
  115. scanf_s("%d", &obj.mvs);
  116.  
  117. printf("Введите количество минут в другие сети:");
  118. scanf_s("%d", &obj.mvds);
  119.  
  120. printf("Введите количество минут для городских линий :");
  121. scanf_s("%d", &obj.gorod);
  122.  
  123. printf("Введите количество sms :");
  124. scanf_s("%d", &obj.sms);
  125. }
  126.  
  127. void raschet(tarifs* proj, data obj, float* result,int amount)
  128. {
  129. float a = 10000.2f;
  130. int index = 0;
  131.  
  132. for (int i = 0; i <amount ; i++)
  133. {
  134. result[i] = (obj.mvs * proj[i].mvsprice) + (obj.mvds * proj[i].mvdsprice) + (obj.gorod * proj[i].gorodprice) + (obj.sms * proj[i].smsprice) + proj->abonentprce;
  135. printf("Ваш тарифный план: %s\n",proj[i].name);
  136. printf("Оплата составит: %.2f\n\n", result[i]);
  137.  
  138. if (result[i] < a)
  139. {
  140. a = result[i];
  141. index = i;
  142. }
  143.  
  144. }
  145. printf("Оптимальный для вас план: %s", proj[index].name);
  146. int r=_getch();
  147. }
  148.  
  149. void vyvod(tarifs* proj, int amount)
  150. {
  151. for (int i = 0; i < amount; i++)
  152. {
  153. printf("Название тарифа:%s\n", proj[i].name);
  154. printf("Стоимость минуты внутри сети: %.2f\n", proj[i].mvsprice);
  155. printf("Стоимость минуты во все сети: %.2f\n", proj[i].mvdsprice);
  156. printf("Стоимость минуты на городской линии: %.2f\n", proj[i].gorodprice);
  157. printf("Стоимость sms:%.2f\n", proj[i].smsprice);
  158. printf("Стоимость абонентской платы:%.2f\n\n", proj[i].abonentprce);
  159. }
  160. int r=_getch();
  161. }
  162.  
  163. void contacts(void)
  164. {
  165. printf("Сайт: mts.by\n");
  166. printf("Онлайн-поддержка: help.mts.by/hc/ru\n");
  167. int r=_getch();
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement