Write a program that reads students’ names followed by their test scores. The program should output each student’s name followed by the test scores and the relevant grade. It should also find and print the highest test score and the name of the students having the highest test score. Student data should be stored in a struct variable of type studentType, which has four components: studentFName and studentLName of type string, testScore of type int (testScore is between 0 and 100), and grade of type char. Suppose that the class has 20 students. Use an array of 20 components of type studentType. Your program must contain at least the following functions: a: A function to read the students’ data into the array. b: A function to assign the relevant grade to each student. c: A function to find the highest test score. d: A function to print the names of the students having the highest test score. Your program must output each student’s name in this form: last name followed by a comma, followed by a space, followed by the first name; the name must be left justified. Moreover, other than declaring the variables and opening the input and output files, the function main should only be a collection of function calls. Functions.cpp #include  #include  #include  #include    using namespace std; // declare studentType struct // part a inline void getData(ifstream& inFile, studentType sList[], int listSize) {     // function code } // part b inline void calculateGrade(studentType sList[], int listSize) {     // function code } // part c inline int highestScore(const studentType sList[], int listSize) {     // function code } // part d inline void printResult(ofstream& outFile, const studentType sList[], int listSize) {     // function code }   ________________________________________________________________________________ Students Duckey Donald 85 Goof Goofy 89 Brave Balto 93 Snow Smitn 93 Alice Wonderful 89 Samina Akthar 85 Simba Green 95 Donald Egger 90 Brown Deer 86 Johny Jackson 95 Greg Gupta 75 Samuel Happy 80 Danny Arora 80 Sleepy June 70 Amy Cheng 83 Shelly Malik 95 Chelsea Tomek 95 Angela Clodfelter 95 Allison Nields 95 Lance Norman 88   ________________________________________________________________________________ What I have,won't work, and isn't connecting properly to functions.cpp #include  #include  #include  #include  #include  using namespace std; struct studentType  {     string studentFName[20];     string studentLName[20];     string studentData[20][3];     int testscore[20][5];     char grade[20]; }; studentType s; int main()  {     int index;     int maxindex;     int maxindex1;     int coldex;     int coldex1;     int totalscore[20];     double avscore[20];     double highscore;     double highindivscore;     maxindex = 0;     maxindex1 = 0;     coldex1 = 0;     ifstream infile;     infile.open("test.txt");         for(index = 0; index < 20; index++)     {         infile >> s.studentFName[index] >> s.studentLName[index] >> s.testscore[index][0] >> s.testscore[index][1] >> s.testscore[index][2] >> s.testscore[index][3] >> s.testscore[index][4];         totalscore[index] = ((s.testscore[index][0]) + (s.testscore[index][1]) + (s.testscore[index][2]) + (s.testscore[index][3]) + (s.testscore[index][4]));         avscore[index] = (static_cast(totalscore[index])/5);         if(avscore[index]<= 100)         {             s.grade[index] = 'A';         }         if(avscore[index]<= 89.9)         {             s.grade[index] = 'B';         }         if(avscore[index]<= 79.9)         {             s.grade[index] = 'C';         }         if(avscore[index] <= 69.9)         {             s.grade[index] = 'D';         }         if(avscore[index] <= 59.9)         {             s.grade[index] = 'F';         }     }     for (index = 0; index < 20; index++)     {         cout << s.studentLName[index] << "," << " " << s.studentFName[index] << " " << s.testscore[index][0] << " " << s.testscore[index][1] << " " << s.testscore[index][2] << " " << s.testscore[index][3] << " " << s.testscore[index][4] << " " << s.grade[index] << endl;     }     cout << endl;     for (index = 1; index < 20; index++)         for (coldex = 0; coldex < 5; coldex++)         {             if (s.testscore[maxindex1][coldex1] < s.testscore[index][coldex])             {                 maxindex1 = index;                 coldex1 = coldex;             }         }     highindivscore = s.testscore[maxindex1][coldex1];     for (index = 1; index < 20; index++)     {         if (avscore[maxindex] < avscore[index])         {             maxindex = index;         }     }     highscore = avscore[maxindex];     cout << s.studentFName[maxindex] << " " << s.studentLName[maxindex] << " Achieved The Highest Average Test Score Of A: " <

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...
icon
Related questions
Question
100%

Write a program that reads students’ names followed by their test scores. The program should output each student’s name followed by the test scores and the relevant grade. It should also find and print the highest test score and the name of the students having the highest test score.

