Write a program to calculate students' average test scores and their grades. You may assume the following input data:
Johnson 85 83 77 91 76
Aniston 80 90 95 93 48
Cooper 78 81 11 90 73
Gupta 92 83 96 38 59
Blair 23 45 96 38 59
Clark 60 85 45 39 67
Kennedy 77 31 52 74 83
Bronson 93 94 89 77 97
Sunny 79 85 28 93 82
Smith 85 72 49 75 63
Use four arrays: a one-dimensional array to store the students' names, a (parallel) two-dimensional array to store the
#include <iostream>
#include <string>
using namespace std;
const int N_TESTS=5;
const int N_STUDENTS=10;
void CalcAverageScore(int scores[N_STUDENTS][N_TESTS], int averages[N_STUDENTS])
{
for (int i=0; i<N_STUDENTS; i++) {
int sum = 0;
for (int j=0; j<N_TESTS; j++) {
sum += scores[i][j];
}
averages[i] = sum / N_TESTS;
}
}
void SetGrades(int averages[N_STUDENTS], char grades[N_STUDENTS])
{
for (int i=0; i<N_STUDENTS; i++) {
if (averages[i] >= 80)
grades[i] = 'A';
else if (averages[i] >= 65)
grades[i] = 'B';
else if (averages[i] >= 55)
grades[i] = 'C';
else if (averages[i] >= 50)
grades[i] = 'D';
else
grades[i] = 'F';
}
}
void PrintTestResults(string names[N_STUDENTS], int scores[N_STUDENTS][N_TESTS],
int averages[N_STUDENTS], char grades[N_STUDENTS])
{
cout << "Names" << " Test results "
<< " Avrg " << "Grade" << endl;
for (int i=0; i<N_STUDENTS; i++) {
cout << names[i] << "\t ";
for (int j=0; j<N_TESTS; j++) {
cout << scores[j][i] << " ";
}
cout << " : " << averages[i] << " ";
cout << " " << grades[i] << endl;
}
}
int main() {
string names[N_STUDENTS] = {"Johnson", "Aniston", "Cooper", "Gupta", "Blair",
"Clark", "Kennedy", "Bronson", "Sunny", "Smith"};
int scores[N_STUDENTS][N_TESTS] = {{85, 83, 77, 91, 76},
{80, 90, 95, 93, 48},
{78, 81, 11, 90, 73},
{92, 83, 96, 38, 59},
{23, 45, 96, 38, 59},
{60, 85, 45, 39, 67},
{77, 31, 52, 74, 83},
{93, 94, 89, 77, 97},
{79, 85, 28, 93, 82},
{85, 72, 49, 75, 63}};
int averages[N_STUDENTS];
char grades[N_STUDENTS];
CalcAverageScore(scores, averages);
SetGrades(averages, grades);
PrintTestResults(names, scores, averages, grades);
return 0;
}
Comments
Leave a comment