| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package com.zipcodewilmington.bankaccountlab;
-
- import java.util.ArrayList;
- import java.util.ArrayList;
- import java.util.Scanner;
-
- public class ATM {
-
- private ArrayList<Account> accounts = new ArrayList<Account>();
-
- 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 SavingsAccount(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();
- }
-
- }
|