Reference no: EM132210076
Question :
Write a program that grades three exams. Your program will read in lines of data that contain the following items:
1. Student ID
2. Student name, with the first and last name separated by an underscore, as John_Cole. Store this as a string, not as an array of char.
3. Grades on three tests. As you read each student ID, dynamically allocate a structure that contains student information.
Put the pointer that the new operator returns into an array of fixed size. You can assume that there are no more than 100 students in any class, but the actual number of "Student" structs you allocate is dependent upon how many you read.
So your first step is to read all of the data. While you are doing this, compute the average of the three grades and also store it in the structure. Having read the file and created the array, there are three options on your menu:
1. Print the list of information in order by name
2. Print the list of information in order of average grade, highest grade first.
3. Look up a student by student ID. If the student is found, show all of the information. If not, show a message.
After doing any of the three menu items, return to the menu. Stop when the user enters 0 as his/her choice. Invalid menu choices should show a message, then return to the menu.
Use bubble sort for the sorting. Write this as a single function that can sort by either name or average. Display of the average should show it to two decimal places.
The data file provided is called Asg4Grades.txt. When you open this, just use the file name, no drive letter or subdirectory.
Note that since there are no spaces within the data, you can use cin to read the individual elements
1231 Robert_Smith 91 87 72
1233 Cheryl_Overton 98 91 89
1234 Vishal_Sharda 86 92 93
1239 Ramon_Gonzales 91 82 97
1240 Hong_Chang 92 83 98
1242 Misty_Sellers 81 91 92
1243 Kim_Riley 99 92 93
1246 John_Paulos 81 87 88
1249 Scott_Wingo 100 91 99
1251 Jacob_Needleman 97 83 96
1252 Thomas_Paine 92 100 93
1257 Wendy_Sarrett 81 91 79