Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
3.09 Кб
Скачать
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
using namespace std;

struct Animal {
    string name;
    int cageNumber;
    string favoriteFood;
};

class Zoo {
private:
    int animalCount;
    vector<Animal> animals;
    string workingHours;
    string address;
    string guardName;
    
public:
    Zoo(string hours = "9:00-18:00", string addr = "", string guard = "") 
        : animalCount(0), workingHours(hours), address(addr), guardName(guard) {
        cout << "Создан зоопарк по адресу: " << address << endl;
    }
    
    void addAnimal(string name, int cage, string food) {
        animals.push_back({name, cage, food});
        animalCount++;
        cout << "Добавлен зверь: " << name << " в клетку №" << cage << endl;
    }
    
    void feedAnimal(string name, string newFood) {
        bool found = false;
        for (auto& animal : animals) {
            if (animal.name == name) {
                cout << "Зверь " << name << " теперь любит " << newFood 
                     << " (было: " << animal.favoriteFood << ")" << endl;
                animal.favoriteFood = newFood;
                found = true;
                break;
            }
        }
        if (!found) {
            cout << "Зверь с именем " << name << " не найден" << endl;
        }
    }
    
    void changeGuard(string newGuard) {
        cout << "Смена сторожа: " << guardName << " -> " << newGuard << endl;
        guardName = newGuard;
    }
    
    void printInfo() {
        cout << "=== ИНФОРМАЦИЯ О ЗООПАРКЕ ===" << endl;
        cout << "Адрес: " << address << endl;
        cout << "Часы работы: " << workingHours << endl;
        cout << "Сторож: " << guardName << endl;
        cout << "Количество животных: " << animalCount << endl;
        
        if (animals.empty()) {
            cout << "Животных нет" << endl;
        } else {
            cout << "Список животных:" << endl;
            for (auto& animal : animals) {
                cout << "  " << animal.name << " (клетка №" << animal.cageNumber 
                     << ", любит: " << animal.favoriteFood << ")" << endl;
            }
        }
        cout << "=============================" << endl;
    }
};

int main() {
    SetConsoleOutputCP(65001);
    
    Zoo zoo("10:00-20:00", "ул. Зоопарковая, 1", "Петров И.С.");
    zoo.printInfo();
    
    zoo.addAnimal("Лев Симба", 1, "мясо");
    zoo.addAnimal("Слон Дамбо", 2, "фрукты");
    zoo.addAnimal("Обезьяна Чита", 3, "бананы");
    
    zoo.feedAnimal("Лев Симба", "говядина");
    zoo.feedAnimal("Тигр", "курятина"); // несуществующий зверь
    
    zoo.changeGuard("Сидоров П.К.");
    zoo.printInfo();
    
    return 0;
}
Соседние файлы в папке Лаба2