My program takes in a student's last name, then first name, then midterm score 1, then midterm score 2, and lastly their final score. Based on the average of their midterm scores and their final score my program assigns each student with a grade (A-F).
Example input:
Barrett Edan 70 45 59 Bradshaw Reagan 96 97 88
Example of correct output:
Barrett Edan 70 45 59 F Bradshaw Reagan 96 97 88 A
My program instead outputs:
Barrett Edan 70 45 59 F Bradshaw Reagan 96 97 88 A Bradshaw Reagan 96 97 88 A
Why is this and what can I do to fix this?
while (!studentInfo.eof()) {
float avgScore = 0;
studentInfo >> lastName >> firstName >> midScore1 >> midScore2 >> finalScore;
avgMid1 += midScore1;
avgMid2 += midScore2;
avgFinal += finalScore;
avgScore = (midScore1 + midScore2 + finalScore)/3;
if (avgScore >= 90) {
grade = "A";
}
else if (avgScore >= 80 && avgScore < 90) {
grade = "B";
}
else if (avgScore >= 70 && avgScore < 80) {
grade = "C";
}
else if (avgScore >= 60 && avgScore < 70) {
grade = "D";
}
else if (avgScore < 60) {
grade = "F";
}
newFile << lastName << " " << firstName << " " << midScore1 << " " << midScore2 << " " << finalScore << " " << grade << endl;
++count;
}