Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please create separate header files for class declarations and also separate cpp files for class definition, programming language is C++ You are to implement a

Please create separate header files for class declarations and also separate cpp files for class definition, programming language is C++

You are to implement a program for creating a single course gradebook. For this project, you will need to utilize the concepts of classes and top-down design that has been discussed in class. The list of requirements and constraints for the system are as follows:

1. The system must be able to manage multiple students (max of 15) and their grades for assignments from three different assignment groups: homework (total of 5), quizzes (total of 5), and exams (total of 3).

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 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, and the maximum number of students supported is 15. Removals from the gradebook should shift each successive student up in the list. For example, if student 5 is removed from the gradebook, the remaining students starting with student 6 should be moved up a slot (i.e. student 6 to student 5s old slot, student 7 to student 6s 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 may 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 whether or not a 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 able to calculate class averages from the student records. 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). 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. When computing the average final grade, dont forget to use the group weights.

Sample UI -=| MAIN MENU |=-

1. Add a student

2. Remove a student

3. Change a students grade

4. Change group weights

5. Change the gradebook name

6. Display class averages

7. Display full report

0. QUIT

Enter an action: 1

-=| ADDING STUDENT |=-

Please enter the students 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 students grade would you like to change? 3

-=| CHANGING Third Persons 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 Persons 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 |=-

Please enter the new name for the gradebook: JJST1450

Gradebook name changed from to JJST1450

-=| 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%

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Development Of Knowledge Framework For Affective Content Analysis

Authors: Swarnangini Sinha

1st Edition

B0CQJ13WZ1, 979-8223977490

More Books

Students also viewed these Databases questions

Question

Describe the seven standard parts of a letter.

Answered: 1 week ago

Question

Explain how to develop effective Internet-based messages.

Answered: 1 week ago

Question

Identify the advantages and disadvantages of written messages.

Answered: 1 week ago