Build a simple registration system. Begin with a class called RegistrationSystem, which has at minimum three data members: the courses, the students, and the faculty. Use whatever containers you like for each, however you will be graded on your choice, based on the suitability of your container for the use each type of data will be put to.
Your system will now realize the full class diagram discussed in class. You will have to now deal with a problem of identity: since e.g. a single student may take multiple courses, and courses have multiple students, it is no longer possible to store the student or the course in the private container members of one class or the other.
Consider the simple example of two courses, A and B, and two students, C and D. Each student is taking each course. Where do you store student C? If you store C in the enrolls member of course A, then how can C also be in course B?
Furthermore, every association between classes has an inverse. For a single course, each element of its enrolled member is a studnet that has a takes member containing the course. This will be very difficult to implement.
You do not, yet, have to worry about persistence in this new scheme, you will enter data as you have before, from the keyboard.
Provide a simple user interface, as before, for entering data about students, courses, and faculty. In addition, once the data is entered, the UI should launch into a simple menu system. The menu will look something like:
1. List all students 2. List all Faculty 3. List all Courses 4. Quit Enter your selection:Each entry in the list of students should contain the student name and the courses they are taking. Each entry in the list of faculty should contain the courses they are teaching. Each entry in the list of courses should contain the faculty member teaching it.
Courses can be listed in any order, but will be retrieved (in future projects) by number. Faculty and student lists should be in alphabetical order by last name and then first name. Students will be retrieved by id number. Course numbers and student id numbers are guaranteed to be unique. Faculty names will also be unique.
Test your class implementations by creating a program called proj4:
Submit a directory containing the following files:
person.h Your Person class student.h Your extended Student class with rationale faculty.h Your Faculty class with rationale course.h Your Course class with rationale regsys.h Your registrationSystem class regsys.C Implementation file for the registrationSystem class main.C Your test program