ilham_syamsuddin

Untitled

Oct 29th, 2017
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. // Deposit.java
  2. // Represents a deposit ATM transaction
  3.  
  4. public class Deposit extends Transaction
  5. {
  6. private double amount; // amount to deposit
  7. private Keypad keypad; // reference to keypad
  8. private DepositSlot depositSlot; // reference to deposit slot
  9. private final static int CANCELED = 0; // constant for cancel option
  10.  
  11. // Deposit constructor
  12. public Deposit( int userAccountNumber, Screen atmScreen,
  13. BankDatabase atmBankDatabase, Keypad atmKeypad,
  14. DepositSlot atmDepositSlot )
  15. {
  16. // initialize superclass variables
  17. super( userAccountNumber, atmScreen, atmBankDatabase );
  18.  
  19. // initialize references to keypad and deposit slot
  20. keypad = atmKeypad;
  21. depositSlot = atmDepositSlot;
  22. } // end Deposit constructor
  23.  
  24. // perform transaction
  25. @Override
  26. public void execute()
  27. {
  28. BankDatabase bankDatabase = getBankDatabase(); // get reference
  29. Screen screen = getScreen(); // get reference
  30.  
  31. amount = promptForDepositAmount(); // get deposit amount from user
  32.  
  33. // check whether user entered a deposit amount or canceled
  34. if ( amount != CANCELED )
  35. {
  36. // request deposit envelope containing specified amount
  37. screen.displayMessage(
  38. "\nPlease insert a deposit envelope containing " );
  39. screen.displayDollarAmount( amount );
  40. screen.displayMessageLine( "." );
  41.  
  42. // receive deposit envelope
  43. boolean envelopeReceived = depositSlot.isEnvelopeReceived();
  44.  
  45. // check whether deposit envelope was received
  46. if ( envelopeReceived )
  47. {
  48. screen.displayMessageLine( "\nYour envelope has been " +
  49. "received.\nNOTE: The money just deposited will not " +
  50. "be available until we verify the amount of any " +
  51. "enclosed cash and your checks clear." );
  52.  
  53. // credit account to reflect the deposit
  54. bankDatabase.credit( getAccountNumber(), amount );
  55. } // end if
  56. else // deposit envelope not received
  57. {
  58. screen.displayMessageLine( "\nYou did not insert an " +
  59. "envelope, so the ATM has canceled your transaction." );
  60. } // end else
  61. } // end if
  62. else // user canceled instead of entering amount
  63. {
  64. screen.displayMessageLine( "\nCanceling transaction..." );
  65. } // end else
  66. } // end method execute
  67.  
  68. // prompt user to enter a deposit amount in cents
  69. private double promptForDepositAmount()
  70. {
  71. Screen screen = getScreen(); // get reference to screen
  72.  
  73. // display the prompt
  74. screen.displayMessage( "\nPlease enter a deposit amount in " +
  75. "CENTS (or 0 to cancel): " );
  76. int input = keypad.getInput(); // receive input of deposit amount
  77.  
  78. // check whether the user canceled or entered a valid amount
  79. if ( input == CANCELED )
  80. return CANCELED;
  81. else
  82. {
  83. return ( double ) input / 100; // return dollar amount
  84. } // end else
  85. } // end method promptForDepositAmount
  86. } // end class Deposit
Advertisement
Add Comment
Please, Sign In to add comment