Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ATM
- {
- private boolean userAuthenticated;
- private int currentAccountNumber;
- private Screen screen;
- private Keypad keypad;
- private CashDispenser cashDispenser;
- private DepositSlot depositSlot;
- private BankDatabase bankDatabase;
- private static final int BALANCE_INQUIRY = 1;
- private static final int WITHDRAW = 2;
- private static final int DEPOSIT = 3;
- private static final int EXIT = 4;
- public ATM()
- {
- userAuthenticated = false;
- currentAccountNumber = 0;
- screen = new Screen();
- keypad = new Keypad();
- cashDispenser = new CashDispenser();
- depositSlot = new DepositSlot();
- bankDatabase = new BankDatabase();
- }
- public void run()
- {
- while (true)
- {
- while( !userAuthenticated )
- {
- screen.displayMessageLine( "\nSelamat Datang!");
- authenticateUser();
- }
- performTransactions();
- userAuthenticated = false;
- currentAccountNumber = 0;
- }
- }
- private void authenticateUser()
- {
- screen.displayMessage("\nMasukkan Nomor Akun Anda: " );
- int accountNumber = keypad.getInput();
- screen.displayMessage("\nMasukkan PIN Anda: " );
- int pin = keypad.getInput();
- userAuthenticated = bankDatabase.authenticateUser( accountNumber, pin );
- if ( userAuthenticated )
- {
- currentAccountNumber = accountNumber;
- }
- else
- {
- screen.displayMessageLine( "Nomor Akun atau PIN anda SALAH. Silahkan coba lagi!" );
- }
- }
- private void performTransactions()
- {
- Transaction currentTransaction = null;
- boolean userExited = false;
- while ( !userExited )
- {
- int mainMenuSelection = displayMainMenu();
- switch ( mainMenuSelection )
- {
- case BALANCE_INQUIRY:
- case WITHDRAW:
- case DEPOSIT:
- currentTransaction = createTransaction( mainMenuSelection );
- currentTransaction.execute();
- break;
- case EXIT:
- screen.displayMessageLine( "\n Keluar Dari System. . ." );
- userExited = true;
- break;
- default:
- screen.displayMessageLine( "\nAnda Tidak Memasukan Angka dengan Tepat. Silahkan Coba Sekali Lagi!" );
- break;
- }
- }
- }
- private int displayMainMenu()
- {
- screen.displayMessageLine( "\nMain Menu:" );
- screen.displayMessageLine( "1. Melihat Saldo" );
- screen.displayMessageLine( "2. Tarik Tunai" );
- screen.displayMessageLine( "3. Menyimpan Uang" );
- screen.displayMessageLine( "4. EXIT\n" );
- screen.displayMessageLine( "Masukan Pilihan Anda! " );
- return keypad.getInput();
- }
- private Transaction createTransaction( int type )
- {
- Transaction temp = null;
- switch ( type )
- {
- case BALANCE_INQUIRY:
- temp = new BalanceInquiry( currentAccountNumber, screen, bankDatabase );
- break;
- case WITHDRAW:
- temp = new Withdraw( currentAccountNumber, screen, bankDatabase, keypad, cashDispenser );
- break;
- case DEPOSIT:
- temp = new Deposit( currentAccountNumber, screen,bankDatabase, keypad, depositSlot );
- break;
- }
- return temp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment