⚡ Java Program🔥ATM Simulation #tecqmate

import java.util.Date;
public class Account {
    private int id=0;
    private double balance=0;
    private double annualIntrestRate=0;
    private Date dateCreated;

    public Account() {
        super();
    }

    public Account(int id, double balance) {
        super();
        this.id = id;
        this.balance = balance;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }

    public double getAnnualIntrestRate() {
        return annualIntrestRate;
    }

    public void setAnnualIntrestRate(double annualIntrestRate) {
        this.annualIntrestRate = annualIntrestRate;
    }

    public Date getDateCreated() {
        return dateCreated;
    }

    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    public double getMonthlyInterestRate(){
        return (this.getAnnualIntrestRate()/12);
    }

    public double getMonthlyInterest(){
        return (getBalance() *getMonthlyInterestRate()/100);
    }

    public double withDraw(double balance){
        this.setBalance(this.getBalance()-balance);
        return this.getBalance();
    }

    public double diposite(double balance){
        this.setBalance(this.getBalance()+balance);
        return this.getBalance();
    }

    public double totalBalance(){
        balance =balance + getMonthlyInterest();
        return balance;
    }
}
import java.util.Scanner;
import java.util.Date;

public class AtmSimulator{
    public static void main(String[]args){
        final Account[]accounts = new Account[10];
        for(int i = accounts.length-1; 0 <= i; i --){
            accounts[i] = new Account(i, 100.0);
            accounts[i].setAnnualIntrestRate(2.5);
            accounts[i].setDateCreated(new Date());
        }
        Scanner sc=new Scanner(System.in);
        int[]val = {1, 2, 3, 4};
        int menu;
        boolean useId;
        Account useAc;
        String[]txt = {"Balance","Withdraw", "Deposit", "Exit"};
        do{
            useAc = findByID(sc, accounts);
            useId = true;
            do{
                menu = promptMenu(sc, val, txt);
                switch(menu){
                    case 4: useId = false; break;
                    case 1: balance(useAc); break;
                    case 2: withdraw(sc, useAc); break;
                    case 3: deposit(sc, useAc); break;
                }
            }while(useId);
        }while(true);
    }

    private static Account findByID(Scanner sc, Account[]accounts){
        do{
            System.out.print("Enter account id: ");
            try{
                int id = new Integer(sc.nextLine());
                for(Account ac : accounts){
                    if(ac.getId() == id){
                        return ac;
                    }
                }
                System.out.println("Incorrect account id!");
            }catch(NumberFormatException e){
                System.out.println("Not a number!");
            }
        }while(true);
    }

    private static int promptMenu(Scanner sc, int[]val, String[]txt){
        int menu;
        do{
            System.out.println("\tMenu");
            for(int i = 0; val.length > i; i ++){
                System.out.printf("%d) %s.%n", val[i], txt[i]);
            }
            System.out.print("Enter menu: ");
            try{
                menu = new Integer(sc.nextLine());
                for(int v : val){
                    if(v == menu){
                        return v;
                    }
                }
            }catch(NumberFormatException e){
                                System.out.println("Not a number!");
                        }
        }while(true);
    }

    private static void balance(Account ac){
        System.out.printf("A/c Dated: %s%n",ac.getDateCreated());
        System.out.printf("Monthly intrest rate is: %.2f%n", ac.getMonthlyInterestRate());
        System.out.printf("Monthly intrest is: %.2f%n", ac.getMonthlyInterest());
        System.out.printf("The total amount is: %.2f%n", ac.totalBalance());
    }

    private static void withdraw(Scanner sc, Account ac){
        System.out.print("Enter Amount to withdraw: ");
        try{
            double withdramount= new Double(sc.nextLine());
            System.out.printf("The amount remain after withdraw: %.2f%n", ac.withDraw(withdramount));
        }catch(NumberFormatException e){
            System.out.println("Not a number!");
        }
    }

    private static void deposit(Scanner sc, Account ac){
        System.out.print("Enter Amount for diposit: ");
        try{
            double dipositAmount=new Double(sc.nextLine());
            System.out.printf("The amount after diposit is: %.2f%n", ac.diposite(dipositAmount));
        }catch(NumberFormatException e){
            System.out.println("Not a number!");
        }
    }
}

Comments

Popular posts from this blog