#include <iostream>
#include <iomanip>

class BankAccount {
private:
    double balance;

public:
    BankAccount() : balance(0.0) {}

    void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
            std::cout << "\tDeposited PHP" <<std::fixed <<std::setprecision(2) << amount << ". New balance: PHP" << balance << std::endl;
        } else {
            std::cout << "\tInvalid deposit amount." << std::endl;
        }
    }

    void withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
            std::cout << "\tWithdrawn PHP" <<std::fixed <<std::setprecision(2)<< amount << ". New balance: PHP" << balance << std::endl;
        } else {
            std::cout << "\tInvalid withdrawal amount or insufficient funds." << std::endl;
        }
    }

    double getBalance() const {
        return balance;
    }
};

int main() {
    BankAccount account;
    int choice=0;
    double amount=0.00;

    while (true) {
        std::cout << "\n\tBank Account Main Menu" << std::endl;
        std::cout << "\t[1] Deposit Money" << std::endl;
        std::cout << "\t[2] Withdraw Money" << std::endl;
        std::cout << "\t[3] Check Balance" << std::endl;
        std::cout << "\t[4] Quit Program" << std::endl;
        std::cout << "\n\tEnter your choice: ";
        std::cin >> choice;

        switch (choice) {
            case 1:
                std::cout << "\tEnter the deposit amount: PHP";
                std::cin >> amount;
                account.deposit(amount);
                break;
            case 2:
                std::cout << "\tEnter the withdrawal amount: PHP";
                std::cin >> amount;
                account.withdraw(amount);
                break;
            case 3:
                std::cout << "\tCurrent balance: PHP" <<std::fixed <<std::setprecision(2)<< account.getBalance() << std::endl;
                break;
            case 4:
                std::cout << "\tExiting. Thank you for using this program." << std::endl;
                return 0;
            default:
                std::cout << "\tInvalid choice. Please try again." << std::endl;
        }
    }

    return 0;
}