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