1. The main program must be in a file called A4.cpp
2. The data must be read in from a data file. The user must enter the filename. A sample data file will be provided on Moodle. Sample output must be provided using this file.
3. The program must be able to handle a variable number of records. However, the number of records should not exceed 200. If the number of records exceed this, the program must display a single error message and ignore the rest of the records.
4. All data from the file must be stored in arrays. The assignment data must be stored in a multi-dimensional array.
5. The program must validate all data and generate error messages if the record is malformed or data is not within specification. The error message should indicate which record is malformed (i.e. the line number) and what is wrong with the record. The program will then continue to process the rest of the file ignoring the bad record.
6. Your code should be modular, using a variety of functions. At least one function must return a value, another must modify data in arrays and another must be a void function. Your code will contain far more then these three, however, these three types must exist.
7. The program will sort the data by student ID. You can use an insertion or selection sort.
8. The source code used to sort the data must be stored in files sort.cpp and sort.h
9. Calculate the average assignment grade, numeric course grade and letter grade. These values are to be stored in arrays. The letter grade is to be an array of enum values.
10. The program will output the sorted data in a tabular format in the following order :
1. Student ID
2. Student's name (Given and family name)
3. Midterm
4. Average assignment grade
5. Final exam
6. Numeric course grade (2 decimal places)
7. Letter grade
The last row of the table should contain the average values for the midterm, assignments, final exam and numeric course grade.
11. After displaying the table the user should be prompted to enter a student ID. If the ID is valid, display all the information (data from the file and calculated values) about the student. Use a binary search to locate the student's information. If the record is not found, display an error message. Allow the user to continue to lookup most students until they choose to exit.
12. The source code used to search the data must be stored in files search.cpp and search.h