Deposit.java
上传用户:ljt780218
上传日期:2022-07-30
资源大小:110k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Java

  1. // Deposit.java
  2. // Represents a deposit ATM transaction
  3. public class Deposit extends Transaction
  4. {
  5.    private double amount; // amount to deposit
  6.    private Keypad keypad; // reference to keypad
  7.    private DepositSlot depositSlot; // reference to deposit slot
  8.    private final static int CANCELED = 0; // constant for cancel option
  9.    // Deposit constructor
  10.    public Deposit( int userAccountNumber, Screen atmScreen, 
  11.       BankDatabase atmBankDatabase, Keypad atmKeypad, 
  12.       DepositSlot atmDepositSlot )
  13.    {
  14.       // initialize superclass variables
  15.       super( userAccountNumber, atmScreen, atmBankDatabase );
  16.       // initialize references to keypad and deposit slot
  17.       keypad = atmKeypad;
  18.       depositSlot = atmDepositSlot;
  19.    } // end Deposit constructor
  20.    // perform transaction
  21.    public void execute()
  22.    {
  23.       BankDatabase bankDatabase = getBankDatabase(); // get reference
  24.       Screen screen = getScreen(); // get reference
  25.       amount = promptForDepositAmount(); // get deposit amount from user
  26.       // check whether user entered a deposit amount or canceled
  27.       if ( amount != CANCELED )
  28.       {
  29.          // request deposit envelope containing specified amount
  30.          screen.displayMessage( 
  31.             "nPlease insert a deposit envelope containing " );
  32.          screen.displayDollarAmount( amount );
  33.          screen.displayMessageLine( "." );
  34.          // receive deposit envelope
  35.          boolean envelopeReceived = depositSlot.isEnvelopeReceived();
  36.          // check whether deposit envelope was received
  37.          if ( envelopeReceived )
  38.          {  
  39.             screen.displayMessageLine( "nYour envelope has been " + 
  40.                "received.nNOTE: The money just deposited will not " + 
  41.                "be available until we verify the amount of any " +
  42.                "enclosed cash and your checks clear." );
  43.             
  44.             // credit account to reflect the deposit
  45.             bankDatabase.credit( getAccountNumber(), amount ); 
  46.          } // end if
  47.          else // deposit envelope not received
  48.          {
  49.             screen.displayMessageLine( "nYou did not insert an " +
  50.                "envelope, so the ATM has canceled your transaction." );
  51.          } // end else
  52.       } // end if 
  53.       else // user canceled instead of entering amount
  54.       {
  55.          screen.displayMessageLine( "nCanceling transaction..." );
  56.       } // end else
  57.    } // end method execute
  58.    // prompt user to enter a deposit amount in cents 
  59.    private double promptForDepositAmount()
  60.    {
  61.       Screen screen = getScreen(); // get reference to screen
  62.       // display the prompt
  63.       screen.displayMessage( "nPlease enter a deposit amount in " + 
  64.          "CENTS (or 0 to cancel): " );
  65.       int input = keypad.getInput(); // receive input of deposit amount
  66.       
  67.       // check whether the user canceled or entered a valid amount
  68.       if ( input == CANCELED ) 
  69.          return CANCELED;
  70.       else
  71.       {
  72.          return ( double ) input / 100; // return dollar amount 
  73.       } // end else
  74.    } // end method promptForDepositAmount
  75. } // end class Deposit
  76. /**************************************************************************
  77.  * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and               *
  78.  * Pearson Education, Inc. All Rights Reserved.                           *
  79.  *                                                                        *
  80.  * DISCLAIMER: The authors and publisher of this book have used their     *
  81.  * best efforts in preparing the book. These efforts include the          *
  82.  * development, research, and testing of the theories and programs        *
  83.  * to determine their effectiveness. The authors and publisher make       *
  84.  * no warranty of any kind, expressed or implied, with regard to these    *
  85.  * programs or to the documentation contained in these books. The authors *
  86.  * and publisher shall not be liable in any event for incidental or       *
  87.  * consequential damages in connection with, or arising out of, the       *
  88.  * furnishing, performance, or use of these programs.                     *
  89.  *************************************************************************/