Design and create an efficient, well-documented solution that allows a user to repeatedly create and manage credit card accounts. When a new credit card account is opened, the credit company sets a credit limit for the user that specifies the maximum balance allowed on the account. The balance starts at $0. The user can make purchases and charge them to the credit card, increasing the balance. The purchase should be declined if it would put the balance over the credit limit. At the end of each month, the user must pay the entire balance on the card, or else the credit company charges the monthly interest on the balance. You may assume the user makes one payment per month.
There are two types of accounts: Standard and Gold. The Standard account has a monthly interest rate of 18% and a monthly credit limit of $4000. A Gold account has a monthly interest rate of 15%, credit limit of $10,000 and a 1% cash back (applied as a reduction in balance).
Implement a class CreditAccount that includes an accountNumber (automatically generated), balance, accountNickname, accountType.
Private Variables: accountNumber, accountBalance, creditLimit, interestRate. Accounts can be:
* opened (using a Constructor: include a Boolean false if a Standard account is to be opened and true if it is a Gold account);
* charged (make sure amount is valid);
* payment made (add appropriate interest and deduction if Gold).
Be sure to include appropriate constants, mutators and accessors (including a toString method).
In the application that implements the CreditAccount class, the user should be presented with a menu, allowing them to choose from:
* Opening a new CreditAccount (no more than 10 credit cards permitted).
* Make a charge to a credit card (choose the account to charge via a menu of the account nicknames).
* Make a payment to a credit card (choose the account to charge via a menu of the account nicknames).
* Quit the application (when this is chosen, present the user with a total of all of the credit card balances).
Please rename attached 527303-CreditAccountManager.java as CreditAccountManager.java before compiling and executing it.
javac CreditAccountManager.java (to compile the program)
java CreditAccountManager (to run the ...
Solution uses text based menu, however it also provides equivalent GUI version for some of the functions that should help you in converting the remaining functions for GUI version.