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

金融证券系统

开发平台:

Java

  1. // BankDatabase.java
  2. // Represents the bank account information database 
  3. public class BankDatabase
  4. {
  5.    private Account accounts[]; // array of Accounts
  6.    
  7.    // no-argument BankDatabase constructor initializes accounts
  8.    public BankDatabase()
  9.    {
  10.       accounts = new Account[ 2 ]; // just 2 accounts for testing
  11.       accounts[ 0 ] = new Account( 12345, 54321, 1000.0, 1200.0 );
  12.       accounts[ 1 ] = new Account( 98765, 56789, 200.0, 200.0 );  
  13.    } // end no-argument BankDatabase constructor
  14.    
  15.    // retrieve Account object containing specified account number
  16.    private Account getAccount( int accountNumber )
  17.    {
  18.       // loop through accounts searching for matching account number
  19.       for ( Account currentAccount : accounts )
  20.       {
  21.          // return current account if match found
  22.          if ( currentAccount.getAccountNumber() == accountNumber )
  23.             return currentAccount;
  24.       } // end for
  25.       return null; // if no matching account was found, return null
  26.    } // end method getAccount
  27.    // determine whether user-specified account number and PIN match
  28.    // those of an account in the database
  29.    public boolean authenticateUser( int userAccountNumber, int userPIN )
  30.    {
  31.       // attempt to retrieve the account with the account number
  32.       Account userAccount = getAccount( userAccountNumber );
  33.       // if account exists, return result of Account method validatePIN
  34.       if ( userAccount != null )
  35.          return userAccount.validatePIN( userPIN );
  36.       else
  37.          return false; // account number not found, so return false
  38.    } // end method authenticateUser
  39.    // return available balance of Account with specified account number
  40.    public double getAvailableBalance( int userAccountNumber )
  41.    {
  42.       return getAccount( userAccountNumber ).getAvailableBalance();
  43.    } // end method getAvailableBalance
  44.    // return total balance of Account with specified account number
  45.    public double getTotalBalance( int userAccountNumber )
  46.    {
  47.       return getAccount( userAccountNumber ).getTotalBalance();
  48.    } // end method getTotalBalance
  49.    // credit an amount to Account with specified account number
  50.    public void credit( int userAccountNumber, double amount )
  51.    {
  52.       getAccount( userAccountNumber ).credit( amount );
  53.    } // end method credit
  54.    // debit an amount from of Account with specified account number
  55.    public void debit( int userAccountNumber, double amount )
  56.    {
  57.       getAccount( userAccountNumber ).debit( amount );
  58.    } // end method debit
  59. } // end class BankDatabase
  60. /**************************************************************************
  61.  * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and               *
  62.  * Pearson Education, Inc. All Rights Reserved.                           *
  63.  *                                                                        *
  64.  * DISCLAIMER: The authors and publisher of this book have used their     *
  65.  * best efforts in preparing the book. These efforts include the          *
  66.  * development, research, and testing of the theories and programs        *
  67.  * to determine their effectiveness. The authors and publisher make       *
  68.  * no warranty of any kind, expressed or implied, with regard to these    *
  69.  * programs or to the documentation contained in these books. The authors *
  70.  * and publisher shall not be liable in any event for incidental or       *
  71.  * consequential damages in connection with, or arising out of, the       *
  72.  * furnishing, performance, or use of these programs.                     *
  73.  *************************************************************************/