You are here:

C++/C++ confusion

Advertisement


Question
So 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;
}


Answer
Hello 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

C++

All Answers


Answers by Expert:


Ask Experts

Volunteer


Zlatko

Expertise

No longer taking questions.

Experience

No longer taking questions.

Education/Credentials
No longer taking questions.

©2012 About.com, a part of The New York Times Company. All rights reserved.