Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. #include <iomanip>
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6.  
  7. inline static uint32_t id_generator = 0x0;
  8.  
  9. struct Beverage final
  10. {
  11.     const uint32_t id = 0x0;
  12.     std::string_view name = "";
  13.     const float price = 0.0f;
  14.  
  15.     Beverage(std::string_view _name, float _price) : id(++id_generator), name(_name), price(_price) { }
  16. };
  17.  
  18. static const std::vector<Beverage> beverages =
  19. {
  20.     Beverage("Pepsi", 1.00f),
  21.     Beverage("Miranda", 1.00f),
  22.     Beverage("Mountain Dew", 1.00f),
  23.     Beverage("Coca Cola", 1.00f),
  24.     Beverage("Revive", 1.00f),
  25.     Beverage("Nestle Milo", 2.00f),
  26.     Beverage("Cincau", 1.00f),
  27.     Beverage("Chrysanthemum Tea", 1.00f),
  28.     Beverage("Lipton Ice Lemon Tea", 1.00f),
  29.     Beverage("Mineral Water", 1.00f),
  30.     Beverage("Cadburry Black Forest", 3.60f),
  31.     Beverage("Kitkat", 2.00f),
  32.     Beverage("Crispy", 2.00f),
  33.     Beverage("Crunch", 2.50f),
  34.     Beverage("Mars", 2.50f),
  35.     Beverage("Kinder Bueno", 2.50f),
  36.     Beverage("White Kinder Bueno", 2.50f),
  37.     Beverage("Milky Bar", 2.50f),
  38.     Beverage("M&M", 2.50f),
  39.     Beverage("Choki Choki", 2.00f),
  40. };
  41.  
  42. static std::string_view currency = "RM";
  43.  
  44. auto main() -> int
  45. {
  46.     std::cout << "Name list of beverage: \n";
  47.     std::for_each(beverages.cbegin(), beverages.cend(), [](const Beverage& _beverage) -> void
  48.     {
  49.         std::cout << _beverage.id << ". ";
  50.         std::cout << currency << std::fixed << std::setprecision(2) << _beverage.price << " -> ";
  51.         std::cout << _beverage.name << "\n";
  52.     });
  53.  
  54.     std::cout << "Enter your choice: ";
  55.     uint32_t choice = 0x0; std::cin >> choice;
  56.  
  57.     auto selected_beverage = std::find_if(beverages.cbegin(), beverages.cend(), [&](const Beverage& _beverage) -> bool { return choice == _beverage.id; });
  58.     if (selected_beverage != beverages.cend())
  59.     {
  60.         std::cout << "You choose " << currency << std::fixed << std::setprecision(2) << selected_beverage->price << " -> ";
  61.         std::cout << selected_beverage->name << "\n";
  62.  
  63.         std::cout << "Enter your money: ";
  64.         float money = 0x0f; std::cin >> money;
  65.  
  66.         if (money > selected_beverage->price)
  67.         {
  68.             std::cout << "Transaction accepted!\n";
  69.  
  70.             const float change = money - selected_beverage->price;
  71.             std::cout << "Your change is " << currency << std::fixed << std::setprecision(2) << change;
  72.         }
  73.         else std::cout << "Transaction is not accepted, not enough money.\n";
  74.     }
  75.     else std::cout << "Beverage is not found with given number.\n";
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement