In Programming Exercise 13 (Chapter 8), you are asked to write a program to calculate students’ average test scores and their grades. Improve this programming exercise by adding a function to sort students’ names so that students’ data is output into ascending order according to their name. The code is below, is there a way to implement a sort function perhaps? Right now it just outputs as shown in the picture attached. #include #include #include #include using namespace std; void getData(ifstream& inf, string n[], double tstData[][6], int count); void calculateAverage(double tstData[][6], int count); void calculateGrade(double tstData[][6], char gr[], int count); void print(string n[], double tstData[][6], char gr[], int count); int main() { string names[10]; double testData[10][6]; char grade[10]; ifstream inFile; inFile.open("data.txt"); if (!inFile) { cout << "Cannot open the input file: ch8_Ex13Data.txt." << endl; cout << "Program terminates!" << endl; return 1; } cout << fixed << showpoint << setprecision(2); getData(inFile, names, testData, 10); calculateAverage(testData, 10); calculateGrade(testData, grade, 10); print(names, testData, grade, 10); inFile.close(); return 0; } void getData(ifstream& inf, string n[], double tstData[][6], int count) { for (int i = 0; i < count; i++) { inf >> n[i]; for (int j = 0; j < 5; j++) inf >> tstData[i][j]; tstData[i][5] = 0.0; } } void calculateAverage(double tstData[][6], int count) { double sum; for (int i = 0; i < count; i++) { sum = 0.0; for (int j = 0; j < 5; j++) sum = sum + tstData[i][j]; tstData[i][5] = sum / 5; } } void calculateGrade(double tstData[][6], char gr[], int count) { for (int i = 0; i < count; i++) if (tstData[i][5] >= 90) gr[i] = 'A'; else if (tstData[i][5] >= 80) gr[i] = 'B'; else if (tstData[i][5] >= 70) gr[i] = 'C'; else if (tstData[i][5] >= 60) gr[i] = 'D'; else gr[i] = 'F'; } void print(string n[], double tstData[][6], char gr[], int count) { double sum = 0.0; cout << left << setw(10) << "Name" << right << setw(8) << "Test 1" << setw(8) << "Test 2" << setw(8) << "Test 3" << setw(8) << "Test 4" << setw(8) << "Test 5" << setw(10) << "Average" << setw(8) << "Grade" << endl; for (int i = 0; i < count; i++) { cout << left << setw(10) << n[i]; cout << right; for (int j = 0; j < 5; j++) cout << setw(8) << tstData[i][j]; cout << setw(10) << tstData[i][5] << setw(6) << gr[i] << endl; sum = sum + tstData[i][5]; } cout << endl << endl; cout << "Class average: " << sum / count << endl;
In Programming Exercise 13 (Chapter 8), you are asked to write a program to calculate students’ average test scores and their grades. Improve this programming exercise by adding a function to sort students’ names so that students’ data is output into ascending order according to their name. The code is below, is there a way to implement a sort function perhaps? Right now it just outputs as shown in the picture attached. #include #include #include #include using namespace std; void getData(ifstream& inf, string n[], double tstData[][6], int count); void calculateAverage(double tstData[][6], int count); void calculateGrade(double tstData[][6], char gr[], int count); void print(string n[], double tstData[][6], char gr[], int count); int main() { string names[10]; double testData[10][6]; char grade[10]; ifstream inFile; inFile.open("data.txt"); if (!inFile) { cout << "Cannot open the input file: ch8_Ex13Data.txt." << endl; cout << "Program terminates!" << endl; return 1; } cout << fixed << showpoint << setprecision(2); getData(inFile, names, testData, 10); calculateAverage(testData, 10); calculateGrade(testData, grade, 10); print(names, testData, grade, 10); inFile.close(); return 0; } void getData(ifstream& inf, string n[], double tstData[][6], int count) { for (int i = 0; i < count; i++) { inf >> n[i]; for (int j = 0; j < 5; j++) inf >> tstData[i][j]; tstData[i][5] = 0.0; } } void calculateAverage(double tstData[][6], int count) { double sum; for (int i = 0; i < count; i++) { sum = 0.0; for (int j = 0; j < 5; j++) sum = sum + tstData[i][j]; tstData[i][5] = sum / 5; } } void calculateGrade(double tstData[][6], char gr[], int count) { for (int i = 0; i < count; i++) if (tstData[i][5] >= 90) gr[i] = 'A'; else if (tstData[i][5] >= 80) gr[i] = 'B'; else if (tstData[i][5] >= 70) gr[i] = 'C'; else if (tstData[i][5] >= 60) gr[i] = 'D'; else gr[i] = 'F'; } void print(string n[], double tstData[][6], char gr[], int count) { double sum = 0.0; cout << left << setw(10) << "Name" << right << setw(8) << "Test 1" << setw(8) << "Test 2" << setw(8) << "Test 3" << setw(8) << "Test 4" << setw(8) << "Test 5" << setw(10) << "Average" << setw(8) << "Grade" << endl; for (int i = 0; i < count; i++) { cout << left << setw(10) << n[i]; cout << right; for (int j = 0; j < 5; j++) cout << setw(8) << tstData[i][j]; cout << setw(10) << tstData[i][5] << setw(6) << gr[i] << endl; sum = sum + tstData[i][5]; } cout << endl << endl; cout << "Class average: " << sum / count << endl;
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
Related questions
Question
In Programming Exercise 13 (Chapter 8), you are asked to write a program to calculate students’ average test scores and their grades. Improve this programming exercise by adding a function to sort students’ names so that students’ data is output into ascending order according to their name.
The code is below, is there a way to implement a sort function perhaps? Right now it just outputs as shown in the picture attached.
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
void getData(ifstream& inf, string n[], double tstData[][6], int count);
void calculateAverage(double tstData[][6], int count);
void calculateGrade(double tstData[][6], char gr[], int count);
void print(string n[], double tstData[][6], char gr[], int count);
int main()
{
string names[10];
double testData[10][6];
char grade[10];
ifstream inFile;
inFile.open("data.txt");
if (!inFile)
{
cout << "Cannot open the input file: ch8_Ex13Data.txt." << endl;
cout << "Program terminates!" << endl;
return 1;
}
cout << fixed << showpoint << setprecision(2);
getData(inFile, names, testData, 10);
calculateAverage(testData, 10);
calculateGrade(testData, grade, 10);
print(names, testData, grade, 10);
inFile.close();
return 0;
}
void getData(ifstream& inf, string n[], double tstData[][6], int count)
{
for (int i = 0; i < count; i++)
{
inf >> n[i];
for (int j = 0; j < 5; j++)
inf >> tstData[i][j];
tstData[i][5] = 0.0;
}
}
void calculateAverage(double tstData[][6], int count)
{
double sum;
for (int i = 0; i < count; i++)
{
sum = 0.0;
for (int j = 0; j < 5; j++)
sum = sum + tstData[i][j];
tstData[i][5] = sum / 5;
}
}
void calculateGrade(double tstData[][6], char gr[], int count)
{
for (int i = 0; i < count; i++)
if (tstData[i][5] >= 90)
gr[i] = 'A';
else if (tstData[i][5] >= 80)
gr[i] = 'B';
else if (tstData[i][5] >= 70)
gr[i] = 'C';
else if (tstData[i][5] >= 60)
gr[i] = 'D';
else
gr[i] = 'F';
}
void print(string n[], double tstData[][6], char gr[], int count)
{
double sum = 0.0;
cout << left << setw(10) << "Name"
<< right << setw(8) << "Test 1"
<< setw(8) << "Test 2"
<< setw(8) << "Test 3"
<< setw(8) << "Test 4"
<< setw(8) << "Test 5"
<< setw(10) << "Average"
<< setw(8) << "Grade" << endl;
for (int i = 0; i < count; i++)
{
cout << left << setw(10) << n[i];
cout << right;
for (int j = 0; j < 5; j++)
cout << setw(8) << tstData[i][j];
cout << setw(10) << tstData[i][5]
<< setw(6) << gr[i] << endl;
sum = sum + tstData[i][5];
}
cout << endl << endl;
cout << "Class average: " << sum / count << endl;
}
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 3 images
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY