To gain experience with base and derived classes, virtual functions, using applications
of polymorphism, and memory management. Also, to gain practice with file I/O.
Task
You will design a set of classes for storing student information, along with a main
program that will read student information from a file, store the data, compute final
grades, and then print a summary report to an output file.
Details
1. Design a set of classes that store student grade information. All classes and their
implementations will be stored in students.h file. There should be one base class
to store common data, and three derived classes that divide the set of students
into three categories: English students, History students, and Math students.
• All data stored in these classes should be private or protected.
• Any access to class data from outside should encapsulated, and
accessed through public member functions.
• The base class should allocate storage for the following data (and only
this data):
◦ student’s first name (you may assume 20 characters or less)
◦ student’s last name (you may assume 20 characters or less)
◦ which course the student is in (English, History, or Math)