Design a base class named Account that holds the following info about a bank account:
Number of deposits this month
Number of withdrawals
Annual Interest Rate
Monthly service charges.
The class should have the following member functions:
constructor: Accepts arguments for the balance and annual interest rate
deposit: A virtual function that accepts an argument for the amount of the deposit.
withdraw: A virtual function that accepts an argument for the amount of the withdrawal.
calcInt: A function that updates the balance for a single month. You must calculate the monthly interest rate from the annual interest rate and then determine from that how much to add to the account’s balance.
monthlyProc: A virtual function that subtracts the monthly service charges from the balance, calls the calcInt function, then sets the variables that hold the number of withdrawls, number of deposits, and monthly service charges to 0.
The next class is a SavingsAccount class that is derived from Account. It should hold the following extra info:
status: to represent an active or inactive account
If the balance of a savings account falls below $25, it becomes inactive. No more withdrawals can be made until the balance is raised above $25.
SavingsAccount should have these member functions:
withdraw: Checks to see if the account is inactive. If the account is active, the base class version of withdraw is called to perform the withdrawal.
deposit: Determine if the account needs to be set active. Call the base class version of deposit.
monthlyProc: If the # of withdrawals this month is greater than 3, a service charge of $1 for each withdrawal above 3 is added to this account’s monthly service charges.
A CheckingAccount class also derives from the Account class. It has the following member functions:
withdraw: If the balance will go below 0, a service charge of $15 is charged to the account and the withdrawal is not made. This can cause the balance to go below 0.
monthlyProc: Add the monthly fee of $5 plus $0.10 per withdrawal this month to this account’s monthly service charges. This can also cause the balance to go below 0.
In your main function, ask the user to enter values for a SavingsAccount and CheckingAccount. i.e. the user should enter their starting balances and annual interest rates. Everything else can be default set to 0 (number of withdrawals, number of deposits, monthly service charges). In a menu-driven system, allow the user to:
Make a deposit to savings
Make a deposit to checkings
Make a withdrawal from savings
Make a withdrawal from checkings
View the balance of either
Indicate that a month has passed (i.e. call the monthlyProc functions on each accounts)