Description
You will be writing a program for a local bank that allows them to create objects representing a customer’s bank account. Create the following two classes:
- Transaction: a class representing a customer’s single transaction at the bank:
- Member Variables:
- amount: An int representing how much the transaction was for.
- isWithdrawal: A bool: true if the transaction was a withdrawal and false if it was a deposit.
- Member Functions
- Constructor: Requires the client to pass values for both member variables.
- print: Prints this transaction. For example, “Withdrawal: -$5” or “Deposit: +$15”
- Member Variables:
- Account: a class representing a customer’s bank account:
- Member Variables:
- balance: Represents how much money is in the account.
- transactions: A vector of pointers to Transaction objects. When the user makes a deposit or withdrawal, a Transaction object will be create and a pointer to it will be added to this vector.
- Member Functions:
- Constructor: Requires the client to pass a value for the starting account balance. If this amount is less than 0, print a message explaining the error and then stop the program with the following command: exit(1);
- withdraw: Allows the user to pass an amount to withdraw from the account. Returns true if successful and false otherwise.
- If the amount would make ‘balance’ less than 0, do not perform the withdrawal. Simply print an error message and return false.
- Otherwise, subtract the amount from ‘balance’, add a new Transaction with the given data to ‘transactions’, and return true.
- Deposit: Allows the user to pass an amount to deposit to the account. Add the given amount to ‘balance’ and add a new Transaction to ‘transactions’ with the given data.
- printTransactions: Loops through the ‘transactions’ vector printing each Transaction one at a time (by calling each object’s ‘print’ function)
- getBalance: Returns the current balance in the account.
- Member Variables:
In your main function on Source.cpp, create an Account object with a starting balance of 0. Demonstrate each of the functions being called (for example, perform a few deposits, a few withdrawals, print the transactions, and then print the balance). This can all be hardcoded: there is no need for user input.
Submit: Transaction.cpp, Transaction.h, Source.cpp, Account.cpp, and Account.h