Starting from:
$35

$29

Project Twelve Exception Handle Solution

Purpose: The purpose for this project is to reinforce the knowledge learned in Chapter 12.




Objectives:

Write your own exception classes
Apply exception handling in program



Problem description:




Modify bank Account family classes from Project Eleven. You may modify the following class diagram if it is needed. This time, handle exceptions in bank business. Two new class shall be added: IllegalAmountException and




NoSufficientFundsException. You may add the class diagram by yourself to help you understand.




Account







-­‐‑id: int

-­‐‑balance: double




+Account()

+Account(id: int, balance: double)




+setBalance(balance:double):void

+getBalance():double

+setId(id:int):void




+getId():int

+deposit(amount:doube): void

+withdraw(amount:double):void




+toString():String







CheckingAccount




+withdraw(amount:double):void

+toString():string







SavingAccount

-­‐‑interestRate: double




+setInterestRate(rate:double):void

+getInterestRate():double




+withdraw(amount:double):void




+addInterest():void




+toString():string




Requirement:




The class design could be better. However, we are limited with the knowledge we have now. So the above class diagram is reasonable. All methods are explained by their names. Please pay attention to withdraw and deposit methods.

The Account class withdraw method is implemented by doing nothing. The CheckingAccount withdraw method must fulfill the policy that the withdraw amount must greater than 0 and less than or equal to current account balance. The SavingsAccount withdraw method must fulfill the policy that the minimum balance of the account must be 500 all the time. Also the withdraw amount must greater than 0. If the condition cannot be fulfilled, withdraw method will throw corresponding exceptions.

The deposit methods also need to make sure that the amount to deposit is positive. If not, the method will throw IllegalAmountException




When addInterest method in SavingsAccount class, the account balance updated to current_balance * (1 + interestRate) where interestRate is in decimal form. For instane, 6% is 0.06.




The students must write a main function to test these accounts. In main function, polymorphism must be used to handle a collection of accounts.




Sample pseudo code for main function

Declare an array of Account, named accounts, of size 4
Initialize every element in accounts array. Make accounts[0] and accounts[1] be CheckingAccount and accounts[2] and accounts[3] be SavingsAccount



Make deposit and withdraw for each account and print out the account information to see the result. Note: You may use Exception Handling here.



Put those code in try block and write corresponding catch blocks

If the account is SavingsAccount, call addInterest function to update the account balance. Then print out the account information



Submission:




Submit the YourProj12.java file via blackboard link. The due date will be announce on blackboard

More products