Question: How to move other function but main function to another header file and cpp file, and add an int id that will contain with individual

How to move other function but main function to another header file and cpp file, and add an int id that will contain with individual account information?

#include #include #include #include

using namespace std;

class Account { public: string name; double balance; Account(string n, double b) : name(n), balance(b) {} };

void displayAccountInfo(list& accounts) { for_each(accounts.begin(), accounts.end(), [](Account& account){ cout << "Name: " << account.name; cout << " Balance: " << account.balance << endl; }); }

void addDeposit(list& accounts) { int nameid; double deposit; cout << "Enter the account id: "; cin >> nameid; cout << "Enter the deposit amount: "; cin >> deposit;

int i = 0; list::iterator it;

for (it = accounts.begin(); it != accounts.end(); it++) { if (i == nameid) { it->balance += deposit; cout << "Deposit added successfully" << endl; return; } i++; } cout << "Account not found" << endl; }

void withdraw(list& accounts) { int nameid; double withdraw; cout << "Enter the the account id: "; cin >> nameid; cout << "Enter the withdrawal amount: "; cin >> withdraw;

int i = 0; list::iterator it;

for (it = accounts.begin(); it != accounts.end(); it++) { if (i == nameid) { if (it->balance < withdraw) { cout << "Insufficient funds" << endl; return; } it->balance -= withdraw; cout << "Withdrawal successful" << endl; return; } i++; } cout << "Account not found" << endl; }

void addAccount(list& accounts) { string name; double balance; cout << "Enter the the account name: "; cin >> name; cout << "Enter the initial balance: "; cin >> balance;

accounts.emplace_back(name, balance); cout << "Account created successfully" << endl; }

void findAccountById(list& accounts) { int id; cout << "Enter the the account id: "; cin >> id; int i = 0; list::iterator it; for (it = accounts.begin(); it != accounts.end(); it++) { if (i == id) { cout << "ID: " << i << endl; cout << "Name: " << it->name << endl; cout << "Balance: " << it->balance << endl; return; } i++; } cout << "Account not found" << endl; }

void removeAccount(list& accounts) { int id; cout << "Enter account ID to remove: "; cin >> id; auto it = remove_if(accounts.begin(), accounts.end(), [id](Account& account){ return id == id; }); if (it != accounts.end()) { accounts.erase(it); } else { cout << "Account not found" << endl; } }

void showTotalBalance(list& accounts) { double total = accumulate(accounts.begin(), accounts.end(), 0.0f, [](double acc, Account& account){ return acc + account.balance; }); cout << "Total in all accounts: " << total << endl; }

void addDividend(list& accounts) { double dividend_percentage; cout << "Enter the dividend as a percentage: "; cin >> dividend_percentage;

transform(accounts.begin(), accounts.end(), accounts.begin(), [dividend_percentage](auto& account) { account.balance += account.balance * (dividend_percentage / 100); return account; }); }

int main() { list accounts;

while (true) { int choice; cout << "Main Menu:" << endl; cout << "0. Quit Program" << endl; cout << "1. Display account information" << endl; cout << "2. Add a deposit to an account" << endl; cout << "3. Withdraw from an account" << endl; cout << "4. Add new account" << endl; cout << "5. Find account by ID" << endl; cout << "6. Remove account" << endl; cout << "7. Show total balance for all accounts" << endl; cout << "8. Add a dividend to all accounts" << endl; cout << "Your choice: "; cin >> choice; if (choice == 0) { break; } else if (choice == 1) { if (accounts.empty()) { cout << "No accounts found" << endl; continue; } displayAccountInfo(accounts); } else if (choice == 2) { if (accounts.empty()) { cout << "No accounts found" << endl; continue; } addDeposit(accounts); } else if (choice == 3) { if (accounts.empty()) { cout << "No accounts found" << endl; continue; } withdraw(accounts); } else if (choice == 4) { addAccount(accounts); } else if (choice == 5) { if (accounts.empty()) { cout << "No accounts found" << endl; continue; } findAccountById(accounts); } else if (choice == 6) { removeAccount(accounts); } else if (choice == 7) { showTotalBalance(accounts); } else if (choice == 8) { addDividend(accounts); } else { cout << "Invalid choice. Please try again." << endl; } } return 0; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!