forked from cpp-tutor/learnmoderncpp-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path07-map.cpp
More file actions
52 lines (50 loc) · 1.54 KB
/
07-map.cpp
File metadata and controls
52 lines (50 loc) · 1.54 KB
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
// 07-map.cpp : calculate prices from associative array of products and per-weight cost
import std;
using namespace std;
int main() {
map<string,double> products{
{ "Apples", 0.65 },
{ "Oranges", 0.85 },
{ "Bananas", 0.45 },
{ "Pears", 0.50 }
};
cout.precision(2);
cout << fixed;
for (;;) {
cout << "Please choose: Add product, Calculate price, Quit\nEnter one of A, C, Q: ";
char opt;
cin >> opt;
opt = toupper(opt);
if (opt == 'Q') {
break;
}
else if (opt == 'A') {
cout << "Enter product and price-per-kilo: ";
string product;
double price;
cin >> product >> price;
product.front() = toupper(product.front());
products.insert(pair{ product, price });
}
else if (opt == 'C') {
for (const auto& p : products) {
cout << p.first << '\t' << p.second << "/kg\n";
}
cout << "Enter product and quantity: ";
string product;
double quantity;
cin >> product >> quantity;
product.front() = toupper(product.front());
auto iter = products.find(product);
if (iter != end(products)) {
cout << "Price: " << iter->second * quantity << '\n';
}
else {
cout << "Could not find \"" << product << "\"\n";
}
}
else {
cout << "Option not recognized.\n";
}
}
}