Student data should be stored in a struct variable of type studentType, which has four components: studentFName and studentLName of type string, testScore of type int (testScore is between 0 and 100), and grade of type char. Suppose that the class has 20 students. Use an array of 20 components of type studentType.

Your program must contain at least the following functions:

  • a: A function to read the students’ data into the array.
  • b: A function to assign the relevant grade to each student.
  • c: A function to find the highest test score.
  • d: A function to print the names of the students having the highest test score.

Your program must output each student’s name in this form: last name followed by a comma, followed by a space, followed by the first name; the name must be left justified. Moreover, other than declaring the variables and opening the input and output files, the function main should only be a collection of function calls.

Functions.cpp

#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
 
using namespace std;

// declare studentType struct

// part a
inline void getData(ifstream& inFile, studentType sList[], int listSize)
{
    // function code
}

// part b
inline void calculateGrade(studentType sList[], int listSize)
{
    // function code
}

// part c
inline int highestScore(const studentType sList[], int listSize)
{
    // function code
}

// part d
inline void printResult(ofstream& outFile, const studentType sList[], int listSize)
{
    // function code
}
 
________________________________________________________________________________
Students
Duckey Donald 85
Goof Goofy 89
Brave Balto 93
Snow Smitn 93
Alice Wonderful 89
Samina Akthar 85
Simba Green 95
Donald Egger 90
Brown Deer 86
Johny Jackson 95
Greg Gupta 75
Samuel Happy 80
Danny Arora 80
Sleepy June 70
Amy Cheng 83
Shelly Malik 95
Chelsea Tomek 95
Angela Clodfelter 95
Allison Nields 95
Lance Norman 88
 
________________________________________________________________________________
What I have,won't work, and isn't connecting properly to functions.cpp
#include<iostream> 
#include<iomanip> 
#include<string> 
#include<fstream> 
#include <functions.cpp>
using namespace std;


struct studentType 
{
    string studentFName[20];
    string studentLName[20];
    string studentData[20][3];
    int testscore[20][5];
    char grade[20];
};
studentType s;


int main() 
{
    int index;
    int maxindex;
    int maxindex1;
    int coldex;
    int coldex1;
    int totalscore[20];
    double avscore[20];
    double highscore;
    double highindivscore;

    maxindex = 0;
    maxindex1 = 0;
    coldex1 = 0;

    ifstream infile;

    infile.open("test.txt");    


    for(index = 0; index < 20; index++)
    {
        infile >> s.studentFName[index] >> s.studentLName[index] >> s.testscore[index][0] >> s.testscore[index][1] >> s.testscore[index][2] >> s.testscore[index][3] >> s.testscore[index][4];
        totalscore[index] = ((s.testscore[index][0]) + (s.testscore[index][1]) + (s.testscore[index][2]) + (s.testscore[index][3]) + (s.testscore[index][4]));
        avscore[index] = (static_cast<double>(totalscore[index])/5);


        if(avscore[index]<= 100)
        {
            s.grade[index] = 'A';
        }
        if(avscore[index]<= 89.9)
        {
            s.grade[index] = 'B';
        }
        if(avscore[index]<= 79.9)
        {
            s.grade[index] = 'C';
        }
        if(avscore[index] <= 69.9)
        {
            s.grade[index] = 'D';
        }
        if(avscore[index] <= 59.9)
        {
            s.grade[index] = 'F';
        }
    }
    for (index = 0; index < 20; index++)
    {
        cout << s.studentLName[index] << "," << " " << s.studentFName[index] << " " << s.testscore[index][0] << " " << s.testscore[index][1] << " " << s.testscore[index][2] << " " << s.testscore[index][3] << " " << s.testscore[index][4] << " " << s.grade[index] << endl;
    }
    cout << endl;

    for (index = 1; index < 20; index++)
        for (coldex = 0; coldex < 5; coldex++)
        {
            if (s.testscore[maxindex1][coldex1] < s.testscore[index][coldex])
            {
                maxindex1 = index;
                coldex1 = coldex;
            }
        }
    highindivscore = s.testscore[maxindex1][coldex1];

    for (index = 1; index < 20; index++)
    {
        if (avscore[maxindex] < avscore[index])
        {
            maxindex = index;
        }
    }
    highscore = avscore[maxindex];


    cout << s.studentFName[maxindex] << " " << s.studentLName[maxindex] << " Achieved The Highest Average Test Score Of A: " <<highscore <<endl;
    cout << s.studentFName[maxindex1] << " " << s.studentLName[maxindex1] << " " << s.testscore[maxindex1][coldex1] << endl;
    infile.close();

    system("pause");
    return 0;
}
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
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 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)
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
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY