You are on page 1of 7

Code:

import java.util.ArrayList;
import java.util.Scanner;

class Account {
private int custID;
private String custName;
private double balance;
private static double annualInterestRate = 0.03; // 3% annual interest rate

public Account(int custID, String custName, double balance) {


this.custID = custID;
this.custName = custName;
this.balance = balance;
}

public int getCustID() {


return custID;
}

public String getCustName() {


return custName;
}

public double getBalance() {


return balance;
}

public void deposit(double amount) {


balance += amount;
}

public void withdraw(double amount) {


if (amount <= balance) {
balance -= amount;
} else {
System.out.println("Insufficient balance.");
}
}

public void applyInterest() {


balance += balance * annualInterestRate;
}
public static void setAnnualInterestRate(double rate) {
annualInterestRate = rate;
}
}

public class AccountDriver {


public static void main(String[] args) throws Exception{
Scanner scanner = new Scanner(System.in);
ArrayList<Account> accounts = new ArrayList<>();

while (true) {
System.out.println("Menu:");
System.out.println("1. Add account");
System.out.println("2. Display individual account");
System.out.println("3. Display all accounts");
System.out.println("4. Deposit to individual account");
System.out.println("5. Withdraw from individual account");
System.out.println("6. Financial Year ending");
System.out.println("7. Exit");

System.out.print("Enter your choice: ");


int choice = scanner.nextInt();
scanner.nextLine(); // Consume the newline character

switch (choice) {
case 1:
System.out.print("Enter customer ID: ");
int custID = scanner.nextInt();
scanner.nextLine(); // Consume the newline character

System.out.print("Enter customer name: ");


String custName = scanner.nextLine();

System.out.print("Enter initial balance: ");


double initialBalance = scanner.nextDouble();

Account account = new Account(custID, custName,


initialBalance);
accounts.add(account);
System.out.println("Account added successfully!");
break;

case 2:
System.out.print("Enter customer ID to display account: ");
int displayCustID = scanner.nextInt();
displayIndividualAccount(accounts, displayCustID);
break;

case 3:
displayAllAccounts(accounts);
break;

case 4:
System.out.print("Enter customer ID for deposit: ");
int depositCustID = scanner.nextInt();
System.out.print("Enter deposit amount: ");
double depositAmount = scanner.nextDouble();
depositToIndividualAccount(accounts, depositCustID,
depositAmount);
break;

case 5:
System.out.print("Enter customer ID for withdrawal: ");
int withdrawCustID = scanner.nextInt();
System.out.print("Enter withdrawal amount: ");
double withdrawAmount = scanner.nextDouble();
withdrawFromIndividualAccount(accounts, withdrawCustID,
withdrawAmount);
break;

case 6:
for (Account acc : accounts) {
acc.applyInterest();
}
System.out.println("Interest applied for all accounts.");
break;

case 7:
System.out.println("Exiting the program.");
scanner.close();
System.exit(0);
break;

default:
System.out.println("Invalid choice. Please try again.");
}
}
}
public static void displayIndividualAccount(ArrayList<Account> accounts, int
custID) {
for (Account account : accounts) {
if (account.getCustID() == custID) {
System.out.println("Customer ID: " + account.getCustID());
System.out.println("Customer Name: " + account.getCustName());
System.out.println("Balance: " + account.getBalance());
return;
}
}
System.out.println("Account not found with Customer ID: " + custID);
}

public static void displayAllAccounts(ArrayList<Account> accounts) {


System.out.println("All Accounts:");
for (Account account : accounts) {
System.out.println("Customer ID: " + account.getCustID());
System.out.println("Customer Name: " + account.getCustName());
System.out.println("Balance: " + account.getBalance());
System.out.println();
}
}

public static void depositToIndividualAccount(ArrayList<Account> accounts,


int custID, double amount) {
for (Account account : accounts) {
if (account.getCustID() == custID) {
account.deposit(amount);
System.out.println("Deposit successful. New balance: " +
account.getBalance());
return;
}
}
System.out.println("Account not found with Customer ID: " + custID);
}

public static void withdrawFromIndividualAccount(ArrayList<Account>


accounts, int custID, double amount) {
for (Account account : accounts) {
if (account.getCustID() == custID) {
account.withdraw(amount);
System.out.println("Withdrawal successful. New balance: " +
account.getBalance());
return;
}
}
System.out.println("Account not found with Customer ID: " + custID);
}
}

Screenshot:

You might also like