Untitled

mail@pastecode.io avatar
unknown
plain_text
19 days ago
16 kB
0
Indexable
Never
#include <iostream>
#include <limits>
#include <string.h>
#include <vector>

using namespace std;

struct Location {
    string locationTitle;
    string locationAddress;

    Location(string title, string address) {
        locationTitle = title;
        locationAddress = address;
    }
};

bool signOut();
void menu(string firstName);
int exitApp();
bool signOut() {

    int choice;
    cout << "*************************************************************************************************************\n"
         << "\t\t\t| SIGN OUT? |\n"
         << "*************************************************************************************************************\n"
         << "| Choose in the options below: |\n"
         << "| [1] Close The Application |\n"
         << "| [2] Go back to log in/ sign up |\n"
         << "*************************************************************************************************************";

    cout << "Enter your choice: ";
    cin >> choice;

    if (choice == 1) {
        return true;
    } else if (choice == 2) {
        return false;
    }
}


int exitApp() {
    char choice;
    cout << "*************************************************************************************************************\n"
         << "Would you like to choose another category? [Y] or [N]:  ";
    cin >> choice;

    if (choice == 'y' || choice == 'Y') {
        return 1;
    } else if (choice == 'n' || choice == 'N') {
        return 2;
    } else {
        cout << "Invalid Input.\n\n";
    }
    cout << "*************************************************************************************************************";
    return 0;
}

void menu(string firstName) {
    system("cls");
    cout << "\nBGC_ONE" << endl;
    cout << "*************************************************************************************************************" << endl;
    cout << "Hi " << firstName << " ! Welcome to BGC_ONE! Your all in one!" << endl;
    cout << "Choose the corresponding letter of category to explore:" << endl;
    cout << "*************************************************************************************************************" << endl;
    cout << "\t\t\t\t\t|       CATEGORIES       |" << endl;
    cout << "*************************************************************************************************************" << endl;
    cout << "[A] Malls in BGC" << endl;
    cout << "[B] Tourist Spots" << endl;
    cout << "[C] Places to Stay (Condos and Hotels)" << endl;
    cout << "[D] Hospitals near me" << endl << endl;
    cout << "[E] Exit program." << endl;
}


