Try this code. Note: I assumed that your file looks like this:
Amy 100 100 90 95 85 100 90 100 100 98 75
Bob 90 92 82 95 89 93 95 97 96 98 92
Nina 100 90 95 85 100 65 75 95 100 90 60
Eva 98 90 95 85 100 90 90 95 100 90 82
Matt 100 100 90 95 85 75 85 90 95 100 78
Shiva 90 90 95 100 75 100 100 90 92 82 68
Now the code:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
#include <numeric>
using namespace std;
void PrintLines (int numlines); //for the border "*"
int main( )
{
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
ifstream file;
//ofstream file;
file.open("Path to your file\\gradename.txt");
if(file.fail()) {
cout<< ("cant open text");
return 1;
}
map<string, vector<int> > scores; //[6][11]; //array to store the scores
for (int x = 0; x < 6; ++x) {
string name;
file >> name; //change this error?
vector<int> scoresOfName;
for(int y = 0; y < 11; y++) {
int score;
file >> score;
scoresOfName.push_back(score);
}
scores[name] = scoresOfName;
}
{
int numlines;
cout<< "\nHow many lines of * do you want to print"<
cin >> numlines;
PrintLines(numlines);
cout<<"\n\n Whose grades would you like to see\n Enter 1 for Amy, 2 for Bob or 3 for Nina,4 for Eva, 5 for Matt or 6 for Shiva.... \n "<< endl; // User's choice
int selection;
cin >> selection;
string chName = "";
switch(selection)
{
case 1:
chName = "Amy";
break;
case 2:
chName = "Bob";
break;
case 3:
chName = "Nina";
break;
case 4:
chName = "Eva";
break;
case 5:
chName = "Matt";
break;
case 6:
chName = "Shiva";
break;
default:
cout << "\n Invalid input\n";
break;
}
cout << "Your choice is " << chName;
cout << "\n" << chName << "'s\n Highest grade is:"
<< *(max_element(scores[chName].begin(), scores[chName].end()))
<< "\nLowest grade:"
<< *(min_element(scores[chName].begin(), scores[chName].end()))
<< "\nAverage grade:"
<< accumulate(scores[chName].begin(), scores[chName].end(), 0) / 10
<< "\n";
cout << "How many lines of * do you want to print" << endl;
cin >> numlines;
PrintLines(numlines);
}
file.close(); //closing file
cin.get();
return 0;
}
void PrintLines(int numlines) //function that contains the output for *
{
for (int count =1; count <=numlines; count++)
cout << "********************************************************************" << endl;
}