while loop and nested if statement problems

Gaylle's Avatar, Join Date: Mar 2009
Light Poster
hi everyone. hope u'r all doin great 2day. i'm trying to a prob i have with loops
so far the code i've writtin was successfully built but my answers are not right . cld somebody please check this code and tell me why i'm getting wrong answers with it?

Code:
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;



int _tmain(int argc, _TCHAR* argv[])
{
    //declarations
    int operation;
    double CirRadius, CirArea, Base, Height, TriArea;
    const double PI = 3.14159;

    // menu
    cin >> operation;
    while (operation !=4)
    {
        if (operation == 1)
        {
            cin >> CirRadius;
              CirArea = PI * CirRadius * CirRadius;
            cout<<"The area of a circle with radius "<<CirRadius<<" is " <<setprecision(4)<<CirArea<<'\n\n';
            cin >> operation;
        }
        else if (operation == 2 || operation == 3)
        {
            cin >> Base;
            cin >> Height;
            TriArea = 0.5 * Base * Height;
            cout<<"The area of a triangle with base "<<Base<<" and height "<<Height<<" is "<<TriArea<<'\n\n';
            cin >> operation;
        }
        else if (operation == 5 || operation == 7)
        {
            cout<<"Error: "<<operation<<" is not a valid operation.\n\n";

        }
        
    }

    return 0;
}
heres the whole question

Geometry Calculator:
* Use nested if-else statements for all decision making in the program.
* Declare PI as a double constant with value 3.14159
* Use a while loop to repeat until the user types a 4 as shown below. If the operation code is not 1 through 4, then print an error message and go to the next data item.
* If a negative data value is entered by the user (or read from file), make it positive and use it.
* Use double for all your data variables and print all values with 4 decimal places.
* When the operation is 4, print "Thank you for using my calculator" and end the program.
* In the data given, the first figure is the operation value. An operation value of 1 refers a circle and the next value is the radius. An operation value of 2 or 3 refers to a triangle and the values after it are the base and height of the triangle. Operation values of 5 and 7 should show error messages

Code:
int operation;
// display the menu
cin >> operation;
while (operation != 4)
{
    // put your calculations here
    // display the menu
    cin >> operation;
}
OPERATIONS & DATA VALUES

1 4.58
2 6.34 5.8
3 7 -13
5
2 -6 19.4443
3 81.8 0.543
1 -8976
7
2 12.58 3
4

After you have the program running on the screen, change the I/O to file I/O. Your output should be as shown in the sample below, with a blank line between each output:

The area of a circle with radius 4.5800 is 14.3885
Error: 5 is not a valid operation
The area of a triangle with base 7.0000 and height 13.0000 is 45.5000
Thank you for using my calculator

Last edited by shabbir; 31Mar2009 at 07:04.. Reason: Code blocks
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
Have you solved this one as well and are about to make another post with the next bit?
Or are you really stuck this time?