Implementation Notes on Project 1: 1) Student File layout. The file is a text file. Each single line is a record to be added to the database. Fields are separated by commas (CSV format), and each line ends with a newline. 2) String processing: You should be familiar with the functions in the standard C library, "string.h" - in particular, you will find it useful to review the token extraction function, strtok. For consistency, however,you should use the operators in the String class. 3) Sorting: You may write a specialized sort for the database class, if you wish; the preferred approach is to use qsort, found in the header file "stdlib.h" (you should become as familiar as you can with the functionality in the C and C++ standard libraries, as they greatly reduce the work you need to do). To do this, you will have to provide a comparison function; this "comparator" takes only 2 parameters, pointers to the records being sorted. You will need to write a function of (at least) 3 parameters to compare Student records, the 2 records being compared, and the field on which the comparison is based. It will also be necessary to figure out the type of field being compared; perhaps you will write a number of overloaded comparison functions. 4) note these corrections to the class templates: a) the database class has 1 more public method : void insert(const Comparable & obj); b) the student class has incorrectly included the function "friend ostream operator<<(const ostream& o, const Student& s); THIS SHOULD BE A NON-FRIEND, NONMEMBER function, i.e. after the class declaration }; ostream & operator<<(const ostream& o, const Student& s) ; 5) When counting numbers for purpose of identifying fields, the first field (name) is field # 1 (not field # 0) 6) There are 2 test files (Test1.txt, Test2.txt) in the directory /afs/umbc.edu/users/e/d/edelman/pub/CMSC341/Projects/Project1 for your use 7) *IMPORTANT* Note that all unix shells interpret "<" and ">" on the command line as redirectors ("<" as input redirector, and ">" as output redirector). So, there is no way to have an unquoted < or > in your command line; HOWEVER, the project specification wants you to be able to get one. Therefore, when you test your program, surround strings containing < or > with quotes: for example: proj1 select 1 "<" Jones file.txt Note also that the shell very considerately will strip off the string delimiters (the quotes) for you,so you do not need to look for them in reading the command line. Isn't that wonderful? 8) For date comparison: some of you may have written comparison functions to deal with dates; if you have done so, then continue to use those functions. If you have not yet written a date comarison function then it will do for this project simply to compare dates as strings.