Перевод переключателя в цикл в C

#c #loops #switch-statement #do-while

#c #циклы #switch-оператор #do-while

Вопрос:

Я пытаюсь выполнить задание для своего класса C , и я действительно застрял. Я не уверен, правильно ли я подхожу к проблеме. Я пытаюсь создать программу на основе меню, в которой она будет добавлять товары в «корзину» на основе выбора меню пользователя и позволит пользователю увеличить количество билетов, которые у них есть в «корзине».

Затем, если они нажмут N, он вернется в главное меню, и только когда они нажмут 5, чтобы «оформить заказ», это даст им общую сумму их заказа.

Любая помощь была бы очень признательна.

Спасибо

 #include <iostream>

using namespace std;

int main()
{
    char menuOpt;
    int total = 0;
    char moreTix;

    cout << "Use menu options 1-5 to add a ticket to your cart." << endl;
    cout << "Option 1: Adult - Airboat ride amp; alligator wrestling show.n";
                       cout << "t  Price: $10" << endl;
    cout << "Option 2: Adult - Airboat ride, alligator wrestling show amp; photo with wrestler.n";
                       cout << "t  Price: $15" << endl;
    cout << "Option 3: Senior - Airboat ride amp; alligator wrestling show.n";
                       cout << "t  Price: $7" << endl;
    cout << "Option 4: Child - Airboat ride, alligator wrestling show amp; stuffed toy alligator.n";
                       cout << "t  Price: $10" << endl;
    cout << "Option 5: Checkout"
    cout << "Option: ";
        cin >> menuOpt;

    do{
        switch(menuOpt){
        case '1': cout << "Adult airboat ride amp; alligator wrestling show has been added to your cart." << endl;
                    total  = 10;
                    break;
        case '2': cout << "Adult airboat ride, alligator wrestling show amp; photo with wrestler has been added to your cart." << endl;
                    total  = 15;
                    break;
        case '3': cout << "Senior airboat ride amp; alligator wrestling show has been added to your cart." << endl;
                    total  = 7;
                    break;
        case '4': cout << "Child airboat ride, alligator wrestling show amp; stuffed toy alligator has been added to your cart." << endl;
                    total  =10;
                    break;
        case '5': cout << "The total for your purchase is $" << total << endl;
        default: cout << "You have made an invalid choice. Please make another selection." << endl;
        }
        cout << "Would you like to purchase another ticket? (Y/N) ";
            cin >> moreTix;
    }while (moreTix == 'y' || moreTix == 'Y');

    return 0;
}
  

Комментарии:

1. Не могли бы вы подробнее рассказать о проблеме, с которой вы столкнулись?

Ответ №1:

Если я правильно понимаю ваш вопрос, вы не сможете увидеть меню, как только пользователь решит приобрести больше билетов.

Поместите свое do утверждение над этой строкой, и оно должно сработать:

 cout << "Use menu options 1-5 to add a ticket to your cart." << endl;  
  

Ответ №2:

Измените свой код таким образом:

 #include<iostream>

using namespace std

int main() 
{
   char menuOpt;
   int total = 0;
   char moreTix;

   do {

   <the rest of the code remains the same>
   .......

   }while (moreTix == 'y' || moreTix == 'Y');

return 0;
}
  

Ответ №3:

 #include<iostream>

using namespace std

int main() 
{
   // data members

   do {

   //Your complete code
   .......

   }while (moreTix == 'y' || moreTix == 'Y');

return 0;
}
  

Всякий раз, когда необходимо выполнить управление меню, когда пользовательское условие для выхода из цикла устанавливается, цикл всегда запускается перед добавлением опции меню.

А также вы забыли ключевое слово break после регистра ‘5’:, следовательно, он всегда будет показывать общую покупку, а также запускать регистр по умолчанию.