Answer to Question #295627 in Java | JSP | JSF for Aashish

Question #295627

Write a Class FeeCalculator that’s programed against FeeStructure (or uses FeeStructure Interface) having the following members

Fields: feeStructure

Constructor (using dependency injection -> constructor injection)

Methods:

  • ·   double calculate(int creditHour, String type )
  • ·  double calculate(int creditHour, String type, int discount )
1
Expert's answer
2022-02-10T09:49:35-0500


interface FeeStructure {
	double calculateFee(int creditHour, String type);


	double calculateFee(int creditHour, String type, int discount);
}


class FeeCalculator implements FeeStructure {
	private FeeStructure feeStructure;


	public FeeCalculator(FeeStructure feeStructure) {
		setFeeStructure(feeStructure);
	}


	/**
	 * PKR 4,100 per creditHour when type is set to "theory" PKR 12,250 per
	 * creditHour when type is set to "lab"
	 */
	@Override
	public double calculateFee(int creditHour, String type) {
		if (type.compareToIgnoreCase("theory") == 0) {
			return 4100 * creditHour;
		}
		if (type.compareToIgnoreCase("lab") == 0) {
			return 12250 * creditHour;
		}
		return 0;
	}


	@Override
	public double calculateFee(int creditHour, String type, int discount) {
		double fee = calculateFee(creditHour, type);
		return fee - ((fee * (double) discount) / 100.0);
	}


	/**
	 * @return the feeStructure
	 */
	public FeeStructure getFeeStructure() {
		return feeStructure;
	}


	/**
	 * @param feeStructure the feeStructure to set
	 */
	public void setFeeStructure(FeeStructure feeStructure) {
		this.feeStructure = feeStructure;
	}


}


class App {


	public static void main(String[] args) {
		FeeStructure f = null;
		FeeCalculator feeCalculator = new FeeCalculator(f);


		System.out.println("FeeCalculator: " + feeCalculator.calculateFee(10, "theory"));
		System.out.println("FeeCalculator discount: " + feeCalculator.calculateFee(25, "lab", 10));


	}
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS