C++/C++ confusion
Expert: Zlatko - 9/30/2010
QuestionSo I am new at C++ and here is my code. Everything works except the last
part. I need to display the grade after punching in the corresponding letter.
and if the grade is an "I" or an incomplete the entire midterm grade has to be
"incomplete" with a note saying please see your advisor. the last part keeps
giving me the first grade of 95 no matter what letter i punch in. any ideas on
how I should approach this?
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main (void)
{
double
homeworkgrade1,homeworkgrade2,homeworkgrade3,homeworkgrade4,hom
eworkgrade5;
double
homeworkgrade6,homeworkgrade7,homeworkgrade8,homeworkgrade9,hom
eworkgrade10;
double homeworktotal;
double homeworkpercent;
double homeworkpercent1;
cout<<"Enter your grade for homework grade1 out of 5 points:";
cin>>homeworkgrade1;
cout<<"Enter your grade for homework grade2 out of 5 points:";
cin>>homeworkgrade2;
cout<<"Enter your grade for homework grade3 out of 5 points:";
cin>>homeworkgrade3;
cout<<"Enter your grade for homework grade4 out of 5 points:";
cin>>homeworkgrade4;
cout<<"Enter your grade for homework grade5 out of 5 points:";
cin>>homeworkgrade5;
cout<<"Enter your grade for homework grade6 out of 5 points:";
cin>>homeworkgrade6;
cout<<"Enter your grade for homework grade7 out of 5 points:";
cin>>homeworkgrade7;
cout<<"Enter your grade for homework grade8 out of 5 points:";
cin>>homeworkgrade8;
cout<<"Enter your grade for homework grade9 out of 5 points:";
cin>>homeworkgrade9;
cout<<"Enter your grade for homework grade10 out of 5 points:";
cin>>homeworkgrade10;
homeworktotal=
homeworkgrade1+homeworkgrade2+homeworkgrade3+homeworkgrade4+h
omeworkgrade5+homeworkgrade6+homeworkgrade7+homeworkgrade8+ho
meworkgrade9+homeworkgrade10;
homeworkpercent=homeworktotal/50;
homeworkpercent1=((homeworkpercent*.15)*100);
cout<<"Out of a total of 15% you have
received:"<<homeworkpercent1<<endl;
double labgrade1;
double labgrade2;
double labgrade3;
double labgrade4;
double labgrade;
double total;
double finallabpercentage;
cout<< "Enter your grade for lab 1 out of 10 points:";
cin>> labgrade1;
cout<< "Enter your grade for lab 2 out of 10 points : ";
cin>> labgrade2;
cout<< "Enter your grade for lab 3 out of 10 points:";
cin>> labgrade3;
cout<< "Enter your grade for lab 4 out of 10 points: ";
cin>> labgrade4;
total= labgrade1 + labgrade2 + labgrade3 + labgrade4;//the sum of all the
lab grades
labgrade =((total/40)*100);
finallabpercentage= labgrade*.35;
cout<<"Out of a total of 35% you have
received:"<<finallabpercentage<<endl;
char midtermproject;//The output of the midterm project will be a character
double midtermgradevalue;//will be a double variable
char incomplete;
cout<< "Enter your grade for the midterm project use capital or lower case";
cin>> midtermproject;
if(midtermproject=='a'|| 'A') midtermgradevalue=95;
else
if( midtermproject== 'b' || 'B') midtermgradevalue=85;
else
if (midtermproject== 'c' || 'C') midtermgradevalue=75;
else
if (midtermproject== 'd' || 'D') midtermgradevalue=65;
else
if (midtermproject== 'f' || 'F') midtermgradevalue=55;
else
if{midtermgradevalue== 'i' || 'I'midtermgradevalue= 0;
cout<<"Please see your advisor about your incomplete"<<endl;}
cout<<"Midtermgrade is:"<<midtermgradevalue<<endl;
return 0;
}
AnswerHello Jeniffer.
I think one of the problems is with the comparison of midtermproject against a letter. The syntax such as
midtermproject== 'a' || 'A'
does not do what you expect.
The expression is true when midtermproject== 'a' or when 'A' is non-zero. The character 'A' is always non-zero, so the expression is always true, which is why you are always getting 95.
The correct syntax is:
if (midtermproject=='a'|| midtermproject=='A') midtermgradevalue=95;
else if (midtermproject== 'b' || midtermproject=='B') midtermgradevalue=85;
else if (midtermproject== 'c' || midtermproject=='C') midtermgradevalue=75;
else if (midtermproject== 'd' || midtermproject=='D') midtermgradevalue=65;
else if (midtermproject== 'f' || midtermproject=='F') midtermgradevalue=55;
else if (midtermproject== 'i' || midtermproject== 'I')
{
midtermgradevalue= 0;
cout<<"Please see your advisor about your incomplete"<<endl;
}
Compare that with what you have and let me know if you have any questions.
I hope that helps you out.
Best regards
Zlatko