Reference no: EM132192987
Write an application in java that models courses, students, and faculty members in a university.
General Directions
Use proper Java naming conventions.
All input and output in this lab must use JOptionPane (except where otherwise noted).
each class you create will have private instance variables and any necessary getters and setters.
Be sure to implement toString() for each class.
Think carefully about how to organize the input/output for this lab *before* you begin coding.
1)The Address Class
An address has a street number, street name, city, state or province, and country.
2)The Person Class
A Person has a name and an Address (represented by an object of class Address, not a String). Note that the subclasses of Person inherit the fields and methods of Person. You may need to override some of the methods in the subclasses.
3)The Student Class
Student is a subclass of Person. In addition to the data inherited from Person, a student has CIN and a course schedule represented by an ArrayList of Courses (objects of class Course). You must provide ways for a Student to add and drop an existing Course.
4)The FacultyMember Class
FacultyMember is also subclass of Person. A FacultyMember has an employee id number and a teaching schedule, which is an ArrayList of Courses.
Provide a way to assign a FacultyMember to teach an existing Course and for a Faculty member to find a class in the list and drop it.
5)The Course Class
A course has a course identifier (eg, EE-132) and a number of units (int).
6)Driver Class
Write a Driver class that maintains lists of Students, Courses, and FacultyMembers and has a menu that provides ways to list them and to create them and add them to the list.
Provide ways to delete Students and FacultyMembers and for Students and FacultyMembers to add and delete Courses from their course schedules. However, you do not need to provide a way to delete a Course from the list of Courses.
Include a method that can be called from main that will use your methods to add and delete some hard-coded test data (several students, several faculty members, and several courses.)
This will let you code the lists and test the methods to add and delete items without using the user input functions.
Do not create a new Course when a Student adds or when a faculty member is assigned to teach; let the user choose a Course from the list.