Answered step by step
Verified Expert Solution
Question
1 Approved Answer
CODE SHOULD BE WRITTEN IN C++ WITH COMMENTS SO BEGINNERS CAN UNDERSTAND. Program meets specifications and works correctly 50% Program is structured well and uses
CODE SHOULD BE WRITTEN IN C++ WITH COMMENTS SO BEGINNERS CAN UNDERSTAND.
Program meets specifications and works correctly | 50% |
Program is structured well and uses structs and dynamic allocation | 40% |
Program comments and variable names | 10% |
Further grading rubric:
Using two separate sorting functions: -20
Using an array of structs rather than an array of pointers to structs: -20
The file name is hard-coded to a specific directory and drive: -25
Sorting doesnt work: -15
Averages computed incorrectly: -10
Asg4DataGrades.txt -
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 1262 Izu_Elechi 67 84 99 1212 John_Cole 100 100 100 1213 Poor_Student 49 50 51 1314 Jane_Austen 88 79 92 1315 Isaac_Asimov 92 99 100Write a program that grades three exams for a class. Your program will read in lines of data that contain the following items: 1. Student ID (an integer) 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. These are integers. The program should ask the user for the file name and loop until it gets a valid name. As you read each student D, 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. You do not need to check whether there are more than 100 students. Assume that the teacher was careful and there is no bad data in the file. Having read the file and created the array, display a menu containing three options: 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. Request a student ID and search the list. If the student is found, show all of the information for that one student. If not, show a message. Printing should show the student D, the name, the three test scores, and the average, displaying two decimal places, right-justified in a field seven characters wide. Display the name and scores in columns of appropriate width so that everything lines up neatly. After running 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. You can have a parameter to the function indicating which field is to be used for sorting. Do not have two separate sorts within one function. 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 stream extraction to read the individual elements
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started