// ****************************************************************** // // Grad
ID: 638679 • Letter: #
Question
// ****************************************************************** // // Grades.cpp // // This program computes student grades. For each student, two // quiz grades (graded on a 10 point basis), one midterm exam grade // and one final exam grade (each on a 100 point basis) are read // in. The final numeric grade is computed weighing the final // exam 50%, the midterm 25%, and the quizzes 25%. The numeric // grade and corresponding letter grade are output. // // ****************************************************************** #include <iostream> using namespace std; // // Structure for a student record // // -------------------------------- // ----- ENTER YOUR CODE HERE ----- // -------------------------------- // -------------------------------- // --------- END USER CODE -------- // -------------------------------- void outputRecord (StudentRecord record) { cout << endl; cout << "Quiz Scores: " << record.quiz1 << " " << record.quiz2 << endl; cout << "Midterm Exam Score: " << record.midtermExam << endl; cout << "Final Exam Score: " << record.finalExam << endl; cout << endl; cout << "Course Average: " << record.courseAverage << endl; cout << "Final Letter Grade: " << record.letterGrade << endl; cout << endl; } void computeAverage (StudentRecord& record) { const double EXAM_WT = 0.5; const double MIDTERM_WT = 0.25; const double QUIZ_WT = 0.25; double quiz1Percent, quiz2Percent; // // Convert the 10 point quizzes to a percent, then find the average // quiz1Percent = 100 * record.quiz1 / 10.0; quiz2Percent = 100 * record.quiz2 / 10.0; double quizAvg = (quiz1Percent + quiz2Percent) / 2; // // Compute the weighted average to get the numeric course grade // record.courseAverage = quizAvg * QUIZ_WT + record.midtermExam * MIDTERM_WT + record.finalExam * EXAM_WT; // // Call the letterGrade function to find the corresponding letter grade record.letterGrade = letterGrade (record.courseAverage); } char letterGrade (double numericGrade) { char letter; if (numericGrade < 60) letter = 'F'; else if (numericGrade < 70) letter = 'D'; else if (numericGrade < 80) letter = 'C'; else if (numericGrade < 90) letter = 'B'; else letter = 'A'; return letter; }
Explanation / Answer
#include <iostream>
#include <math.h>
using namespace std;
//
// Structure for a student record
//
struct StudentRecord
{
double quiz1;
double quiz2;
double midtermExam;
double finalExam;
double courseAverage;
char letterGrade;
};
int main()
{
StudentRecord record;
cout << "Please Enter Your Grades Below" << endl << "Quiz One: ";
cin >> record.quiz1;
cout << "Quiz Two: ";
cin >> record.quiz2;
cout << endl;
cout << "Midterm Exam Score: ";
cin >> record.midtermExam;
cout << endl;
cout << "Final Exam Score: ";
cin >> record.finalExam;
cout << endl;
cout << "Quiz Scores: " << record.quiz1 << " " << record.quiz2 << endl;
cout << "Midterm Exam Score: " << record.midtermExam << endl;
cout << "Final Exam Score: " << record.finalExam << endl;
cout << endl;
cout << "Course Average: " << record.courseAverage << endl;
cout << "Final Letter Grade: " << record.letterGrade << endl;
cout << endl;
}
char letterGrade (double numericGrade)
{
char letter;
if (numericGrade < 60)
letter = 'F';
else if (numericGrade < 70)
letter = 'D';
else if (numericGrade < 80)
letter = 'C';
else if (numericGrade < 90)
letter = 'B';
else
letter = 'A';
return letter;
}
void computeAverage (StudentRecord& record)
{
const double EXAM_WT = 0.5;
const double MIDTERM_WT = 0.25;
const double QUIZ_WT = 0.25;
double quiz1Percent, quiz2Percent;
//
// Convert the 10 point quizzes to a percent, then find the average
//
quiz1Percent = 100 * record.quiz1 / 10.0;
quiz2Percent = 100 * record.quiz2 / 10.0;
double quizAvg = (quiz1Percent + quiz2Percent) / 2;
//
// Compute the weighted average to get the numeric course grade
//
record.courseAverage = quizAvg * QUIZ_WT + record.midtermExam * MIDTERM_WT +
record.finalExam * EXAM_WT;
//
// Call the letterGrade function to find the corresponding letter grade
record.letterGrade = letterGrade (record.courseAverage);
exit(1);
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.