CODE:
import java.util.Scanner;
class Account {
String name, type;
int accNo;
double balance;
void deposit(double amount) {
balance += amount;
}
void withdraw(double amount) {
if (amount <= balance) balance -= amount;
else System.out.println("Insufficient balance");
}
void displayBalance() {
System.out.println("Balance: " + balance);
}
}
class SavingsAccount extends Account {
void computeInterest() {
double interest = balance * 0.03;
balance += interest;
System.out.println("Interest added: " + interest);
}
}
class CurrentAccount extends Account {
void checkMinimum() {
if (balance < 500) {
System.out.println("Balance below minimum. Imposing penalty of 100");
balance -= 100;
}
}
}
public class Bank {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter number of accounts: ");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
System.out.println("\nAccount " + (i + 1));
System.out.print("Enter name: ");
String name = sc.next();
System.out.print("Enter account number: ");
int accNo = sc.nextInt();
System.out.print("Enter account type (savings/current): ");
String type = sc.next();
System.out.print("Enter initial balance: ");
double balance = sc.nextDouble();
if (type.equalsIgnoreCase("savings")) {
SavingsAccount sa = new SavingsAccount();
sa.name = name;
sa.accNo = accNo;
sa.type = type;
sa.balance = balance;
System.out.print("Enter deposit amount: ");
sa.deposit(sc.nextDouble());
sa.computeInterest();
System.out.print("Enter amount to withdraw: ");
sa.withdraw(sc.nextDouble());
sa.displayBalance();
} else if (type.equalsIgnoreCase("current")) {
CurrentAccount ca = new CurrentAccount();
ca.name = name;
ca.accNo = accNo;
ca.type = type;
ca.balance = balance;
System.out.print("Enter deposit amount: ");
ca.deposit(sc.nextDouble());
System.out.print("Enter amount to withdraw: ");
ca.withdraw(sc.nextDouble());
ca.checkMinimum();
ca.displayBalance();
} else {
System.out.println("Invalid account type");
}
}
}
}OUTPUT:
Enter number of accounts: 1
Account 1
Enter name: Achu
Enter account number: 34452
Enter account type (savings/current): savings
Enter initial balance: 15000
Enter deposit amount: 500
Interest added: 465.0
Enter amount to withdraw: 700
Balance: 15265.0