Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей по С++

Cкрпрлесго Скрпрлесгов Ученик (31), на голосовании 5 месяцев назад
Необходимо создать класс — зоомагазин. В классе должны быть следующие поля: животное ( напр. волк, пингвин, собака ), пол, имя , цена, количество. Включить в состав класса необходимый минимум методов, обеспечивающий полноценное функционирование объектов указанного класса: 1. Конструкторы (по умолчанию, с параметрами, копирования); 2. Деструктор; 3. Переопределить возможные для класса операции, продумать порядок их выполнения; 4. Добавить необходимые методы.
Голосование за лучший ответ
Татьяна Просветленный (36384) 6 месяцев назад
 #include  
#include
#include

class Animal {
public:
std::string type;
std::string gender;
std::string name;
double price;
int quantity;

// Конструктор по умолчанию
Animal() : type(""), gender(""), name(""), price(0.0), quantity(0) {}

// Конструктор с параметрами
Animal(std::string t, std::string g, std::string n, double p, int q) : type(t), gender(g), name(n), price(p), quantity(q) {}

// Конструктор копирования
Animal(const Animal& other) : type(other.type), gender(other.gender), name(other.name), price(other.price), quantity(other.quantity) {}

// Деструктор
~Animal() {}

// Оператор присваивания
Animal& operator=(const Animal& other) {
if (this != &other) {
type = other.type;
gender = other.gender;
name = other.name;
price = other.price;
quantity = other.quantity;
}
return *this;
}

// Метод для вывода информации о животном
void display() const {
std::cout << "Type: " << type << ", Gender: " << gender << ", Name: " << name
<< ", Price: " << price << ", Quantity: " << quantity << std::endl;
}
};

class PetShop {
private:
std::vector animals;

public:
// Конструктор по умолчанию
PetShop() {}

// Конструктор копирования
PetShop(const PetShop& other) : animals(other.animals) {}

// Деструктор
~PetShop() {}

// Метод добавления животного в магазин
void addAnimal(const Animal& animal) {
animals.push_back(animal);
}

// Метод удаления животного из магазина
void removeAnimal(const std::string& name) {
for (auto it = animals.begin(); it != animals.end(); ++it) {
if (it->name == name) {
animals.erase(it);
break;
}
}
}

// Метод поиска животного по имени
Animal* findAnimal(const std::string& name) {
for (auto& animal : animals) {
if (animal.name == name) {
return &animal;
}
}
return nullptr;
}

// Метод отображения всех животных в магазине
void displayAllAnimals() const {
for (const auto& animal : animals) {
animal.display();
}
}
};

int main() {
PetShop shop;

Animal wolf("Wolf", "Male", "Lobo", 500.0, 2);
Animal penguin("Penguin", "Female", "Penny", 150.0, 5);
Animal dog("Dog", "Male", "Rex", 300.0, 3);

shop.addAnimal(wolf);
shop.addAnimal(penguin);
shop.addAnimal(dog);

std::cout << "All animals in the shop:" << std::endl;
shop.displayAllAnimals();

std::cout << "\nFinding animal named 'Rex':" << std::endl;
Animal* found = shop.findAnimal("Rex");
if (found) {
found->display();
} else {
std::cout << "Animal not found" << std::endl;
}

std::cout << "\nRemoving animal named 'Penny':" << std::endl;
shop.removeAnimal("Penny");
shop.displayAllAnimals();

return 0;
}
Похожие вопросы