Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iomanip>
- #include <iostream>
- #include <vector>
- #include <algorithm>
- inline static uint32_t id_generator = 0x0;
- struct Beverage final
- {
- const uint32_t id = 0x0;
- std::string_view name = "";
- const float price = 0.0f;
- Beverage(std::string_view _name, float _price) : id(++id_generator), name(_name), price(_price) { }
- };
- static const std::vector<Beverage> beverages =
- {
- Beverage("Pepsi", 1.00f),
- Beverage("Miranda", 1.00f),
- Beverage("Mountain Dew", 1.00f),
- Beverage("Coca Cola", 1.00f),
- Beverage("Revive", 1.00f),
- Beverage("Nestle Milo", 2.00f),
- Beverage("Cincau", 1.00f),
- Beverage("Chrysanthemum Tea", 1.00f),
- Beverage("Lipton Ice Lemon Tea", 1.00f),
- Beverage("Mineral Water", 1.00f),
- Beverage("Cadburry Black Forest", 3.60f),
- Beverage("Kitkat", 2.00f),
- Beverage("Crispy", 2.00f),
- Beverage("Crunch", 2.50f),
- Beverage("Mars", 2.50f),
- Beverage("Kinder Bueno", 2.50f),
- Beverage("White Kinder Bueno", 2.50f),
- Beverage("Milky Bar", 2.50f),
- Beverage("M&M", 2.50f),
- Beverage("Choki Choki", 2.00f),
- };
- static std::string_view currency = "RM";
- auto main() -> int
- {
- std::cout << "Name list of beverage: \n";
- std::for_each(beverages.cbegin(), beverages.cend(), [](const Beverage& _beverage) -> void
- {
- std::cout << _beverage.id << ". ";
- std::cout << currency << std::fixed << std::setprecision(2) << _beverage.price << " -> ";
- std::cout << _beverage.name << "\n";
- });
- std::cout << "Enter your choice: ";
- uint32_t choice = 0x0; std::cin >> choice;
- auto selected_beverage = std::find_if(beverages.cbegin(), beverages.cend(), [&](const Beverage& _beverage) -> bool { return choice == _beverage.id; });
- if (selected_beverage != beverages.cend())
- {
- std::cout << "You choose " << currency << std::fixed << std::setprecision(2) << selected_beverage->price << " -> ";
- std::cout << selected_beverage->name << "\n";
- std::cout << "Enter your money: ";
- float money = 0x0f; std::cin >> money;
- if (money > selected_beverage->price)
- {
- std::cout << "Transaction accepted!\n";
- const float change = money - selected_beverage->price;
- std::cout << "Your change is " << currency << std::fixed << std::setprecision(2) << change;
- }
- else std::cout << "Transaction is not accepted, not enough money.\n";
- }
- else std::cout << "Beverage is not found with given number.\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement