#c #if-statement #linked-list #queue #cin
Вопрос:
Я пытаюсь добавить команды в свой основной метод, чтобы правильно использовать свою программу списка ожидания. Команды следующие:
добавить имя: если класс не заполнен, добавьте имя в класс. В противном случае, если список ожидания не заполнен, спросите пользователя, хочет ли он присоединиться к списку ожидания. Если да, добавьте имя в список ожидания и выведите позицию.
удалить имя: удалить ученика из класса. Если список ожидания не пуст, удалите следующее имя из списка ожидания и спросите пользователя, хочет ли учащийся добавить класс. Если да, добавьте в класс. Если нет, повторяйте, пока не будет добавлен студент или список ожидания не опустеет. Примечание: если учащийся не хочет добавлять класс, он все равно удаляется из списка ожидания.
pr: распечатайте список классов (отсортированных).
pwl: распечатайте список ожидания (от позиции 1 до конца).
выход: вполне подходящая программа.
У меня есть это до сих пор:
#include lt;iomanipgt; #include lt;iostreamgt; #include lt;stringgt; #include lt;cassertgt; using namespace std; #include "StringQueue.h" #include "SortedList.h" int main() { string name; int classSize; SortedList list(classSize); int waitListSize; StringQueue myQueue(waitListSize); bool quit = false; string str1; string str2; char ans; cout lt;lt; "Enter class size: " lt;lt; "Enter wait list size: " lt;lt; "Enter the commands:" lt;lt; endl; cin gt;gt; classSize; cin gt;gt; waitListSize; while (!quit) { cin gt;gt; str1 gt;gt; str2; if (str1 == "add") { list.insert(str2); if (classSize gt; 5) { cout lt;lt; "gt;Class is full, join the wait list (y/n) ?" lt;lt; endl; cin gt;gt; ans; if (ans == 'y' || 'Y') myQueue.enqueue(str2); else quit = true; } } if (str1 == "drop") { list.remove(str2); } if (str1 == "pr") { list.displayList(cout); } if (str1 == "pwl") { myQueue.display(cout); } else quit = true; } return 0; }
Я знаю, что еще нужно добавить кое-что, но я изо всех сил пытаюсь понять, почему при включении в другие файлы я получаю только один вывод: «Введите размер класса: Введите размер списка ожидания: Введите команды:»
Буду признателен за любое понимание этой моей проблемы, и при необходимости я могу прокомментировать коды других файлов.
Спасибо.
Комментарии:
1. Ваш код выводит «Введите размер класса: Введите размер списка ожидания: Введите команды:», а затем он ожидает ввода размера класса. Как только вы введете это, он будет ждать других входов,… Вы не ввели необходимые данные? Если у вас возникла проблема с запросом ввода, то я предлагаю вам удалить весь не относящийся к делу код и includes, а просто написать небольшую программу, которая запрашивает ряд целых чисел, заканчивающихся на -1, а затем выводит их сумму. Это тот же самый принцип. Как только у вас это заработает, вы сможете мыслить шире.