1  import java.util.Scanner;
  2  
  3  /**
  4     This program simulates a bank with checking and savings accounts.
  5  */
  6  public class AccountDemo
  7  {
  8     public static void main(String[] args)
  9     {
 10        // Create accounts
 11  
 12        final int ACCOUNTS_SIZE = 10;
 13        BankAccount[] accounts = new BankAccount[ACCOUNTS_SIZE];
 14        for (int i = 0; i < accounts.length / 2; i++)
 15        {      
 16           accounts[i] = new CheckingAccount();
 17        }
 18        
 19        for (int i = accounts.length / 2; i < accounts.length; i++)
 20        {      
 21           SavingsAccount account = new SavingsAccount();
 22           account.setInterestRate(0.75);
 23           accounts[i] = account;
 24        }
 25  
 26        // Execute commands
 27  
 28        Scanner in = new Scanner(System.in);
 29        boolean done = false;
 30        while (!done)
 31        {
 32           System.out.print("D)eposit  W)ithdraw  M)onth end  Q)uit: "); 
 33           String input = in.next();
 34           if (input.equals("D") || input.equals("W")) // Deposit or withdrawal
 35           {
 36              System.out.print("Enter account number and amount: ");
 37              int num = in.nextInt();
 38              double amount = in.nextDouble();
 39  
 40              if (input.equals("D")) { accounts[num].deposit(amount); }
 41              else { accounts[num].withdraw(amount); }
 42  
 43              System.out.println("Balance: " + accounts[num].getBalance());
 44           }
 45           else if (input.equals("M")) // Month end processing
 46           {
 47              for (int n = 0; n < accounts.length; n++)
 48              {
 49                 accounts[n].monthEnd();
 50                 System.out.println(n + " " + accounts[n].getBalance());
 51              }
 52           }
 53           else if (input == "Q")
 54           {
 55              done = true;
 56           }
 57        }
 58     }
 59  }