My code is almost finished but im not sure how to insert a while loop inside the switch statement so if the user enters a negative number it gives a message, "The value must be positive. Please re-enter: ". Below is my code.
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
const double PI = 3.14;
void showMenu();
double area (double, double);
double area (double);
double volume (double, double, double);
double volume (double);
int main()
{
char choice;
double length, width, height, radius, tot_area, tot_volume;
cout << fixed << setprecision(2);
do
{
showMenu();
cout << "Please select 1-5: " << endl;
cin >> choice;
switch (choice)
{
case '1':
cout << "Please enter the length of a rectangle: " << endl;
cin >> length;
cout << "Please enter the width of a rectangle: " << endl;
cin >> width;
tot_area = area(length, width);
cout << "The area of the rectangle is " << tot_area << endl;
break;
case '2':
cout << "Please input the radius of the circle: " << endl;
cin >> radius;
tot_area = area(radius);
cout << "The area of the circle is " << tot_area << endl;
break;
case '3':
cout << "Please enter the length of a box: " << endl;
cin >> length;
cout << "Please enter the width of a box: " << endl;
cin >> width;
cout << "Please enter the height of a box: " << endl;
cin >> height;
tot_volume = volume(length, width, height);
cout << "The volume of the box is " << tot_volume << endl;
break;
case '4':
cout << "Please input the radius of a sphere: " << endl;
cin >> radius;
tot_volume = volume(radius);
cout << "The volume of the sphere is " << tot_volume << endl;
break;
case '5':
break;
default :
cout << "That is a invalid operation" << endl;
break
}
}
while (choice != '5');
cout << "Thank you for using my program." << endl;
return 0;
}
void showMenu()
{
cout << "1. Calculate the area of a rectangle" << endl;
cout << "2. Calculate the area of a circle" << endl;
cout << "3. Calculate the volume of a box" << endl;
cout << "4. Calculate the volume of a sphere" << endl;
cout << "5. Quit" << endl;
}
//For area of a rectangle
double area (double length, double width)
{
return length * width;
}
//For area of a circle
double area (double radius)
{
return PI * pow (radius, 2.0);
}
//For volume of a box
double volume (double length, double width, double height)
{
return length * width * height;
}
//For volume of a sphere
double volume (double radius)
{
return (4.0/3.0) * PI * pow (radius, 3.0);
}