joe1986
Full Member level 4
c++ doubt
i have written a program to accept input from the
user and calculate grades (both numeric and letter) for an English, math, or
science student. but when i compile it there is no error,but i'm not able to enter the mark's, because when i type yes, i get a different output, can anyone please tell me what's wrong in the program???
// to calculate many students grade
#include <iostream>
#include <string>
main ()
{
using namespace std;
int midtermgrade=0,finalexaminationgrade=0,researchgrade=0,presentationgrade=0,i;
const double ENG_MIDTERM_PER = .25,ENG_FINALEXAMINATION_PER =.25,ENG_RESEARCH_PER = .30,ENG_PRESENTATION_PER = .20,MATH_MIDTERM_PERCENTAGE = .5F,MATH_FINALEXAM_PERCENTAGE = .50,SCIENCE_MIDTERM_PERCENTAGE = .40,SCIENCE_FINALEXAM_PERCENTAGE = .40,SCIENCE_RESEARCH_PERCENTAGE = .20;
float FINALGRADE=0;
char FINALLETTERGRADE;
char reply [256];
string moregradestocalculate;
// What type of student are we calculating?
cout << "DO YOU WANNA CALCULATE A GRADE??";
cin >> moregradestocalculate;
cout << "ENTER THE STUDENT TYPE (1=ENGLISH,2=MATH,3=SCIENCE): ";
cin.getline(reply,256);
for(i=0;i<moregradestocalculate.length();i++)
{
moregradestocalculate=toupper(moregradestocalculate);
}
while(moregradestocalculate=="YES")
{
if (strlen(reply) == 0) // if key pressed is 0 or if enter is pressed
{
cout << "You must select a Student Type";return 1;
}
if((atoi(reply)<1) || (atoi(reply)>3)) // if no pressed is less than 0 or greater than 3.
{
cout <<reply << "-:NOT A VALID STUDENT TYPE";return 1;
}
switch(atoi(reply))
{
case 1:
cout << "ENTER midtermarks: ";
cin.getline(reply,256);
midtermgrade=atoi(reply);
cout << "ENTER finalexaminationgrade: ";
cin.getline(reply,256);
finalexaminationgrade=atoi(reply);
cout << "ENTER researchgrade: ";
cin.getline(reply,256);
researchgrade=atoi(reply);
cout << "ENTER presentationgrade: ";
cin.getline(reply,256);
presentationgrade=atoi(reply);
FINALGRADE =((ENG_MIDTERM_PER*midtermgrade)+(ENG_FINALEXAMINATION_PER*finalexaminationgrade)+(ENG_RESEARCH_PER*researchgrade)+(ENG_PRESENTATION_PER*presentationgrade))*4;
if(FINALGRADE>=93)
FINALLETTERGRADE = 'A';
else
if(FINALGRADE==85 && FINALGRADE<93)
FINALLETTERGRADE ='B';
else
if(FINALGRADE==78 && FINALGRADE<85)
FINALLETTERGRADE = 'C';
else
if(FINALGRADE==70 && FINALGRADE<7Cool
FINALLETTERGRADE = 'D';
else
if(FINALGRADE<=70)
FINALLETTERGRADE = 'F';
cout << endl << "******ENGLISH STUDENT*****" << endl;
cout << "midtermgrade is " << midtermgrade << endl;
cout << "finalexaminationgrade is " << finalexaminationgrade << endl;
cout << "researchgrade is " << researchgrade << endl;
cout << "presentationgrade is " << presentationgrade << endl;
cout << "FINALGRADE IS " << FINALGRADE << endl;
cout << "FINALLETTERGRADE IS " <<FINALLETTERGRADE << endl;
case 2:
cout <<"ENTER midtermgrade: ";
cin.getline(reply,256);
midtermgrade=atoi(reply);
cout <<"ENTER finalexaminationgrade: ";
cin.getline(reply,256);
finalexaminationgrade=atoi(reply);
FINALGRADE=((MATH_MIDTERM_PERCENTAGE*midtermgrade)+(MATH_FINALEXAM_PERCENTAGE*finalexaminationgrade))*2;
if(FINALGRADE>=90)
FINALLETTERGRADE = 'A';
else
if(FINALGRADE<90&&FINALGRADE>=83)
FINALLETTERGRADE ='B';
else
if(FINALGRADE<83 && FINALGRADE>=76)
FINALLETTERGRADE = 'C';
else
if(FINALGRADE<76 && FINALGRADE>=65)
FINALLETTERGRADE = 'D';
else
if(FINALGRADE>=65)
FINALLETTERGRADE = 'F';
cout << endl << "******MATH STUDENT*****" << endl;
cout << "midtermgrade is " << midtermgrade << endl;
cout << "finalexaminationgrade is " << finalexaminationgrade << endl;
cout << "FINALGRADE IS " << FINALGRADE << endl;
cout << "FINALLETTERGRADE IS " <<FINALLETTERGRADE << endl;
break;
case 3:
cout <<"ENTER midtermgrade: ";
cin.getline(reply,256);
midtermgrade=atoi(reply);
cout <<"ENTER finalexaminationgrade: ";
cin.getline(reply,256);
finalexaminationgrade=atoi(reply);
cout <<"ENTER researchgrade: ";
cin.getline(reply,256);
researchgrade=atoi(reply);
FINALGRADE=((SCIENCE_MIDTERM_PERCENTAGE*midtermgrade)+(SCIENCE_FINALEXAM_PERCENTAGE*finalexaminationgrade)+(SCIENCE_RESEARCH_PERCENTAGE*researchgrade))*3;
if(FINALGRADE>=90)
FINALLETTERGRADE = 'A';
else
if(FINALGRADE<90 && FINALGRADE>=80)
FINALLETTERGRADE ='B';
else
if(FINALGRADE<80 && FINALGRADE>=70)
FINALLETTERGRADE = 'C';
else
if(FINALGRADE<70 && FINALGRADE>=60)
FINALLETTERGRADE = 'D';
else
if(FINALGRADE<60)
FINALLETTERGRADE = 'F';
cout <<endl << "******SCIENCE STUDENT*****" << endl;
cout << "midtermgrade is " << midtermgrade << endl;
cout << "finalexaminationgrade is " << finalexaminationgrade << endl;
cout << "researchgrade is " << researchgrade << endl;
cout << "FINALGRADE IS " << FINALGRADE << endl;
cout << "FINALLETTERGRADE IS " <<FINALLETTERGRADE << endl;
break;
default:
cout << "NOT A VALID STUDENT TYPE!:-";
}
cout << "DO YOU WISH TO CALCULATE MORE GRADES??";
cin >> moregradestocalculate;
for(i=0;i<moregradestocalculate.length();i++)
{
moregradestocalculate=toupper(moregradestocalculate);
}
}
cout << "THANKS FOR USING THE GRADE CALCULATION PROJECT!!!!";
return 0;
}
i have written a program to accept input from the
user and calculate grades (both numeric and letter) for an English, math, or
science student. but when i compile it there is no error,but i'm not able to enter the mark's, because when i type yes, i get a different output, can anyone please tell me what's wrong in the program???
// to calculate many students grade
#include <iostream>
#include <string>
main ()
{
using namespace std;
int midtermgrade=0,finalexaminationgrade=0,researchgrade=0,presentationgrade=0,i;
const double ENG_MIDTERM_PER = .25,ENG_FINALEXAMINATION_PER =.25,ENG_RESEARCH_PER = .30,ENG_PRESENTATION_PER = .20,MATH_MIDTERM_PERCENTAGE = .5F,MATH_FINALEXAM_PERCENTAGE = .50,SCIENCE_MIDTERM_PERCENTAGE = .40,SCIENCE_FINALEXAM_PERCENTAGE = .40,SCIENCE_RESEARCH_PERCENTAGE = .20;
float FINALGRADE=0;
char FINALLETTERGRADE;
char reply [256];
string moregradestocalculate;
// What type of student are we calculating?
cout << "DO YOU WANNA CALCULATE A GRADE??";
cin >> moregradestocalculate;
cout << "ENTER THE STUDENT TYPE (1=ENGLISH,2=MATH,3=SCIENCE): ";
cin.getline(reply,256);
for(i=0;i<moregradestocalculate.length();i++)
{
moregradestocalculate=toupper(moregradestocalculate);
}
while(moregradestocalculate=="YES")
{
if (strlen(reply) == 0) // if key pressed is 0 or if enter is pressed
{
cout << "You must select a Student Type";return 1;
}
if((atoi(reply)<1) || (atoi(reply)>3)) // if no pressed is less than 0 or greater than 3.
{
cout <<reply << "-:NOT A VALID STUDENT TYPE";return 1;
}
switch(atoi(reply))
{
case 1:
cout << "ENTER midtermarks: ";
cin.getline(reply,256);
midtermgrade=atoi(reply);
cout << "ENTER finalexaminationgrade: ";
cin.getline(reply,256);
finalexaminationgrade=atoi(reply);
cout << "ENTER researchgrade: ";
cin.getline(reply,256);
researchgrade=atoi(reply);
cout << "ENTER presentationgrade: ";
cin.getline(reply,256);
presentationgrade=atoi(reply);
FINALGRADE =((ENG_MIDTERM_PER*midtermgrade)+(ENG_FINALEXAMINATION_PER*finalexaminationgrade)+(ENG_RESEARCH_PER*researchgrade)+(ENG_PRESENTATION_PER*presentationgrade))*4;
if(FINALGRADE>=93)
FINALLETTERGRADE = 'A';
else
if(FINALGRADE==85 && FINALGRADE<93)
FINALLETTERGRADE ='B';
else
if(FINALGRADE==78 && FINALGRADE<85)
FINALLETTERGRADE = 'C';
else
if(FINALGRADE==70 && FINALGRADE<7Cool
FINALLETTERGRADE = 'D';
else
if(FINALGRADE<=70)
FINALLETTERGRADE = 'F';
cout << endl << "******ENGLISH STUDENT*****" << endl;
cout << "midtermgrade is " << midtermgrade << endl;
cout << "finalexaminationgrade is " << finalexaminationgrade << endl;
cout << "researchgrade is " << researchgrade << endl;
cout << "presentationgrade is " << presentationgrade << endl;
cout << "FINALGRADE IS " << FINALGRADE << endl;
cout << "FINALLETTERGRADE IS " <<FINALLETTERGRADE << endl;
case 2:
cout <<"ENTER midtermgrade: ";
cin.getline(reply,256);
midtermgrade=atoi(reply);
cout <<"ENTER finalexaminationgrade: ";
cin.getline(reply,256);
finalexaminationgrade=atoi(reply);
FINALGRADE=((MATH_MIDTERM_PERCENTAGE*midtermgrade)+(MATH_FINALEXAM_PERCENTAGE*finalexaminationgrade))*2;
if(FINALGRADE>=90)
FINALLETTERGRADE = 'A';
else
if(FINALGRADE<90&&FINALGRADE>=83)
FINALLETTERGRADE ='B';
else
if(FINALGRADE<83 && FINALGRADE>=76)
FINALLETTERGRADE = 'C';
else
if(FINALGRADE<76 && FINALGRADE>=65)
FINALLETTERGRADE = 'D';
else
if(FINALGRADE>=65)
FINALLETTERGRADE = 'F';
cout << endl << "******MATH STUDENT*****" << endl;
cout << "midtermgrade is " << midtermgrade << endl;
cout << "finalexaminationgrade is " << finalexaminationgrade << endl;
cout << "FINALGRADE IS " << FINALGRADE << endl;
cout << "FINALLETTERGRADE IS " <<FINALLETTERGRADE << endl;
break;
case 3:
cout <<"ENTER midtermgrade: ";
cin.getline(reply,256);
midtermgrade=atoi(reply);
cout <<"ENTER finalexaminationgrade: ";
cin.getline(reply,256);
finalexaminationgrade=atoi(reply);
cout <<"ENTER researchgrade: ";
cin.getline(reply,256);
researchgrade=atoi(reply);
FINALGRADE=((SCIENCE_MIDTERM_PERCENTAGE*midtermgrade)+(SCIENCE_FINALEXAM_PERCENTAGE*finalexaminationgrade)+(SCIENCE_RESEARCH_PERCENTAGE*researchgrade))*3;
if(FINALGRADE>=90)
FINALLETTERGRADE = 'A';
else
if(FINALGRADE<90 && FINALGRADE>=80)
FINALLETTERGRADE ='B';
else
if(FINALGRADE<80 && FINALGRADE>=70)
FINALLETTERGRADE = 'C';
else
if(FINALGRADE<70 && FINALGRADE>=60)
FINALLETTERGRADE = 'D';
else
if(FINALGRADE<60)
FINALLETTERGRADE = 'F';
cout <<endl << "******SCIENCE STUDENT*****" << endl;
cout << "midtermgrade is " << midtermgrade << endl;
cout << "finalexaminationgrade is " << finalexaminationgrade << endl;
cout << "researchgrade is " << researchgrade << endl;
cout << "FINALGRADE IS " << FINALGRADE << endl;
cout << "FINALLETTERGRADE IS " <<FINALLETTERGRADE << endl;
break;
default:
cout << "NOT A VALID STUDENT TYPE!:-";
}
cout << "DO YOU WISH TO CALCULATE MORE GRADES??";
cin >> moregradestocalculate;
for(i=0;i<moregradestocalculate.length();i++)
{
moregradestocalculate=toupper(moregradestocalculate);
}
}
cout << "THANKS FOR USING THE GRADE CALCULATION PROJECT!!!!";
return 0;
}