#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’:, следовательно, он всегда будет показывать общую покупку, а также запускать регистр по умолчанию.