I am working on a programming project for class that a student will be able to e
ID: 669871 • Letter: I
Question
I am working on a programming project for class that a student will be able to enter a class name, course number, grade and course hours and calculate GPA. This is what I have so far but for some reason after I enter the first class name the program just continues to loop?
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i=0;
float totalScore=0;
float nclasses, score, coursescore, coursehours;
int classname, coursenumber, coursegrade;
float gpa;
char grade;
cout << "Enter the total number of classes you want to calculate: ";
cin >> nclasses;
cout << "Please enter class name, course number, course grade, and course credit hours when prompted. Please enter valid course grades (A, B, C, D, F, W, I): " << endl;
for(i = 0; i < nclasses; i++)
while(i < nclasses)
{
cout << "Enter Class Number" << i+1 << ":";
cin >> classname;
cout << "Enter your course number: ";
cin >> coursenumber;
cout << "Enter your course grade: ";
cin >> coursegrade;
cout << "Enter course credit hours: ";
cin >> coursehours;
if(grade == 'A') score = 4;
else if(grade == 'B') score = 3;
else if(grade == 'C') score = 2;
else if(grade == 'D') score = 1;
else if(grade == 'F') score = 0;
else if(grade == 'W'); //not used in calculation
else if(grade == 'I'); //not used in calculation
else score = 0;
coursescore = score * coursehours;
cout << "Your score is: " << (coursescore) << endl;
totalScore += coursescore;
}
gpa = (float)totalScore / nclasses;
cout << "Your GPA is: " << gpa << endl;
cin >> grade;
return 0;
}
Explanation / Answer
Program problems are fixed and necessary changes are done and tested.
Please find below the modified program. All modifications done to the program are commented.
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i=0;
float totalScore=0;
float nclasses, score, coursescore, coursehours;
int classname, coursenumber;
float gpa;
char grade, coursegrade;//modified coursegrade datatype to match grade datatype
cout << "Enter the total number of classes you want to calculate: ";
cin >> nclasses;
cout << "Please enter class name, course number, course grade, and course credit hours when prompted. Please enter valid course grades (A, B, C, D, F, W, I): " << endl;
for(i = 0; i < nclasses; i++)
//while(i < nclasses) This line is commented, because its not required
{
cout << "Enter Class Number" << i+1 << ":";
cin >> classname;
cout << "Enter your course number: ";
cin >> coursenumber;
cout << "Enter your course grade: ";
cin >> coursegrade;
cout << "Enter course credit hours: ";
cin >> coursehours;
grade = coursegrade;
if (grade == 'A') score = 4;
else if(grade == 'B') score = 3;
else if(grade == 'C') score = 2;
else if(grade == 'D') score = 1;
else if(grade == 'F') score = 0;
//else if(grade == 'W'); //not used in calculation
//else if(grade == 'I'); //not used in calculation
else score = 0;
coursescore = score * coursehours;
cout << "Your score is: " << (coursescore) << endl;
totalScore += coursescore;
}
gpa = (float)totalScore / nclasses;
cout << "Your GPA is: " << gpa << endl;
//cin >> grade; This line is commented because its not required.
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.