A+ Work





Be sure to follow the Coding Standard Guidelines.  You must properly indent and comment your code. 

Indent code and insert comments to document your program.  Program must be implemented and run as instructed. 
Source file and executable are placed in a folder. 

Banks offer various types of accounts, such as savings, checking, certificate of deposits, and money market, to attract customers as well as meet their specific needs. Two of the most commonly used accounts are savings and checking. Each of these accounts has various options. For example, you may have a savings account that requires no minimum balance but has a lower interest rate. Similarly, you may have a checking account that limits the number of checks you may write. Another type of account that is used to save money for the long term is certificate of deposit (CD). Use abstract classes and pure virtual functions to design classes to manipulate various types of accounts. For simplicity, assume that the bank offers three types of accounts: savings, checking and certificate of deposit.            Assume
SavingsAccount: The bank offers two types of savings accounts, one that has no minimum balance and a lower interest rate; and  another that requires a minimum balance and has a higher interest rate. Assume an Interest Rate of 0.03 
Certificate of deposit (CD): In an account of this type, money is left for some time, and these accounts draw higher interest rates than savings or checking accounts. Suppose that you purchase a CD for six months. Then we say that the CD will mature in six months. The penalty for early withdrawal is stiff.
Checking accounts: Suppose that the bank offers three types of checking accounts: one with a monthly service charge, limited check writing, no minimum balance, and no interest; another with no monthly service charge, a minimum balance requirement, unlimited check writing and lower interest; and a third with no monthly service charge, a higher minimum requirement, a higher interest rate, and unlimited check writing.
HighInterestSavings: A high-interest savings account is a savings account. Therefore, it inherits all the properties of a savings account. It also requires a minimum balance Assume an Interest Rate of 0.05, Minimum Balance =  $2500
bankAccount: Every bank account has an account number, the name of the owner, and a balance. Therefore, instance variables such as name, accountNumber, and balance should be declared in the abstract class bankAccount. Some operations common to all types of accounts are retrieve account owner’s name, account number, and account balance; make deposits; withdraw money; and create monthly statements. So include functions to implement these operations. Some of the these functions will be pure virtual.

NoServiceChargeChecking: A checking account with no monthly service charge is a checking account. Therefore, it inherits all the properties of a checking account. Furthermore, this type of account pays interest, allows the account holder to write checks and requires a minimum balance. Assume an Interest Rate = 0.02, Minimum of Balance = $1000
ServiceChargeChecking: A service charge checking account is a checking account. Therefore, it inherits all the properties of a checking account. For simplicity, assume that this type of account does not pay any interest, allows the account holder to write a limited number of checks each month, and does not require any minimum balance. Include appropriate named constants, instance variables, and functions in this class. –Assume account service charge = $10, Maximum number of  checks = 5,  Service  Charge  if customer exceeds the maximum number of checks = $5.
NoServicechargeChecking: A checking account with no monthly service charge. Therefore, it inherits all the properties of a no service charge checking account. Furthermore, this type of account pays interest, allows the account holder to write checks, and requires a minimum balance.  Assume an interest rate = 0.02,  Minimum Balance = $1000
HighInterestChecking: A checking account with high interst is a checking account with no monthly service charge. Therefore it inherits all the properties of a no service charge checking account. Furthermore this type of account pays higher interest and requires a higher minimum balance than the no service charge checking account. Assume an interest rate = 0.05,  Minimum Balance =  $5000
CertificateOfDeposit: A certificate of deposit account is a bank account. Therefore, it inherits all the properties of a bank account. In addition, it has instance variables to store the number of CD maturity months, interest rate, and the current CD month.  Assume an interest rate = 0.05, Initial Number of Maturity Months = 6
Write the definitions of the classes described in this programming exercise and a program to test your classes.