package com.zipcodewilmington.bankaccountlab; import java.util.ArrayList; import java.util.Scanner; public class ATM { private ArrayList accounts = new ArrayList(); private Account selectedAccount; public void add(Account account) { accounts.add(account); } public double getTotal() { double total = 0.0; for (Account account: this.accounts) { total += account.getBalance(); } return total; } public Account getSelectedAccount() { return selectedAccount; } public void setSelectedAccount(Account selectedAccount) { this.selectedAccount = selectedAccount; } public void display(){ StringBuilder sb = new StringBuilder(); int counter = 1; for (Account account:this.accounts) { sb.append(String.format("%5d. %15s %.2f \n", counter, account.getClass().getSimpleName(), account.getBalance())); counter++; } System.out.println(sb.toString()); } public void run(){ this.add(new CheckingAccount(2000)); this.add(new SavingAccount(1500)); this.add(new BusinessAccount(3000)); String input; while(true){ if(this.selectedAccount == null){ this.display(); input = getInput("Please Select a Account: "); if(input.equalsIgnoreCase("Checkings")){ this.selectedAccount = this.accounts.get(0); } else if(input.equalsIgnoreCase("Savings")){ this.selectedAccount = this.accounts.get(1); } else if(input.equalsIgnoreCase("Business")){ this.selectedAccount = this.accounts.get(2); } if(input.equalsIgnoreCase("Exit")){ System.out.println("Thank you for using my ATM"); break; } } else { System.out.println("You are selected into your " + this.selectedAccount.getClass().getSimpleName() + "\n"); System.out.println(this.selectedAccount.getBalance()); input = getInput("Please Enter Withdraw, Deposit or Check Balance"); if(input.equalsIgnoreCase("Withdraw")){ input = getInput("Enter a amount to Withdraw"); this.selectedAccount.withdraw(Double.parseDouble(input)); } else if(input.equalsIgnoreCase("Deposit")){ input = getInput("Enter a amount to Deposit"); this.selectedAccount.deposit(Double.parseDouble(input)); } else if(input.equalsIgnoreCase("Check Balance")){ System.out.println(this.selectedAccount.getBalance()); } else if(input.equalsIgnoreCase("exit")){ this.selectedAccount = null; } } } } public static String getInput(String prompt) { System.out.println(prompt); Scanner scanner = new Scanner(System.in); return scanner.nextLine(); } }