nawamkihafahd

Untitled

Oct 19th, 2017
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. public class ATM
  2. {
  3. private boolean userAuthenticated;
  4. private int currentAccountNumber;
  5. private Screen screen;
  6. private Keypad keypad;
  7. private CashDispenser cashDispenser;
  8. private DepositSlot depositSlot;
  9. private BankDatabase bankDatabase;
  10.  
  11. private static final int BALANCE_INQUIRY = 1;
  12. private static final int WITHDRAWAL = 2;
  13. private static final int DEPOSIT = 3;
  14. private static final int EXIT = 4;
  15.  
  16. public ATM()
  17. {
  18. userAuthenticated = false;
  19. currentAccountNumber=0;
  20. screen = new Screen();
  21. keypad = new Keypad();
  22. cashDispenser = new CashDispenser();
  23. depositSlot = new DepositSlot();
  24. bankDatabase = new BankDatabase();
  25. }
  26.  
  27. public void run()
  28. {
  29. while(true)
  30. {
  31. while(!userAuthenticated)
  32. {
  33. screen.displayMessageLine("\nWelcome!");
  34. authenticateUser();
  35. }
  36. performTransactions();
  37. userAuthenticated=false;
  38. currentAccountNumber = 0;
  39. screen.displayMessageLine("\nThank you!");
  40. }
  41. }
  42.  
  43. private void authenticateUser()
  44. {
  45. screen.displayMessage("\nPlease enter your account number: ");
  46. int accountNumber = keypad.getInput();
  47. screen.displayMessage("\nEnter your PIN: ");
  48. int pin = keypad.getInput();
  49. userAuthenticated = bankDatabase.authenticateUser( accountNumber, pin);
  50. userAuthenticated = bankDatabase.authenticateUser(accountNumber, pin);
  51. if(userAuthenticated){
  52. currentAccountNumber = accountNumber;
  53. }
  54. else{
  55. screen.displayMessageLine("Invalid Account Number or PIN.");
  56. screen.displayMessageLine("Please Try Again.");
  57. }
  58. }
  59. private void performTransactions(){
  60.  
  61. Transaction currentTransaction = null;
  62. boolean userExited = false;
  63.  
  64. while(!userExited)
  65. {
  66. int mainMenuSelection = displayMainMenu();
  67.  
  68. switch(mainMenuSelection)
  69. {
  70. case BALANCE_INQUIRY :
  71. case WITHDRAWAL :
  72. case DEPOSIT :
  73. currentTransaction = createTransaction(mainMenuSelection);
  74. currentTransaction.execute();
  75. break;
  76. case EXIT :
  77. screen.displayMessageLine("\nExiting the system...");
  78. userExited = true;
  79. break;
  80. default :
  81. screen.displayMessageLine("\nYou did not enter a valid selection.");
  82. screen.displayMessageLine("Please try again.");
  83. break;
  84. }
  85. }
  86. }
  87. private int displayMainMenu(){
  88. screen.displayMessageLine("\nMain Menu :");
  89. screen.displayMessageLine("1 - View my balance");
  90. screen.displayMessageLine("2 - Withdraw cash");
  91. screen.displayMessageLine("3 - Deposit funds");
  92. screen.displayMessageLine("4 - Exit\n");
  93. screen.displayMessage("Enter a choice : ");
  94. return keypad.getInput();
  95. }
  96. private Transaction createTransaction(int type){
  97. Transaction temp = null;
  98. switch(type){
  99. case BALANCE_INQUIRY :
  100. temp = new BalanceInquiry(currentAccountNumber, screen, bankDatabase);
  101. break;
  102. case WITHDRAWAL :
  103. temp = new Withdrawal(currentAccountNumber, screen, bankDatabase, keypad, cashDispenser);
  104. break;
  105. case DEPOSIT :
  106. temp = new Deposit(currentAccountNumber, screen, bankDatabase, keypad, depositSlot);
  107. break;
  108. }
  109. return temp;
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment