You are on page 1of 2

#include <iostream>

#include <fstream>
#include <string>

#define M 4

using namespace std;

int main()
{
string *studentID;
string *studentResult;
string temp;
string Result;

int index;

double score = 0.0;


double scale = 0.0;
char grade;
int N = 0;

cout << "Enter number of exam questions: ";


cin >> N;

ifstream fin;
fin.open("Ch12_Ex2Data.txt");
if (fin.is_open())
{
int i = 0;
getline(fin, Result);
studentID = new string[M+1];
studentResult=new string[M+1];

for(i=0; i<M; i++)


{
getline(fin, temp);
index = temp.find(' ');
studentID[i] = temp.substr(0, index);
studentResult[i] = temp.substr(index+1);
}
fin.close();
cout << endl << "Processing Data";
cout << endl << "Key : "<< Result << endl;

for(i=0; i<M; i++)


{
score = 0.0;
cout << endl << studentID[i];
cout << "\t" << studentResult[i];
for (int j=0; j<N; j++)
{
if (studentResult[i][j] == '\n')
{
studentResult[i][j] = '\0';
break;
}
if (Result[j] == studentResult[i][j])
score=score+2;
else if (studentResult[i][j] == ' ' || studentResult[i][j] == '\
n')
score = score+0;
else
score = score-1;
}

cout << "\t" << score;


scale = (score/40) * 100;

if (scale >= 90 && scale <= 100) grade = 'A';


else if (scale >= 80 && scale < 90) grade = 'B';
else if (scale >= 70 && scale < 80) grade = 'C';
else if (scale >= 60 && scale < 70) grade = 'D';
else if (scale >= 0 && scale < 60) grade = 'F';

cout << "\t" << grade;


}
cout << endl;
} else {
cout<<"Unable to find the file 'Ch12_Ex2Data.txt' in the current path
of program\n";
}

return 0;
}

You might also like