Findryan

FP_VendingMachine_VM

Dec 25th, 2016
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. public class Vending_Machine
  2. {
  3. private boolean userAuthenticated;
  4. private int currentCardNumber;
  5. private Screen screen;
  6. private Keypad keypad;
  7. private ItemDispenser itemDispenser;
  8. private BankDatabase bankDatabase;
  9.  
  10. private static final int AQUA = 1;
  11. private static final int TEH_PUCUK = 2;
  12. private static final int POCARI_SWEAT = 3;
  13. private static final int EXIT = 0;
  14.  
  15. public Vending_Machine()
  16. {
  17.  
  18. userAuthenticated = false;
  19. currentCardNumber = 0;
  20. screen = new Screen();
  21. keypad = new Keypad();
  22. itemDispenser = new ItemDispenser();
  23. bankDatabase = new BankDatabase();
  24. }
  25.  
  26. public void run()
  27. {
  28. while ( true )
  29. {
  30. screen.displayMessageLine( "\nSelamat Datang!" );
  31. performTransactions();
  32. userAuthenticated = false;
  33. currentCardNumber = 0;
  34. screen.displayMessageLine( "\nTerima Kasih! Selamat Tinggal!" );
  35. }
  36.  
  37. }
  38.  
  39. private void performTransactions()
  40. {
  41. Transaction currentTransaction = null;
  42. boolean userExited = false;
  43.  
  44. int mainMenuSelection = displayMenuOfItem();
  45.  
  46. switch(mainMenuSelection)
  47. {
  48. case AQUA:
  49. case TEH_PUCUK:
  50. case POCARI_SWEAT:
  51. while ( !userAuthenticated )
  52. {
  53. authenticateUser();
  54. userAuthenticated = true;
  55. }
  56. currentTransaction =
  57. createTransaction( mainMenuSelection );
  58. currentTransaction.execute();
  59. break;
  60. case EXIT:
  61. screen.displayMessageLine( "\nMembatalkan Transaksi. . .");
  62. break;
  63. default:
  64. screen.displayMessageLine(
  65. "\nMasukkan angka yang sesuai. Coba lagi." );
  66. break;
  67. }
  68. }
  69.  
  70. private int displayMenuOfItem()
  71. {
  72. screen.displayMessageLine( "\nMenu Utama:" );
  73. screen.displayMessageLine( "1 - AQUA - Rp. 2500" );
  74. screen.displayMessageLine( "2 - TEH PUCUK - Rp. 4000" );
  75. screen.displayMessageLine( "3 - POCARI SWEAT - Rp. 6000" );
  76. screen.displayMessageLine( "0 - Keluar\n" );
  77. screen.displayMessage( "Masukkan Pilihan: " );
  78. return keypad.getInput();
  79. }
  80.  
  81. private void authenticateUser()
  82. {
  83. screen.displayMessage( "\nTaruh kartu Mandiri E-Money disini : " );
  84. int cardNumber = keypad.getInput();
  85.  
  86. userAuthenticated = bankDatabase.authenticateUser(cardNumber);
  87.  
  88. if ( userAuthenticated )
  89. {
  90. currentCardNumber = cardNumber;
  91. }
  92.  
  93. else
  94. screen.displayMessageLine(
  95. "Mohon maaf kartu e-money anda tidak dapat teridentifikasi. Silahkan coba lagi." );
  96. }
  97.  
  98. private Transaction createTransaction( int type )
  99. {
  100. Transaction temp = null;
  101. switch ( type )
  102. {
  103. case AQUA:
  104. case TEH_PUCUK:
  105. case POCARI_SWEAT:
  106. temp = new Pembelian( currentCardNumber, screen, bankDatabase, keypad, itemDispenser, type );
  107. break;
  108. }
  109. return temp;
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment