In this project you are to write a Java program similar to the ones used in ATM
ID: 3779558 • Letter: I
Question
In this project you are to write a Java program similar to the ones used in ATM machines. Essentially your program is to handle the following services: Cash withdrawal from either account Deposit to both accounts Transfer from saving account to checking account Transfer from checking account to saving account Balance statements for both accounts The start message is to be displayed as follows: *** Welcome to ELAC ATM *** Input PIN: Clear Exit In response to Input PIN, the user has to enter a valid 4 digit PIN. If any 4 digit number besides the correct PIN is entered, the system should display an error message, and the original menu to be redisplayed. The user then gets a second chance to enter a valid PIN. If an illegal PIN is entered three consecutive times, the following message should appear on the screen 'Too many illegal attempts. later." If the user input a value in wrong format, the system should keep displaying an error message and ask for correct format (this does not count for an illegal attempt). Clear, does clear the number of attempts to reset the system for a new user. Exit option should be available only on this screen. Selecting this option should display "***Thank you for using ELAC ATM***" message before terminating the application. If the entered PIN is a legal value, the main form should display: *** ELAC ATM system *** Withdrawal Cash Deposit Transfer Balance Inquiry Logout Use arrays to hold the accounts information (assume the ATM could have maximum of 10 accounts and there are no duplicated PINs). Among other accounts, have one account with the following information: PIN should be 1111 with saving and checking initial balance of $1000.00. Withdraw Cash selection should give the user options to withdraw from checking or saving account and should subtract the amount specified from the appropriate account only if it can be honored. There should be the following options to choose from: $20.00, $40.00, $60.00, $80.00, $100.00, or Other amount where the user could input any amount. The ATM should only be capable of dispensing amounts that are multiples of 20. Deposit should give the user options to deposit to checking or saving account and should accept any amount. Any transfer is allowed only if it can be honored. For example, if the savings account balance is $500.00 and the user requests to transfer $550.00 from the savings account to the checking account an appropriate should be displayed. Balance Inquiry should display the current amount available in the accounts. Logout option should take you back to the initial screen to allow ATM use by a new user. The user should be able to cancel the current transaction at all time. Canceling the current transaction should display the main menu. If a transaction is completed, the application should display 'Transaction completed" and go to the main menu. If a transaction is not completed, the application should display 'Transaction not completed" and stay in current menu. Do not use global variables.Explanation / Answer
import java.util.*;
import java.io.*;
public class HelloWorld{
public static void main(String []args){
int opt, pin;
int PIN[] = {1234,2243,4564,6768,6866,6865,4345,2344,5676,9898};
float balance[] ={1000,1000,1000,1000,1000,1000,1000,1000,1000,1000};
int Account_number[] = {123456789,223435332,456765454,345433434,334432343,345678976,342234545,56454332,343343432,345434323};
int withdraw, deposit;
System.out.println("*** Welcome to ELAC ATM ***");
System.out.print(" 1. Input PIN 2. Clear 3. Exit Choose option : ");
Scanner sc = new Scanner(System.in);
opt = sc.nextInt();
int count = 0, flag = 0;
int ch = 0;
do{
switch(opt) {
case 1: System.out.println("Enter PIN :");
pin = sc.nextInt();
for(int i=0; i<10; i++){
if(pin == PIN[i]){
flag = 1;
System.out.println("*** ELAC ATM System ***");
System.out.print(" 1. Withdraw Cash 2. Deposit 3. Transfer 4. Balance Inquiry 5. Logout Choose option : ");
int opt1 = sc.nextInt();
switch(opt1) {
case 1: System.out.print("Enter money to be withdrawn:");
withdraw = sc.nextInt();
if(balance[i] >= withdraw) {
balance[i] = balance[i] - withdraw;
System.out.println("Please collect your money");
System.exit(0);
}
else{
System.out.println("Insufficient Balance");
System.exit(0);
}
break;
case 2: System.out.println("Enter money to be deposited:");
deposit = sc.nextInt();
balance[i] = balance[i] + deposit;
System.out.println("Your Money has been successfully deposited");
System.exit(0);
break;
case 3: System.out.print("Enter Account Number you wants to transfer : ");
int acc = sc.nextInt();
int flag1 = 0, flag2 = 0;
for(int j=0; j<10; j++){
if(acc == Account_number[j]){
flag1 = 1;
System.out.print("Enter amount : ");
int amount = sc.nextInt();
if(amount < balance[i]) {
flag2 = 1;
balance[j] = balance[j] + amount;
balance[i] = balance[i] - amount;
System.out.println("Transfer Successfully");
}
}
}
if(flag2 == 0){
System.out.println("Insufficient Balance");
System.exit(0);
}
if(flag1 == 0){
System.out.println("Invalid Account Number ");
opt = 3;
}
break;
case 4: System.out.println("Balance : "+balance[i]);
break;
case 5: System.exit(0);
break;
default : System.out.println("Invalid option");
break;
}
}
}
if(flag == 0){
count++;
System.out.println("Incorrect PIN, Please try again");
if(count == 3){
System.out.println("Too many illegal attempts, Try again later");
System.exit(0);
}
else
opt = 1;
}
break;
case 2: opt = 1;
continue;
case 3: System.exit(0);
break;
default : System.out.println("Invalid option");
break;
}
System.out.println("You wants to do more operation (enter 1) : ");
ch = sc.nextInt();
}while(ch == 1);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.