int main() {
    system("cls");
    int choice;
    bool loggedIn = false;
    bool agreedToTerms = false;
    bool loginSuccessful = false;
    string loggedInUser = "";

    vector<string> usernameBank;
    vector<string> passwordBank;

    vector<Location> malls;
    vector<Location> spots;
    vector<Location> condoHotel;
    vector<Location> hospital;

    Location upTown("Uptown Mall", "Uptown Mall, 9th Ave, Taguig, Metro Manila");
    malls.push_back(upTown);

    Location veniceGrandCanal("Venice Grand Canal", "Venice Grand Canal Mall, McKinley Hill Drive, Taguig, Metro Manila");
    malls.push_back(veniceGrandCanal);

    Location sMAura("SM Aura", "SM Aura Premier, McKinley Parkway, Taguig, Metro Manila");
    malls.push_back(sMAura);

    Location theMindMuseum("The Mind Museum", "JY Campos Park, 3rd Ave, Taguig, 1634");
    spots.push_back(theMindMuseum);

    Location burgosCirclePark("Burgos Circle Park", "Town Center, 29th Street, Fort Bonifacio, Taguig, 1630");
    spots.push_back(burgosCirclePark);

    Location bGCArtsCenter("BGC Arts Center", "26th St, Taguig, Metro Manila");
    spots.push_back(bGCArtsCenter);

    Location grandHyattManila("Grand Hyatt Manila", "8th Avenue, Corner 35th St, Taguig, 1634 Metro Manila");
    condoHotel.push_back(grandHyattManila);

    Location goldbergHotel("Goldberg Hotel", "Cpg Estate, 11a General Espino, Taguig, 1630 Metro Manila");
    condoHotel.push_back(goldbergHotel);

    Location aureliaResidences("Aurelia Residences", "4th Ave, Taguig, Metro Manila");
    condoHotel.push_back(aureliaResidences);

    Location stlukes("St. Luke's Medical Center", "5th Ave, Taguig, 1634 Metro Manila");
    hospital.push_back(stlukes);

    Location medcenter("Medical Center Taguig, Inc.", "Levi B. Mariano Ave, Taguig, 1630 Metro Manila");
    hospital.push_back(medcenter);

    Location sttherese("St. Therese Hospital", "6 Sampaguita St, Taguig, 1218 Metro Manila");
    hospital.push_back(sttherese);

    // initialize accounts
    usernameBank.push_back("q"); // 0
    usernameBank.push_back("Jeth"); // 1
    usernameBank.push_back("Jyke"); // 2

    passwordBank.push_back("q");
    passwordBank.push_back("jeth123");
    passwordBank.push_back("jyke123");

    while (true) {
        if (!loggedIn && !agreedToTerms) {
            cout << "Hello Dear user! Choose between the two options below to continue." << endl;
            cout << "[1] Log In" << endl;
            cout << "[2] Sign Up" << endl;

            cout << "Enter your choice: ";
            cin >> choice;

            if (cin.fail()) { // Clear the error flag and ignore the invalid input
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
                cout << "Invalid choice. Please enter 1 or 2." << endl;
                continue;
            }

            if (choice == 1) {
                // Implement Login functionality
                string username, password;

                cout << "************************************" << endl;
                cout << "|            LOG IN               |" << endl;
                cout << "************************************" << endl;

                cout << "Username: ";
                cin >> username;
                cout << "Password: ";
                cin >> password;

                for (size_t i = 0; i < usernameBank.size(); ++i) {
                    if (usernameBank[i] == username && passwordBank[i] == password) {
                        loginSuccessful = true;
                        loggedInUser = username;
                        loggedIn = true;
                        break;  // Exit the loop as soon as a match is found
                    }
                }

                if (!loginSuccessful) {
                    cout << "Login failed. Please try again." << endl;
                } else {
                    cout << "Login successful! Welcome, " << username << "!" << endl;
                    agreedToTerms = false;
                    loggedIn = true;
                }

            } else if (choice == 2) {
                // Implement Sign Up functionality
                string username, password, confirmPassword;

                cout << "************************************" << endl;
                cout << "|           SIGN UP                |" << endl;
                cout << "************************************" << endl;

                cout << "Username: ";
                cin >> username;
                cout << "Password: ";
                cin >> password;
                cout << "Confirm Password: ";
                cin >> confirmPassword;

                if (password == confirmPassword) {

                    usernameBank.push_back(username); // add username to usernameBank vector
                    passwordBank.push_back(password); // add password to passwordBank vector
                    cout << "Account created successfully." << endl;

                } else {
                    cout << "Password and confirm password do not match. Please try again." << endl;
                }
            } else {
                cout << "Invalid choice. Please enter 1 or 2." << endl;
            }
        }

        if (loggedIn && !agreedToTerms) {
            string agree;
            while (true) {
                cout << "Terms and Conditions:\n";
                cout << "By using this application, you agree to the following terms and conditions:\n";
                cout << "1. You are responsible for maintaining the confidentiality of your account.\n";
                cout << "2. You must not share your login information with others.\n";
                cout << "3. You agree to use the application responsibly and lawfully.\n";
                cout << "4. Any violation of these terms may result in the termination of your account.\n";
                cout << "By typing ' Agree ' you accept these terms and conditions: ";
                cin.ignore(10000, '\n');
                getline(cin, agree);
                if (agree == "Agree" || agree == "agree" || agree == "AGREE") {
                    cout << "You have agreed to the terms and conditions. Welcome to the application!" << endl;
                    agreedToTerms = true;
                    break;
                } else {
                    cout << "Invalid answer. Please try again." << endl;
                }
            }
        }

        if (loggedIn && agreedToTerms) {
            bool running = true;

            while (running) {
                menu(loggedInUser);
                char ch;
                cout << "\n\nEnter your choice: ";
                cin >> ch;

                switch (ch) {
                    case 'a':
                    case 'A':
                        system("cls");
                        cout << "***************************************************************************************************\n"
                             << "                                             | MALLS IN BGC |\n"
                             << "****************************************************************************************************\n";
                        for (size_t i = 0; i < malls.size(); ++i) {
                            cout << " \t\t " << malls[i].locationTitle << "\t\t\t\n";
                            cout << " \t\t - Address: " << malls[i].locationAddress << "\t\t\t\n\n";
                        }
                        cout << "***************************************************************************************************\n";

                        if (exitApp() == 2) {
                            if (signOut()) {
                                exit(0);
                            } else if (!signOut()) {
                                loggedIn = false;
                                agreedToTerms = false;
                                continue;
                            }
                        } else {
                            break;
                        }

                    case 'b':
                    case 'B':
                        system("cls");
                        cout << "***************************************************************************************************\n"
                             << "                                       | TOURIST SPOTS IN BGC |\n"
                             << "****************************************************************************************************\n";
                        for (size_t i = 0; i < spots.size(); ++i) {
                            cout << " \t\t " << spots[i].locationTitle << "\t\t\t\n";
                            cout << " \t\t - Address: " << spots[i].locationAddress << "\t\t\t\n\n";
                        }
                        if (exitApp() == 2) {
                            if (signOut()) {
                                exit(0);
                            } else if (!signOut()) {
                                loggedIn = false;
                                agreedToTerms = false;
                                continue;
                            }
                        } else {
                            break;

                            case 'c':
                            case 'C':
                                system("cls");
                            cout << "***************************************************************************************************\n"
                                 << "                                  | PLACES TO STAY (CONDOS AND HOTELS) |\n"
                                 << "****************************************************************************************************\n";
                            for (size_t i = 0; i < condoHotel.size(); ++i) {
                                cout << " \t\t " << condoHotel[i].locationTitle << "\t\t\t\n";
                                cout << " \t\t - Address: " << condoHotel[i].locationAddress << "\t\t\t\n\n";
                            }
                            if (exitApp() == 2) {
                                if (signOut()) {
                                    exit(0);
                                } else if (!signOut()) {
                                    loggedIn = false;
                                    agreedToTerms = false;
                                    continue;
                                }
                            } else {
                                break;

                                case 'd':
                                case 'D':
                                    system("cls");
                                cout << "***************************************************************************************************\n"
                                     << "                                             | HOSPITALS |\n"
                                     << "****************************************************************************************************\n";
                                for (size_t i = 0; i < hospital.size(); ++i) {
                                    cout << " \t\t " << hospital[i].locationTitle << "\t\t\t\n";
                                    cout << " \t\t - Address: " << hospital[i].locationAddress << "\t\t\t\n\n";
                                }
                                if (exitApp() == 2) {
                                    if (signOut()) {
                                        exit(0);
                                    } else if (!signOut()) {
                                        loggedIn = false;
                                        agreedToTerms = false;
                                        continue;
                                    }
                                } else {
                                    break;

                                    case 'e':
                                    case 'E':
                                        system("cls");
                                    char restart;
                                    cout << "\t Do you want to restart? (Y/N) ";
                                    cin >> restart;

                                    if (restart == 'Y' || restart == 'y'){
                                        cin.ignore();
                                        main();
                                    } else if (restart == 'N' || restart == 'n') {
                                        return 0;
                                    }
                                    break;
                                }
                            }

                            break;
                        }
                }
            }
            return 0;
        }
    }
}

Leave a Comment