Part 1
Create a new class, Faculty, which is also a subclass of Person. Instances of this class have one additional private data member, teaches. The teaches member is a collection of all the Courses (see below) the faculty member teaches.
Part 2
Create a new class, Course. Instances of this class have three data members, name, enrolled, and taught-by. The name member is a string. The enrolled member is a collection of all the Students enrolled in the course. The taught-by member is the (single) Faculty member who teaches the course.
Part 3
You will need to create the standard four I/O methods for the Faculty and Course classes, as you created for Person and Student. Note, however, that the implementation is not trivial, and is order dependent. Think carefully about how to implement each of them. Note that the Student input method will probably have to change. Include in your header files for each class your rationale for the implementation you chose. The rationale should include documentation of the file format you chose.
Test your class implementations by creating a program called proj3:
proj3 -io filenameAs before, the first argument will be a flag indicating whether to read input from the keyboard (-i), or display output to the screen (-o). What to input or display is something you must think about carefully.
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 main.C Your test program data.txt Some test data you create