java代写 Lab_05_Banking

For this assignment, you are to create an object-oriented solution for a banking establishment. You should only consider this as a system to handle account information – you do not have to consider handling every aspect of a bank (e.g., holidays, inventory, etc.)  Although we discussed creating this from the perspective of a customer using the system I have altered the requirements – so, there does not need to be a login feature.  Write this from the perspective of teller. They have complete control of all accounts.  This will make it easier to manage this lab.  I’ve also removed the “bankEINCode” Bank property in case I told you to include it into your program.

 

Classes:

  1. Bank
    • bankIDCode — bankIDCode should auto generate (“BNK-” + ++currentBankID;)
    • bankRoutingNumber — unique to bank but visible to anyone
    • name
    • address
    • <String, Customer>
    • <String, Transaction> — Keep track of all customer fees transactions (e.g., monthly fees)
    • transferFunds(fromAccountRoutingNumber, toAccountRoutingNumber, Transaction){}
    • addFunds(accountRoutingNumber, amount){}
    • runMonthEnd(){} — loop through your customers and call upon the applyServiceCharges(…)
  2. Customer
    • customerID — customerID should auto generate (“CUST-” + ++currentCustomerID;)
    • name
    • phone
    • email
    • <String, Account>
    • runMonthEnd (thresholdAmount, penaltyAmount, intrestRate){} — thresholdAmount is like that 10,000 we talked about.
  3. Account (A)
    1. accountIDCode — accountIDCode should auto generate (“ACC-” + ++currentAccountID;)
    2. accountRoutingNumber — unique to Account but visible to anyone
  • customerID
  1. accountOnHold
  2. createdOnDate
  3. closedOnDate — once account is closed include one transaction that 0’s out account. Can never be reopened
  • <String, Transaction>
  • getBalance(){}
  1. addTransaction(Transaction); (A)
  • Checking
  • Savings
  1. Transaction
    • transactionID — transactionID should auto generate (“TRAN-” + ++currentTranID;)
    • transactionDate
    • transactionAmount
    • transactionDescription