Привет!
Взялся за задание, которое нашел в просторах сети и я [s]немного[/s] очень сильно запутался.
Задание: сделать терминал управления зоомагазином, использовать классы.
Мой вопрос: почему оператор return не возвращает к функции, которая вызвала функцию, которая вызвала return? (Как закрутил, извиняюсь)
Забыл написать в чем ошибка: программа доходит до функции input(); и закрывается, хотя должна вернуться обратно в меню.
#include <iostream>
using namespace std;
const int SIZE = 10;
class zoo {
public:
char name[25];
char animal[25];
int cost;
void input();
}anim[SIZE];
void manager(), show(), add_animal();
int main() {
cout << "Hello, it's ZooCoo! Please choose the action. Who are u?\n\n" <<
"1. Manager \n 2.User \n";
int sea;
cin >> sea;
switch (sea)
{
case 1: manager(); break;
}
system("pause");
return 0;
}
void manager(){
cout << "Hello, MANAGER!\n Choose action\n" <<
"1. Add animal \n 2. Show animal \n 3. Exit \n\n";
int choise;
cin >> choise;
switch (choise)
{
case 1: add_animal();
break;
case 2: show(); break;
}
return;
}
void add_animal(){
int i;
for (i = 0; i < SIZE; ++i){
if (!anim[i].animal) break;
if (i == SIZE){ cout << "Its full"; return; }
}
anim[i].input();
return;
}
void zoo::input(){
cout << "What is that animal?\n\n";
cin >> animal;
cout << "Animal's name\n\n";
cin >> name;
cout << "What about cost?\n\n";
cin >> cost;
return;
}
void show(){
int i;
for (i = 0; i < SIZE; i++){
if (anim[i].animal){
cout << "\nAnimal\t" << anim[i].animal <<
"\nName\t" << anim[i].name <<
"\nCost\t" << anim[i].cost << endl;
}
}
return;
}