ATM.java 3.1KB

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