SchoolDirectory implements a directory of students, faculty, and staff, illustrating inheritance, polymorphism, operator<< overloading, and virtual functions in C++. Four types of directory entries are possible, each with its own class Entry base class with header file (Entry.h), implementation filem (Entry.cpp) Student derived class: Student.h and Student.cpp Faculty derived class: Faculty.h and Faculty.cpp Staff derived class: Staff.h and Staff.cpp Running the application 1. Download the compressed file directory.tgz 2. In a terminal window move to the directory containing the compressed file and enter the command tar -xzvf directory.tgz 3. In the newly created "directory" type make 4. The SchoolDirectory program can be run with the command ./SchoolDirectory Unit Testing The implementation file of each entry class/subclass contains a main procedure for unit testing. However, since a compiled program can only contain one active main procedure, and the entire SchoolDirectory application has its own main procedure, the main procedures are commented out in Entry.cpp, Student.cpp, Faculty.cpp, and Staff.cpp. To run unit testing for the Entry Class: 1. Edit Entry.cpp, so the main procedure is no longer commented out 2. In a terminal window, compile with the command g++ -o Entry Entry.cpp 3. Run the tests with the command ./Entry 4. When unit testing of Entry is complete, restore the commenting for the main procedure To run unit testing for subclasses Student, Faculty, or Staff 1. Uncomment the main procedure in the desired subclass (e.g., Student.cpp) 2. In a terminal window, compile Entry.cpp to yield an object file Entry.o with the command g++ -c Entry.cpp 3. Compile the desired subclass (e.g., student.cpp) with the command g++ -o Student Student.cpp Entry.o 3. Run the tests with the command ./Student 4. When unit testing of Student is complete, restore the commenting for main