Answer to Question #289859 in Java | JSP | JSF for MOldir

Question #289859

Implement a java class hierarchy that represents at least three different types of exams: quizes, midterms, and finals. The base class called Exam must have three abstract methods called getPoints(), setPoints(), and getNormalizedScore(). In addition to that, each derived class must have a constructor which takes as parameters the minimum number of points for this exam (e.g. 0), the maximum number of points for the exam (e.g., 100), and the weight of this exam (e.g., 20%). All the fields must to have Private access modifier. Create setter and getter functions for each field. Create function which prints all fields.


1
Expert's answer
2022-01-22T12:59:22-0500
abstract class Exam {


	private int minimumNumberPoints;
	private int maximumNumberPoints;
	private int weight;


	public Exam() {
	}


	public Exam(int minimumNumberPoints, int maximumNumberPoints, int weight) {
		this.minimumNumberPoints = minimumNumberPoints;
		this.maximumNumberPoints = maximumNumberPoints;
		this.weight = weight;
	}


	public void print() {
		System.out.println("The minimum number of points for the exam: " + minimumNumberPoints);
		System.out.println("The maximum number of points for the : " + maximumNumberPoints);
		System.out.println("The weight of this exam: " + weight);
	}


	public abstract int getPoints();


	public abstract void setPoints(int minimumNumberPoints, int maximumNumberPoints);


	public abstract int getNormalizedScore();


	/**
	 * @return the minimumNumberPoints
	 */
	public int getMinimumNumberPoints() {
		return minimumNumberPoints;
	}


	/**
	 * @param minimumNumberPoints the minimumNumberPoints to set
	 */
	public void setMinimumNumberPoints(int minimumNumberPoints) {
		this.minimumNumberPoints = minimumNumberPoints;
	}


	/**
	 * @return the maximumNumberPoints
	 */
	public int getMaximumNumberPoints() {
		return maximumNumberPoints;
	}


	/**
	 * @param maximumNumberPoints the maximumNumberPoints to set
	 */
	public void setMaximumNumberPoints(int maximumNumberPoints) {
		this.maximumNumberPoints = maximumNumberPoints;
	}


	/**
	 * @return the weight
	 */
	public int getWeight() {
		return weight;
	}


	/**
	 * @param weight the weight to set
	 */
	public void setWeight(int weight) {
		this.weight = weight;
	}
}


class Quiz extends Exam {


	public Quiz(int minimumNumberPoints, int maximumNumberPoints, int weight) {
		super(minimumNumberPoints, maximumNumberPoints, weight);
	}


	@Override
	public int getPoints() {
		return getMaximumNumberPoints() - getMinimumNumberPoints();
	}


	@Override
	public void setPoints(int minimumNumberPoints, int maximumNumberPoints) {
		setMinimumNumberPoints(minimumNumberPoints);
		setMaximumNumberPoints(maximumNumberPoints);
	}


	@Override
	public int getNormalizedScore() {
		return (getMaximumNumberPoints() - getMinimumNumberPoints()) / getWeight();
	}


}


class Midterm extends Exam {
	public Midterm(int minimumNumberPoints, int maximumNumberPoints, int weight) {
		super(minimumNumberPoints, maximumNumberPoints, weight);
	}


	@Override
	public int getPoints() {
		return getMaximumNumberPoints() - getMinimumNumberPoints();
	}


	@Override
	public void setPoints(int minimumNumberPoints, int maximumNumberPoints) {
		setMinimumNumberPoints(minimumNumberPoints);
		setMaximumNumberPoints(maximumNumberPoints);
	}


	@Override
	public int getNormalizedScore() {
		return (getMaximumNumberPoints() - getMinimumNumberPoints()) / getWeight();
	}


}


class Final extends Exam {
	public Final(int minimumNumberPoints, int maximumNumberPoints, int weight) {
		super(minimumNumberPoints, maximumNumberPoints, weight);
	}


	@Override
	public int getPoints() {
		return getMaximumNumberPoints() - getMinimumNumberPoints();
	}


	@Override
	public void setPoints(int minimumNumberPoints, int maximumNumberPoints) {
		setMinimumNumberPoints(minimumNumberPoints);
		setMaximumNumberPoints(maximumNumberPoints);
	}


	@Override
	public int getNormalizedScore() {
		return (getMaximumNumberPoints() - getMinimumNumberPoints()) / getWeight();
	}


}


public class App {


	/**
	 * The start point of the program
	 * 
	 * @param args
	 * 
	 */
	public static void main(String[] args) {
		Quiz quiz=new Quiz(15, 65, 10);
		Midterm midterm=new Midterm(10, 60, 20);
		Final newfinal=new Final(15, 30, 80);
		quiz.print();
		midterm.print();
		newfinal.print();
		
	}
}

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