Помогите с простым кодом(рестарт)

Помогите, хочу, чтоб при веденном значении в программе, она начала после того, как ввели ник. Т.е. у меня если ввести «101», то он перейдет на калькулятор, а когда он решил, перейдет в меню, где надо решить куда пойти, например в «102»

#include <iostream> 
#include <string>
using namespace std;

int main()
{
    setlocale(0, "");
    string nikname;
    int num, kalo, kalga, kalgb, kalv;
    cout << "Здравствуйте, пожалуйста представьтесь." << endl;
    cin >> nikname;
    cout << "Очень приятно " << nikname << endl;
    cout << "Итак " << nikname << ", сейчас я прошу вас выбрать, куда надо идти. Для этого надо написать три цифры(код), чтоб перейти в другую комнату." << endl;
    cout << "101 - калькулятор, 102 - О программе" << endl;
    cin >> num;
    if (num == 101) {
        cout << "Вы выбрали Калькулятор" << endl;
        cout << "Выберите действие: 1011 - сложение, 1012 - вычитание,  1013 - умжножение, 1014 - деление" << endl;
        cin >> kalv;
        if (kalv == 1011) {
            cout << "Вы выбрали сложение" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga + kalgb;
            cout << "Ваше сложение " << kalga << " плюс " << kalgb << " равно " << kalo << endl;
        }
        if (kalv == 1012) {
            cout << "Вы выбрали вычитание" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga - kalgb;
            cout << "Ваше вычитание " << kalga << " минус " << kalgb << " равно " << kalo << endl;
        }
        if (kalv == 1013) {
            cout << "Вы выбрали умжножение" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga * kalgb;
            cout << "Ваше умножение " << kalga << " умножить на " << kalgb << " равно " << kalo << endl;
        }
        if (kalv == 1014) {
            cout << "Вы выбрали деление" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga + kalgb;
            cout << "Ваше деление " << kalga << " разделить на " << kalgb << " равно " << kalo << endl;
        }
    }
    system("pause");
    return 0;
}

Если кратко, то это будет выглядеть примерно так (с учетом того, что при делении переменные не суммируются :))

#include <iostream> 
#include <string>
using namespace std;

int main()
{
    setlocale(0, "");
    int num;
    string nikname;
    int kalo, kalga, kalgb, kalv;
    cout << "Здравствуйте, пожалуйста представьтесь." << endl;
    cin >> nikname;
    cout << "Очень приятно " << nikname << endl;
    do
    { 
    cout << "Итак " << nikname << ", сейчас я прошу вас выбрать, куда надо идти. Для этого надо написать три цифры(код), чтоб перейти в другую комнату." << endl;
    cout << "101 - калькулятор, 102 - О программе, 103 - выход" << endl;
    cin >> num;
    if (num == 101) {
        cout << "Вы выбрали Калькулятор" << endl;
        cout << "Выберите действие: 1011 - сложение, 1012 - вычитание,  1013 - умжножение, 1014 - деление" << endl;
        cin >> kalv;
        if (kalv == 1011) {
            cout << "Вы выбрали сложение" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga + kalgb;
            cout << "Ваше сложение " << kalga << " плюс " << kalgb << " равно " << kalo << endl;
        }
        if (kalv == 1012) {
            cout << "Вы выбрали вычитание" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga - kalgb;
            cout << "Ваше вычитание " << kalga << " минус " << kalgb << " равно " << kalo << endl;
        }
        if (kalv == 1013) {
            cout << "Вы выбрали умжножение" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga * kalgb;
            cout << "Ваше умножение " << kalga << " умножить на " << kalgb << " равно " << kalo << endl;
        }
        if (kalv == 1014) {
            cout << "Вы выбрали деление" << endl;
            cout << "Введите первое число" << endl;
            cin >> kalga;
            cout << "Введите второе число" << endl;
            cin >> kalgb;
            int kalo = kalga / kalgb;
            cout << "Ваше деление " << kalga << " разделить на " << kalgb << " равно " << kalo << endl;
        }
    }
    }while (num != 103);

    cin.get();
    return 0;
}

Ну, я бы вынес каждый блок за пределы программы в подпрограммы, переменные для калькулятора объявить типа double (или указателем на double (double*)).
Что скажут братья наши старшие Череп, Алан, Selevit???

Так же можно вставить проверку при вводе действия (что если пользователь не введет 101, 102 или 103?).
Ну и естественно добавить текст в вызов — 102 «О программе», которую тоже можно вызвать с помощью функции, дабы не нагружать кодом main().

Точно, просто я по стилю программы понял, что
Nikitaz58 еще не использовал switch в своей практике, иначе он бы так и поступил.
Я думаю, что ты NumberSeven, не прописывал бы в каждом case блок операторов, а сделал бы просто вызов функций:)

Я так понимаю, с функцией switch, можно использовать так?

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

    // объявление переменных и ввод значения с клавиатуры
    float A,B,RES;
    cout<<"Enter first digit:\n";
    cin>>A;
    cout<<"Enter second digit:\n";
    cin>>B;

    // реализация программного меню
    char key;
    cout<<"\nSelect operator:\n";
    cout<<"\n + - if you want to see SUM.\n";
    cout<<"\n - - if you want to see DIFFERENCE.\n";
    cout<<"\n * - if you want to see PRODUCT.\n";
    cout<<"\n / - if you want to see QUOTIENT.\n";

    //ожидание выбора пользователя
    cin>>key;

    //проверяется значение переменной key
    switch(key){
    case  '+':    // если пользователь выбрал сложение      
        RES=A+B;
        cout<<"\nAnswer: "<<RES<<"\n";
        break; // остановка switch
    case  '-':     // если пользователь выбрал вычитание
        RES=A-B;
        cout<<"\nAnswer: "<<RES<<"\n";
        break; // остановка switch
    case  '*':    // если пользователь выбрал умножение
        RES=A*B;
        cout<<"\nAnswer: "<<RES<<"\n";
        break; // остановка switch
    case  '/':    // если пользователь выбрал деление
        if(B){ // если делитель не равен нулю
            RES=A-B;
            cout<<"\nAnswer: "<<RES<<"\n";
        }
        else{ // если делитель равен нулю
            cout<<"\nError!!! Divide by null!!!!\n";
        }
        break; // остановка switch
    default:    // если введенный символ некорректен
        cout<<"\nError!!! This operator isn't correct\n";
        break; // остановка switch
    }
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.