Need completed within 24 hours.
Assignment5 – Creating a Hierarchy of
Classes
Part 1. Create the following classes using the data types as noted.
1) Person implements IPerson
•name – String
•address – String
•social security number – String
•date of birth – java.util.GregorianCalendar
2) Student extends Person
•date of graduation – java.util.GregorianCalendar
•current GPA – float
•classes currently enrolled in ArrayList
3) Faculty extends Person
• date of hire – java.util.GregorianCalendar
• date of termination – java.util.GregorianCalendar
• salary – double
• classes currently teaching
• status – char (p – part time, f – full time)
4) Classroom
• room number – String
• status – char (l – lab, c – classroom, h – lecture hall)
5) OfferedClass implements IOfferedClass
• room – Classroom
• name – String
6) StudentClass extends OfferedClass
• ArrayList of grades – ArrayList
7) FacultyClass extends OfferedClass
• ArrayList of students – ArrayList
Part 2. Create the following methods for all of the classes
1) toString
2) setters and getters for all variables
Helpful Hints:**
– Create all the interfaces first.
– Create the classes from least specific to most specific.
– Notice that some of the classes contain variables that are other classes. Don’t let this
throw you for a loop. Remember that this is a form of the “has-a” relationship, or what
we call, “composition”.
– We will be using a new java class called “GregorianCalendar” to store dates. Take
some time to look at the documentation for this class.
Ignore logger parts, have a seperate logger program already.
Please add the following to the OfferedClass file, along with a setter and getter for it:
private String classIdNumber;
You will notice in the test class that the class id field you are adding is of type float.
package TestStubs;
import emkramer.baseclasses.Classroom;
import emkramer.baseclasses.Faculty;
import emkramer.baseclasses.FacultyClass;
import emkramer.baseclasses.IPerson;
import emkramer.baseclasses.Person;
import emkramer.baseclasses.Student;
import emkramer.baseclasses.StudentClass;
import emkramer.utilities.Logger;
import java.util.GregorianCalendar;
/**
* @author Elizabeth Kramer
*/
public class TestBaseClassCreation {
public static void main (String[] args) {
Logger.enableLogging();
Logger.setDetailDebug();
// Create a Student
Student newStudent = new Student();
GregorianCalendar dob = new GregorianCalendar(75,7, 3);
newStudent.setDateOfBirth(dob);
newStudent.setName(“Kathy Smith”);
newStudent.setAddress(“1 Beech Ave”);
newStudent.setSSN(“567876567”);
GregorianCalendar dog = new GregorianCalendar(90, 6, 10);
newStudent.setDateOfGraduation(dog);
// Create a StudentClass
StudentClass studentClass = new StudentClass();
studentClass.setClassIdNumber(46.222f);
studentClass.setClassName(“C++ Programming”);
studentClass.setClassroom(new Classroom(“PA100”, ‘l’));
// Add grades to StudentClass
studentClass.getAllGrades().add(90.5f);
studentClass.getAllGrades().add(100f);
studentClass.getAllGrades().add(70.5f);
studentClass.getAllGrades().add(65f);
// Add the StudentClass to the Student
newStudent.getClasses().add(studentClass);
// Print out the data for the new student
Logger.logDebug(newStudent.toString());
// Create a faculty
Faculty faculty = new Faculty();
GregorianCalendar GregorianCalendarOfHire = new GregorianCalendar(85,12, 3);
faculty.setDateOfBirth(GregorianCalendarOfHire);
faculty.setName(“Elizabeth Kramer”);
faculty.setAddress(“1 University Ave”);
faculty.setSSN(“123456789”);
faculty.setStatus(‘f’);
GregorianCalendar GregorianCalendarOfTermination = new GregorianCalendar(30, 6, 10);
faculty.setDateOfHire(GregorianCalendarOfTermination);
// Create a faculty class
FacultyClass fc = new FacultyClass();
fc.setClassIdNumber(90.301f);
fc.setClassName(“Java Programming”);
fc.setClassroom(new Classroom(“FA309”, ‘c’));
// Add students to the class
fc.addStudent(newStudent);
// Add the class to a faculty
faculty.addClass(fc);
// Print out the faculty data
Logger.logDebug(faculty.toString());
}
}