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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//Написать программу-меню, которая выводила бы на
//экран название мобильного оператора и стоимость
//телефонного разговора за минуту. У пользователя необходимо
//запросить код мобильного оператора и продолжительность
//разговора. Определить затраченную
//на звонок сумму денег. Ниже предоставлен пример
//вывода меню.
//
//Таблица
//Mobile operators | Code | Price per minute, UAH
//Kyivstar | 67 | 3.00
//Vodafone | 66 | 2.50
//Life | 63 | 2.00
#include
#include
#include
enum MobileOperatorCode
{
LIFE = 63,
VODAFONE = 66,
KYIVSTAR = 67
};
std::map phoneTalkPricePerMinute
{
{ MobileOperatorCode::LIFE, 2.0 },
{ MobileOperatorCode::VODAFONE, 2.5 },
{ MobileOperatorCode::KYIVSTAR, 3.0 }
};
std::map mobileOperator
{
{ MobileOperatorCode::LIFE, "Life" },
{ MobileOperatorCode::VODAFONE, "Vodafone" },
{ MobileOperatorCode::KYIVSTAR, "Kyivstar"}
};
struct MobileOperator
{
MobileOperatorCode code;
std::string name;
double pricePerMinute;
explicit MobileOperator(int code_)
{
code = static_cast(code_);
name = mobileOperator[code];
pricePerMinute = phoneTalkPricePerMinute[code];
}
};
void show_menu()
{
std::string delimiter = " | ";
std::cout
for (const auto & elem : mobileOperator)
{
std::cout
}
std::cout
}
double calc_phone_talk_price(double talkLength, const MobileOperator & mop)
{
return talkLength * mop.pricePerMinute;
}
MobileOperator get_mobile_operator()
{
std::cout
int code;
std::cin >> code ;
MobileOperator mop(code);
return mop;
}
double get_talk_length()
{
std::cout
double talkLength;
std::cin >> talkLength;
return talkLength;
}
int main()
{
show_menu();
std::cout
}
0