Мой код почти закончен, но я не уверен, как вставить цикл while внутри оператора switch, поэтому, если пользователь вводит отрицательное число, он выдает сообщение: «Значение должно быть положительным. Повторите ввод:». Ниже мой код.Как вставить цикл while внутри оператора switch?
#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);
}
Если вы хотите петлю где-то там, а затем туда помещают. С какой частью задачи вы столкнулись? Вы попросили вашего инструктора о помощи? Stack Overflow - это не место, чтобы заставить людей делать домашнее задание для вас. –
Спасибо за вашу помощь. Роб оценит это! – user2837593