Я новичок, который занимается кодированием на С ++ уже несколько недель. Я написал свою программу, чтобы иметь меню, из которого пользователь выбирает параметры для выполнения различных задач. У меня есть 2 вопроса: во-первых, как мне сделать так, чтобы пользователь возвращался в меню после выполнения задачи, и во-вторых, как мне сделать так, чтобы пользователь назначал переменные (это то, что вы называете?) Числами оставаться на одной линии?

#include <iostream>
using namespace std;
int main() {

    int choice;
    float no0,no1,no2,no3,sum0,ave,pi,rad,areaC,base,height,areaT;
    pi=3.142;
    cout<<"______________________________________________\n";
    cout<<"|                    MENU                    |\n";
    cout<<"|--------------------------------------------|\n";
    cout<<"|1. Calculate the average of 4 numbers.      |\n";
    cout<<"|2. Calculate the area of a circle.          |\n";
    cout<<"|3. Calculate the area of a triangle.        |\n";
    cout<<"|4. Print 'Hello World!                      |\n";
    cout<<"|--------------------------------------------|\n";
    cout<<"Enter a number to make a selection... ";

    cin>>choice;

    switch (choice)
    {
        case 1:

            cout<<"Enter 4 numbers to find their average: ";
            cin>>no0>>no1>>no2>>no3;
            sum0=no0+no1+no2+no3;
            ave=sum0/4;
            cout<<"The average of your 4 numbers is: "<<ave<<"\n";
            break;
    }
        switch (choice)
        {
            case 2:

                cout<<"Enter the radius of a cirlce to find its area: ";
                cin>>rad;

                areaC=pi*rad*rad;

                cout<<"The area of your circle is:"<<areaC<<"\n";

                break;

        }
    switch (choice)
    {
        case 3:

            cout<<"Enter the base and height of a triangle to find its area.""\n";
            cout<<"Base: "; cin>>base;
            cout<<"Height: "; cin>>height;

            areaT=base*height*0.5;

            cout<<"The area of your triangle is: "<<areaT<<"\n";

            break;
    }

    switch (choice)

    {
        case 4:

            cout<<"Hello World!";

           }

    return 0;
}
c++
1
BenjaminPriest 7 Фев 2020 в 18:14

2 ответа

Лучший ответ

Вы можете добавить бесконечный цикл, который будет бесконечно возвращать вашего пользователя в начало программы. Если вы хотите, чтобы это прекратилось, вы можете добавить случай, который устанавливает active в false.

Я также исправил ваши случаи переключения. Как кто-то упомянул, нет необходимости switch для каждого случая - программа автоматически найдет правильный путь.

Сделайте что-то вроде этого:

#include <iostream>
using namespace std;
int main() {
    bool active = true;
    while(active)
    {

        int choice;
        float no0,no1,no2,no3,sum0,ave,pi,rad,areaC,base,height,areaT;
        pi=3.142;
        cout<<"______________________________________________\n";
        cout<<"|                    MENU                    |\n";
        cout<<"|--------------------------------------------|\n";
        cout<<"|1. Calculate the average of 4 numbers.      |\n";
        cout<<"|2. Calculate the area of a circle.          |\n";
        cout<<"|3. Calculate the area of a triangle.        |\n";
        cout<<"|4. Print 'Hello World!                      |\n";
        cout<<"|5. Quit.                                    |\n";
        cout<<"|--------------------------------------------|\n";
        cout<<"Enter a number to make a selection... ";

        cin>>choice;

        switch (choice)
        {
            case 1:

                cout<<"Enter 4 numbers to find their average: ";
                cin>>no0>>no1>>no2>>no3;
                sum0=no0+no1+no2+no3;
                ave=sum0/4;
                cout<<"The average of your 4 numbers is: "<<ave<<"\n";
                break;

            case 2:

                cout<<"Enter the radius of a cirlce to find its area: ";
                cin>>rad;
                areaC=pi*rad*rad;
                cout<<"The area of your circle is:"<<areaC<<"\n";
                break;

            case 3:

                cout<<"Enter the base and height of a triangle to find its area.""\n";
                cout<<"Base: "; cin>>base;
                cout<<"Height: "; cin>>height;
                areaT=base*height*0.5;
                cout<<"The area of your triangle is: "<<areaT<<"\n";
                break;

            case 4:

                cout<<"Hello World!";
                break;

            case 5:

                active = false; // Could even just return 0 here
                break;

        } // End Switch
    } // End Loop

    return 0;
}
2
alteredinstance 7 Фев 2020 в 15:26

Я рекомендую использовать альтернативный цикл для сброса вашей программы, а также сгруппировать разные случаи в один и тот же switch, например:

#include <iostream>

using namespace std;

int main() {
    float no0,no1,no2,no3,sum0,ave,pi,rad,areaC,base,height,areaT;
    pi=3.142;
    int choice;
    do{
        cout<<"______________________________________________\n";
        cout<<"|                    MENU                    |\n";
        cout<<"|--------------------------------------------|\n";
        cout<<"|1. Calculate the average of 4 numbers.      |\n";
        cout<<"|2. Calculate the area of a circle.          |\n";
        cout<<"|3. Calculate the area of a triangle.        |\n";
        cout<<"|4. Print 'Hello World!                      |\n";
        cout<<"|5. Quit.                                    |\n";
        cout<<"|--------------------------------------------|\n";
        cout<<"Enter a number to make a selection... ";

        cin>>choice;

        switch (choice){
            case 1:
                cout<<"Enter 4 numbers to find their average: ";
                cin>>no0>>no1>>no2>>no3;
                sum0=no0+no1+no2+no3;
                ave=sum0/4;
                cout<<"The average of your 4 numbers is: "<<ave<<"\n";
                break;
            case 2:
                cout<<"Enter the radius of a cirlce to find its area: ";
                cin>>rad;
                areaC=pi*rad*rad;
                cout<<"The area of your circle is:"<<areaC<<"\n";
                break;
            case 3:
                cout<<"Enter the base and height of a triangle to find its area.""\n";
                cout<<"Base: "; cin>>base;
                cout<<"Height: "; cin>>height;
                areaT=base*height*0.5;
                cout<<"The area of your triangle is: "<<areaT<<"\n";
                break;
            case 4:
                cout<<"Hello World!\n";
                break;
            case 5:
                cout<<"Bay\n";
                break;
            default:
                cout<<"Wrong selection\n";
                break;
        } // End Switch
        //If you want clear the screen you can use the instruction:cout<<"\033[2J\033[1;1H";
    }while(choice != 5); // End Loop
    return 0;
}
1
Mandy007 7 Фев 2020 в 15:42