#Compute the final grades, class average and class statistics of an entire class over its students
Introduction
The Overall design is meant to gather all information over a course load and it's students involved. We track the A's,B's, C's, D's and overall course GPA. Highest Grade, Mean Grade, and Lowest Grade. Also covered in the background of the algorithm we compute the Zscore and stdDeviation of the course and it's students. We do this in an Object Oriented fashion.
Objects
The objects that were used and considered for use were Students and course. We go over these here.
Student is focused over students information. Class focused on the overall given course.
Student:
- Student ID
- Studnet TA
- Student Unique course number
- Student LetterGrade
- Student Scores_List
- Student Zscore
Class
- Class Number of Events
- Class List of Max Values
- Class List of Weights
- Class Max Grade
- Class Min Grade
- Class Mean Grade
- Class StdDev
- Class Count of Letter Values
- Class Count of Letter Percentages
Details of Functions
We use three main functions to tackle all of the computation and grade distribution.
Grade_Read
- InputStream Reader
- Course Variable referenced
- Students Vector List referenced
Grades_eval
- Course Variable referenced
- Students Vector List referenced
Grades_Print
- OutputStream Writer
- Course Variable referenced
- Students Vector List referenced
Grade_solve
- InputStream Reader
- OutputStream Writer
Details of Algorithm
Grades_Read
Reads line by line and parses the information to it's proper storage container. After doing this, the function returns true to continue we the process, or if there was nothing to be read in, return false to exit
Course
- First Line is number of events
- Second Line is the list of Max Values for each event
- Third Line is the List of Weight for each event
- Nth Line is a student, We go through the each student and store each token of information to the proper student container.
Students
- First Token is Student ID
- Second Token is Unique Number
- Third token is TA assigned to Student
- nth token there after is a students grade for an event.
Grades Eval
Iterates through each of the nessecary container computing the course statistics. We begin by first computing a students total with the equation
total = (score for event i / num of events) x (event weight)
As we find each students total, we track the high and the low grades, letter Grade for the course, and sum up for the mean grade. When finished we find the true mean grade.
Iterate through of the LetterGrades and compute the class GPA.
Standard Deviation for Z-Score
When we find the mean and the total grades for each student, we iterate back through each of the students giving them each their z-Score for the class. But first we needed to find the Standard Deviation.
stdev = sqrt (sum-mation(grade - average)^2)/ n-1 )
Finally After giving each student their zscore, we sort Students, by zscore for a proper print. We included algorithms.h.
Grade Print
Print we use iomanip.h to organize the information being printed out to the computer screen as asked to display.
- Num_events
- Max Values
- Weights
- Statistics
- Students Info
- ID, UNIQUE, TA, SCORES(many), FINAL GRADE, ZSCORE, LETTER GRADE