Project 2
import java.util.Scanner;
class Customer {
private String name;
private String dob;
private String accountType;
public Customer(String name, String dob, String accountType) {
this.name = name;
this.dob = dob;
this.accountType = accountType;
}
public String getName() {
return name;
}
public String getDob() {
return dob;
}
public String getAccountType() {
return accountType;
}
}
class Account {
private int accountNumber;
private double balance;
private double interestRate;
public Account(int accountNumber, double balance, double interestRate) {
this.accountNumber = accountNumber;
this.balance = balance;
this.interestRate = interestRate;
}
public int getAccountNumber() {
return accountNumber;
}
public double getBalance() {
return balance;
}
public double getInterestRate() {
return interestRate;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double calculateSimpleInterest(int time) {
return balance * interestRate * time;
}
public double calculateCompoundInterest(int time, int n) {
double r = interestRate / n;
double nt = n * time;
return balance * Math.pow(1 + r, nt) - balance;
}
}
class RBI {
public double getInterestRate() {
return 0.0;
}
public double getWithdrawalLimit() {
return 0.0;
}
}
class SBI extends RBI {
public double getInterestRate() {
return 0.05;
}
public double getWithdrawalLimit() {
return 10000.0;
}
}
class ICICI extends RBI {
public double getInterestRate() {
return 0.06;
}
public double getWithdrawalLimit() {
return 15000.0;
}
}
class PNB extends RBI {
public double getInterestRate() {
return 0.07;
}
public double getWithdrawalLimit() {
return 20000.0;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Which bank do you want to access? (SBI/ICICI/PNB)");
String bank = scanner.nextLine();
System.out.println("What type of account do you have? (Savings/Current)");
String accountType = scanner.nextLine();
System.out.println("Which user account do you want to access? (User1/User2)");
String user = scanner.nextLine();
Customer customer = new Customer(user, "01/01/2000", accountType);
Account account = new Account(123, 5000.0, 0.0);
RBI rbi = null;
if (bank.equalsIgnoreCase("SBI")) {
rbi = new SBI();
} else if (bank.equalsIgnoreCase("ICICI")) {
rbi = new ICICI();
} else if (bank.equalsIgnoreCase("PNB")) {
rbi = new PNB();
}
double interestRate = rbi.getInterestRate();
double withdrawalLimit = rbi.getWithdrawalLimit();
if (accountType.equalsIgnoreCase("Savings")) {
if (account.getBalance() < 2000.0) {
System.out.println("Minimum balance for savings account is 2000/-");
return;
}
account.setBalance(account.getBalance() + account.calculateSimpleInterest(1));
} else if (accountType.equalsIgnoreCase("Current")) {
if (account.getBalance() < 5000.0) {
System.out.println("Minimum balance for current account is 5000/-");
return;
}
account.setBalance(account.getBalance() + account.calculateCompoundInterest(1, 2));
}
System.out.println("Interest rate: " + interestRate);
System.out.println("Withdrawal limit: " + withdrawalLimit);
System.out.println("Balance: " + account.getBalance());
}
}