Question: Here is a skeleton Code with some implementations for a project I am doing. I need the following items listed inside the code as well.

Here is a skeleton Code with some implementations for a project I am doing. I need the following items listed inside the code as well. The Invoices for each student type, the id settings and management settings for all the screens. The pictures show the type of items needed to finish the code fully.
import java.util.*;
// Custom exception class used for handling invalid student ID cases.
class IdExcep extends Exception {
public IdExcep(String message){
super(message);
}
}
// Abstract base class for all types of students. It requires implementing the printInvoice method.
abstract class Student {
private String id;
private String name;
// Constructor initializes the student with ID and name.
public Student(String id, String name){
this.id = id;
this.name = name;
}
// Abstract method to print fee invoice, to be implemented by subclasses.
public abstract void printInvoice();
// Getters and setters for student ID and name.
public String getId(){
return id;
}
public String getName(){
return name;
}
public void setId(String id){
this.id = id;
}
public void setName(String name){
this.name = name;
}
}
// Represents an undergraduate student with specific attributes like GPA.
class UndergraduateStudent extends Student {
private double gpa;
// Constructor for undergraduate student includes GPA.
public UndergraduateStudent(String id, String name, double gpa){
super(id, name);
this.gpa = gpa;
}
// Implementation of invoice printing specific to undergraduate students.
@Override
public void printInvoice(){
// Detailed logic to calculate and print the invoice for an undergraduate student.
}
// Getters and setters for GPA.
public double getGpa(){
return gpa;
}
public void setGpa(double gpa){
this.gpa = gpa;
}
}
// Abstract class for graduate students, includes additional fields like advisor.
abstract class GraduateStudent extends Student {
private String advisor;
// Constructor for graduate students includes advisor information.
public GraduateStudent(String id, String name, String advisor){
super(id, name);
this.advisor = advisor;
}
// Getters and setters for advisor.
public String getAdvisor(){
return advisor;
}
public void setAdvisor(String advisor){
this.advisor = advisor;
}
}
// Specific class for MS students, inherits from GraduateStudent.
class MsStudent extends GraduateStudent {
public MsStudent(String id, String name, String advisor){
super(id, name, advisor);
}
// Invoice printing for MS students.
@Override
public void printInvoice(){
// Logic to calculate and print the invoice for an MS student.
}
}
// Specific class for PhD students, includes a list of labs they supervise.
class PhdStudent extends GraduateStudent {
private List supervisedLabs;
public PhdStudent(String id, String name, String advisor){
super(id, name, advisor);
this.supervisedLabs = new ArrayList>();
}
// Allows adding a lab to the list of supervised labs.
public void addLab(String lab){
this.supervisedLabs.add(lab);
}
// Invoice printing for PhD students.
@Override
public void printInvoice(){
// Logic to calculate and print the invoice for a PhD student.
}
// Getter for the list of supervised labs.
public List getSupervisedLabs(){
return supervisedLabs;
}
}
// Represents a course or lab with attributes such as course number (CRN), name, credit hours, and type.
class Course {
private int crn;
private String name;
private int creditHours;
private String type;
// Constructor initializes the course with its det
Sample Run: Assume that the user enters a valid menu option (for all the menus)
Enter your selection: A
Enter the Class/Lab Number: 98103
Lab for [12658, LOG5578, Logic and Proof Lab Room CMA-008
Course Management Menu:
Choose one of:
A - Search for a class or lab using the class/lab number
A - Search for a C B - delete a class
C - Add a lab to a class x- Back to main menu
Enter your selection: A
Enter the Class/Lab Number: 12658
Enter the Class/Lab Number: 12658[12658, LOG5578, Lulic dnd Pruve
A fee invoice for an MS student should look like
VALENCE COLLEGE ORLANDO PL 10101
Pee Invoice Prepared for student: RA2959-ERICRA JUNAID
RA2959-ERICRA JUNAID 1 Credit Hour =$300.00
{:[CRN,CRPREPTX,CRHOURs]69970,GOL1091,1300.00
Health s id fees $35.00
TOTAL PAMMENTS $335.00
A fee invoice for an PhD student should look like
VALENCE COLLEGE ORLANDO FL 10101---
Here is a skeleton Code with some implementations

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!