Итак, я пытаюсь создать каталог библиотеки, используя объектно-ориентированные принципы (к которым я все еще довольно новичок). Часть моего кода - это открывающееся меню и последующие меню, доступные из вывода ответа пользователя на первое. В следующем фрагменте кода цель состоит в том, чтобы получить доступ к подменю «новый элемент», введя «1», а затем предложить пользователю, какой тип элемента данных он хочет ввести, что создает один из трех классов (в данном случае 'Film', потому что я еще не закодировал два других), полученных из класса 'Entry'.
Когда в подменю вводится «1», цель состоит в том, чтобы создать экземпляр класса Film, запросить у пользователя информацию, а затем добавить ее в каталог. Однако после ввода «1» открывающее меню выводится на экран, и вызов класса «Film» выполняется только после ввода числа «0». Я озадачен тем, почему это может происходить!
void Entry::menu() {
int index = 1;
string Menu = "Please enter the number corresponding to the service you require: \n"
"1. Enter a new item into catalogue.\n"
"2. Record an item as borrowed.\n"
"3. Record an item as returned.\n"
"(0. Exit program.)\n";
cout << Menu;
while (index != 0) {
cin >> index;
switch (index) {
case 0: break;
case 1: entryMenu(); cout << Menu; break;
default: cout << Menu; break;
}
}
}
void Entry::entryMenu() {
int index = 1;
string Menu = "Please enter the type of entry you wish to add: \n"
"1. Film\n"
"2. Book\n"
"3. Music Album\n"
"(0. Return to main menu.\n";
cout << Menu;
while (index != 0) {
cin >> index;
switch (index) {
case 0: break;
case 1: {
Film Temp;
index = Temp.addEntry();
cout << Menu; }
default: break;
}
}