I created a C++ program to compute a student's average grade. The first part works, but when I type "done" to exit, my program goes through an infinite loop and won't stop producing numbers.
Here is my code:
#include <iostream>
using namespace std ;
void studentGrade (string) ;
int main ()
{
string name ;
int scoreOne, scoreTwo, scoreThree, scoreFour, scoreFive, scoreSix, scoreSeven, scoreEight, scoreNine, scoreTen ;
float average = 0 ; float total = 0 ; char letterGrade ; name = "zero" ;
studentGrade (name) ;
}
void studentGrade (string name)
{
int scoreOne, scoreTwo, scoreThree, scoreFour, scoreFive, scoreSix, scoreSeven, scoreEight, scoreNine, scoreTen ;
char letterGrade ;
float average = 0 ;
float total = 0 ;
while (name != "done")
{
cout << "Enter student's name." << endl ;
getline (cin, name) ;
cin.ignore () ;
if (name != "done")
{
cout << "Enter " << name << "'s 10 test scores." ;
cin >> scoreOne >> scoreTwo >> scoreThree >> scoreFour >> scoreFive >> scoreSix >> scoreSeven >> scoreEight >> scoreNine >> scoreTen ;
total = scoreOne + scoreTwo + scoreThree + scoreFour + scoreFive + scoreSix + scoreSeven + scoreEight + scoreNine + scoreTen ;
average = total / 10 ;
if (average > 89.5)
letterGrade = 'A' ;
else if (average > 79.5)
letterGrade = 'B' ;
else if (average > 69.5)
letterGrade = 'C' ;
else if (average > 59.5)
letterGrade = 'D' ;
else
letterGrade = 'F' ;
cout << "Student's name: " << name << endl ;
cout << "Average Grade: " << average << endl ;
cout << "Letter Grade: " << letterGrade << endl ;
name = "zero" ;
}
else
cout << "All student's done." << endl ;
}
cout << "All student's done." << endl ;
}
What I have tried:
When I type names, the program works properly, but when I enter "done" to exit, it doesn't. I was just wondering if I am missing something to exit the loop or if I didn't do something right. Thank you for helping!