ATM.java 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.zipcodewilmington.bankaccountlab;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4. public class ATM {
  5. private ArrayList<Account> accounts = new ArrayList<Account>();
  6. private Account selectedAccount;
  7. public void add(Account account) {
  8. accounts.add(account);
  9. }
  10. public double getTotal() {
  11. double total = 0.0;
  12. for (Account account: this.accounts) {
  13. total += account.getBalance();
  14. }
  15. return total;
  16. }
  17. public Account getSelectedAccount() {
  18. return selectedAccount;
  19. }
  20. public void setSelectedAccount(Account selectedAccount) {
  21. this.selectedAccount = selectedAccount;
  22. }
  23. public void display(){
  24. StringBuilder sb = new StringBuilder();
  25. int counter = 1;
  26. for (Account account:this.accounts) {
  27. sb.append(String.format("%5d. %15s %.2f \n", counter, account.getClass().getSimpleName(), account.getBalance()));
  28. counter++;
  29. }
  30. System.out.println(sb.toString());
  31. }
  32. public void run(){
  33. this.add(new CheckingAccount(2000));
  34. this.add(new SavingAccount(1500));
  35. this.add(new BusinessAccount(3000));
  36. String input;
  37. while(true){
  38. if(this.selectedAccount == null){
  39. this.display();
  40. input = getInput("Please Select a Account: ");
  41. if(input.equalsIgnoreCase("Checkings")){
  42. this.selectedAccount = this.accounts.get(0);
  43. } else if(input.equalsIgnoreCase("Savings")){
  44. this.selectedAccount = this.accounts.get(1);
  45. } else if(input.equalsIgnoreCase("Business")){
  46. this.selectedAccount = this.accounts.get(2);
  47. } if(input.equalsIgnoreCase("Exit")){
  48. System.out.println("Thank you for using my ATM");
  49. break;
  50. }
  51. } else {
  52. System.out.println("You are selected into your " + this.selectedAccount.getClass().getSimpleName() + "\n");
  53. System.out.println(this.selectedAccount.getBalance());
  54. input = getInput("Please Enter Withdraw, Deposit or Check Balance");
  55. if(input.equalsIgnoreCase("Withdraw")){
  56. input = getInput("Enter a amount to Withdraw");
  57. this.selectedAccount.withdraw(Double.parseDouble(input));
  58. } else if(input.equalsIgnoreCase("Deposit")){
  59. input = getInput("Enter a amount to Deposit");
  60. this.selectedAccount.deposit(Double.parseDouble(input));
  61. } else if(input.equalsIgnoreCase("Check Balance")){
  62. System.out.println(this.selectedAccount.getBalance());
  63. } else if(input.equalsIgnoreCase("exit")){
  64. this.selectedAccount = null;
  65. }
  66. }
  67. }
  68. }
  69. public static String getInput(String prompt) {
  70. System.out.println(prompt);
  71. Scanner scanner = new Scanner(System.in);
  72. return scanner.nextLine();
  73. }
  74. }