Please help with C++ , thank you in advance!
1.The system must be able to managemultiple students (max of 5) and their grades for assignments from three different assignment groups: homework (total of 5), quizzes (total of 4), and exams (total of 2).
2.For each student record, the user should be able to change the grade for any assignment. These grades should be accessible to the gradebook for calculations, but not visible or directly mutable outside of the student record.
3.The gradebook should know the name of the course. It should also know the weights of each assignment group (which should add up to 1.0 when changed) and be able to print a report to the screen. This report should contain the course name and a well-formatted table containing columns for the student names, and for each assignment group. The group weights should be displayed (as a percentage) next to the name of each assignment group in the tables header. It should be possible to add and remove students from the gradebook. Removals from the gradebook should shift each successive student up in the list. For example, if student 3 is removed from the gradebook, the remaining students starting with student 4 should be moved up a slot (i.e. student 4 to student 3s old slot, student 5 to student 4s old slot, etc.)
4.A user interface should be created with a menu system used to navigate the functionality necessary to complete the stated requirements. It is recommended to use a simple numbering scheme when prompting the user for their desired action. See the end of this project sheet for a reference you should use for the menus.
5.All names (student names, gradebook name) should be set to prior to being set by the user. This could also be used in logic to determine whethera student entry in the gradebook is valid. Empty student slots should not be displayed in menus that require the user to identify a student record to modify. 6.The gradebook should be ableto calculate class averages from the student recordsandperform what-iftool. The averages are the sum of the valid grades divided by the total number of valid grades for that group (i.e. ungraded assignments are not part of the total number of valid grades). a.For what-iftool, the gradebook should be ablecalculate a students total final grade by entering a hypothetical grade for any assignments. After entering the hypothetical grade, the program should displaythatstudents name, grades for all assignments, and final grade.
b.Since each student record could contain a different number of grades for each category, the class average should be computed as the average of each students average for each assignment group as well as their final grade. For example, if one student if missing a single homework grade (note, not a zero), then their homework average should be comprised of 4 grades instead of 5.
c.When computing the class average homework grade, use each students average homework grade for the running total, then use that total to computethe average. Use the same method for the other categories. d.When computing the average final grade, dont forget to use the group weights. e.Determine final letter grade.
sample output:
-=| MAIN MENU |=- 1. Add a student 2. Remove a student 3. Change a student's grade 4. Change group weights 5. Change the gradebook name 6. What if tool 7. Display class averages 8. Display full report 0. QUIT Enter an action: 1 -=| ADDING STUDENT |=- Please enter the student's name: Name Here Name Here was successfully added to the gradebook! -=[ ADDING STUDENT |=- students cannot be added because the gradebook is full! |=- -=| REMOVING STUDENT 1. John Doe 2. Jane Doe 3. Third Person Enter student to remove: 1 "John Doe" has been successfully removed! (New class size: 2) -=| REMOVING STUDENT |=- Cannot remove students because the gradebook is empty! -=| CHANGING GRADE |=- 1. change a homework grade 2. change a quiz grade 3. change an exam grade what type of grade would you like to change: 2 1. John Doe 2. Jane Doe 3. Third Person which student's grade would you like to change? 3 |=- -= CHANGING Third Person's QUIZ GRADE 1. 68 2.
3. 97 4. 5. which quiz grade would you like to change: 2 what would you like to change it to (-1 for ungraded): 89 Third Person's quiz grade 2 was changed from to 89! -=| CHANGING WEIGHTS |=- Enter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0): 0.15 0.25 0.7 Weights do not add up to 1.0, try again... Enter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0): 0.15 0.25 0.6 Weights updated successfully! -=| CHANGING NAME T=- Please enter the new name for the gradebook: COP3014 Gradebook name changed from "" to "COP3014" -=| CLASS AVERAGES |=- Homework average of class: 85.13% Quiz average of class: 81.57% Exam average of class: 77.40% Final average of class: 79.60% -=| WHAT-IF TOOL |=- 1. Choose a homework grade 2. Choose a quiz grade 3. Choose an exam grade what type of grade would you like to choose: 2 1. John Doe 2. Jane Doe 3. Third Person Enter student to perform what-if: 1 -=| Third Person's HYPOTHETICAL QUIZ GRADE T=- 1. 68 2. 79 3. 97 4. 5. Which quiz grade would you like to change: 4 what would you like to change it to (-1 for ungraded): 89 Student Third Person Homework (15%) | Quizzes (25%) | Exams (60%) | HW Avg 83 UG 85 UG UG | 68 79 97 89 UG 90 | 84.00 Quiz Avg | Exam Avg | Final Grade | | 83.25 | 90.00 | 87.41 (8) | NOTE: Before what-if Student Homework (15%) | Quizzes (25%) Exams (60%) | HW Avg Third Person 83 UG 85 UG UG | 68 79 97 UG UG 90 | 84.00 Quiz Avg | Exam Avg | Final Grade | | 81.33 | 90.00 86.93 (B) | -=| MAIN MENU |=- 1. Add a student 2. Remove a student 3. Change a student's grade 4. Change group weights 5. Change the gradebook name 6. What if tool 7. Display class averages 8. Display full report 0. QUIT Enter an action: 1 -=| ADDING STUDENT |=- Please enter the student's name: Name Here Name Here was successfully added to the gradebook! -=[ ADDING STUDENT |=- students cannot be added because the gradebook is full! |=- -=| REMOVING STUDENT 1. John Doe 2. Jane Doe 3. Third Person Enter student to remove: 1 "John Doe" has been successfully removed! (New class size: 2) -=| REMOVING STUDENT |=- Cannot remove students because the gradebook is empty! -=| CHANGING GRADE |=- 1. change a homework grade 2. change a quiz grade 3. change an exam grade what type of grade would you like to change: 2 1. John Doe 2. Jane Doe 3. Third Person which student's grade would you like to change? 3 |=- -= CHANGING Third Person's QUIZ GRADE 1. 68 2. 3. 97 4. 5. which quiz grade would you like to change: 2 what would you like to change it to (-1 for ungraded): 89 Third Person's quiz grade 2 was changed from to 89! -=| CHANGING WEIGHTS |=- Enter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0): 0.15 0.25 0.7 Weights do not add up to 1.0, try again... Enter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0): 0.15 0.25 0.6 Weights updated successfully! -=| CHANGING NAME T=- Please enter the new name for the gradebook: COP3014 Gradebook name changed from "" to "COP3014" -=| CLASS AVERAGES |=- Homework average of class: 85.13% Quiz average of class: 81.57% Exam average of class: 77.40% Final average of class: 79.60% -=| WHAT-IF TOOL |=- 1. Choose a homework grade 2. Choose a quiz grade 3. Choose an exam grade what type of grade would you like to choose: 2 1. John Doe 2. Jane Doe 3. Third Person Enter student to perform what-if: 1 -=| Third Person's HYPOTHETICAL QUIZ GRADE T=- 1. 68 2. 79 3. 97 4. 5. Which quiz grade would you like to change: 4 what would you like to change it to (-1 for ungraded): 89 Student Third Person Homework (15%) | Quizzes (25%) | Exams (60%) | HW Avg 83 UG 85 UG UG | 68 79 97 89 UG 90 | 84.00 Quiz Avg | Exam Avg | Final Grade | | 83.25 | 90.00 | 87.41 (8) | NOTE: Before what-if Student Homework (15%) | Quizzes (25%) Exams (60%) | HW Avg Third Person 83 UG 85 UG UG | 68 79 97 UG UG 90 | 84.00 Quiz Avg | Exam Avg | Final Grade | | 81.33 | 90.00 86.93 (B) |