We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5
Experiment- 1.
Student Name: Sumit UID: 21BCS10075
Branch: BE-CSE Section/Group: KRG_SC_1 Semester: 6th Date of Performance: 15/02/2024 Subject Name: Project Based Learning in Java Subject Code: 21CSH-319
1. Aim: Create an application to calculate interest for FDs, RDs based on certain conditions using inheritance.
2. Objective:
• To learn about concept of Inheritance.
• To learn about Abstract classes, Exception Handling.
3. Script and Output:
import java.util.*; abstract class Account { double interestRate; double amount; abstract double calculateInterest(double amount); } class FDaccount extends Account { double FDinterestRate; double FDAmount; int noOfDays; int ageOfACHolder; double General, SCitizen; Scanner FDScanner = new Scanner(System.in); @Override double calculateInterest(double amount) { this.FDAmount = amount; System.out.println("Enter FD days"); noOfDays = FDScanner.nextInt(); System.out.println("Enter FD age holder "); ageOfACHolder = FDScanner.nextInt(); if (amount < 10000000) { if (noOfDays >= 7 && noOfDays <= 14) { General = 0.0450; SCitizen = 0.0500; } else if (noOfDays >= 15 && noOfDays <= 29) { General = 0.0470; SCitizen = 0.0525; } else if (noOfDays >= 30 && noOfDays <= 45) { General = 0.0550; SCitizen = 0.0600; } else if (noOfDays >= 45 && noOfDays <= 60) { General = 0.0700; SCitizen = 0.0750; } else if (noOfDays >= 61 && noOfDays <= 184) { General = 0.0750; SCitizen = 0.0800; } else if (noOfDays >= 185 && noOfDays <= 365) { General = 0.0800; SCitizen = 0.0850; } FDinterestRate = (ageOfACHolder < 50) ? General : SCitizen; } else { if (noOfDays >= 7 && noOfDays <= 14) { interestRate = 0.065; } else if (noOfDays >= 15 && noOfDays <= 29) { interestRate = 0.0675; } else if (noOfDays >= 30 && noOfDays <= 45) { interestRate = 0.00675; } else if (noOfDays >= 45 && noOfDays <= 60) { interestRate = 0.080; } else if (noOfDays >= 61 && noOfDays <= 184) { interestRate = 0.0850; } else if (noOfDays >= 185 && noOfDays <= 365) { interestRate = 0.10; } } return FDAmount * FDinterestRate; } } class RDaccount extends Account { double RDInterestRate; double RDamount; int noOfMonths; double monthlyAmount; double General, SCitizen; Scanner RDScanner = new Scanner(System.in); @Override double calculateInterest(double Ramount) { this.RDamount = Ramount; System.out.println("Enter RD months"); noOfMonths = RDScanner.nextInt(); System.out.println("Enter RD holder age"); int age = RDScanner.nextInt(); if (noOfMonths >= 0 && noOfMonths <= 6) { General = .0750; SCitizen = 0.080; } else if (noOfMonths >= 7 && noOfMonths <= 9) { General = .0775; SCitizen = 0.0825; } else if (noOfMonths >= 10 && noOfMonths <= 12) { General = .0800; SCitizen = 0.0850; } else if (noOfMonths >= 13 && noOfMonths <= 15) { General = .0825; SCitizen = 0.0875; } else if (noOfMonths >= 16 && noOfMonths <= 18) { General = .0850; SCitizen = 0.0900; } else if (noOfMonths >= 22) { General = .0875; SCitizen = 0.0925; } RDInterestRate = (age < 50) ? General : SCitizen; return RDamount * RDInterestRate; } } class SBaccount extends Account { double SBamount, SbInterestRate, interest; Scanner SBScanner = new Scanner(System.in); @Override double calculateInterest(double amount) { this.SBamount = amount; System.out.println("Select account type \n1. NRI \n2. Normal "); int accountChoice = SBScanner.nextInt(); switch (accountChoice) { case 1: SbInterestRate = .06; break; case 2: SbInterestRate = .04; break; default: System.out.println("Please choose the right account again"); } return amount * SbInterestRate; } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("SELECT THE OPTIONS " + "\n1." + " Interest Calculator-Saving Account " + "\n2." + " Interest Calculator - Fixed Deposit " + "\n3." + " InterestCalculator-Recurring Deposits" + "\n4 " + " Exit"); int choice = sc.nextInt(); switch (choice) { case 1: SBaccount sb = new SBaccount(); System.out.println("Enter the Average SB amount "); double amount = sc.nextDouble(); System.out.println("Interest gained is : $ " + sb.calculateInterest(amount)); break; case 2: FDaccount fd = new FDaccount(); System.out.println("Enter the FD Amount"); double fAmount = sc.nextDouble(); System.out.println("Interest gained is: $ " + fd.calculateInterest(fAmount)); break; case 3: RDaccount rd = new RDaccount(); System.out.println("Enter the RD amount"); double Ramount = sc.nextDouble(); System.out.println("Interest gained is: $ " + rd.calculateInterest(Ramount)); break; case 4: System.out.println("DO YOU WANT TO CALCULATE AGAIN ???? " + " " + "RUN AGAIN THE PROGRAM"); default: System.out.println("Wrong choice"); } } }
Output:
Fig 1: Output of calculate interest on RD’s and FD’s