From 25f37a556c0317addbfe7dd95de55d20c1120e8f Mon Sep 17 00:00:00 2001 From: Sebastian Brosch Date: Fri, 18 Oct 2024 12:16:05 +0200 Subject: [PATCH] added guest list example --- VL03-02-01/main.cc | 100 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 VL03-02-01/main.cc diff --git a/VL03-02-01/main.cc b/VL03-02-01/main.cc new file mode 100644 index 0000000..be4dd70 --- /dev/null +++ b/VL03-02-01/main.cc @@ -0,0 +1,100 @@ +#include +#include + +void checkGuest(std::vector &guests) { + std::cout << "Guest: "; + std::string guest; + std::cin >> guest; + bool is_guest = false; + + for (std::vector::iterator it = guests.begin(); it != guests.end();) { + if (*it == guest) { + is_guest = true; + break; + } else { + ++it; + } + } + + std::cout << guest << " is " << ((is_guest) ? "" : "NOT ") << "on the guest list!" << std::endl; +} + +void createGuest(std::vector &guests) { + bool keepInput = true; + + do { + std::string guest; + std::cout << "Guest: "; + std::cin >> guest; + guests.push_back(guest); + std::cout << "More? (1 = Yes - 0 = No) "; + std::cin >> keepInput; + } while (keepInput); +} + +void removeGuest(std::vector &guests) { + std::cout << "Guest: "; + std::string guest; + std::cin >> guest; + + for (std::vector::iterator it = guests.begin(); it != guests.end();) { + if (*it == guest) { + it = guests.erase(it); + } else { + ++it; + } + } +} + +void showGuests(std::vector &guests) { + std::cout << "-- List of all guests --" << std::endl; + + for (std::string &guest : guests) { + std::cout << "\t" << guest << std::endl; + } +} + +int showMenuSelection() { + std::cout << std::endl << std::endl; + std::cout << "-- Menu (Guest list manager) --" << std::endl; + std::cout << "\t 1 - New guest" << std::endl; + std::cout << "\t 2 - Remove guest" << std::endl; + std::cout << "\t 3 - Check guest" << std::endl; + std::cout << "\t 4 - Show guests" << std::endl; + std::cout << "\t 5 - Clear guest list" << std::endl; + std::cout << "\t 9 - Exit" << std::endl; + std::cout << std::endl << "Selection: "; + int selection; + std::cin >> selection; + return selection; +} + +int main() { + std::vector guests; + + while (int selection = showMenuSelection()) { + switch (selection) { + case 1: + createGuest(guests); + break; + case 2: + removeGuest(guests); + break; + case 3: + checkGuest(guests); + break; + case 4: + showGuests(guests); + break; + case 5: + guests.clear(); + std::cout << "The guest list was cleared!" << std::endl; + break; + case 9: + return 0; + break; + } + } + + return 0; +} \ No newline at end of file