Предмет: Информатика, автор: Kukuwka0Ha0DepeBe

С++
Создать лист кинофильмов (название, режиссер, рейтинг, bool 18+).

Используя итераторы, или for each:

1. Реализовать функцию, которая принимает лист фильмов и всех их выводит на экран.
2. Реализовать функцию, которая принимает лист фильмов и имя режиссера, и выводит все фильмы только этого режиссера.

3. Понизить рейтинг всем фильмам режиссера А (любого).

4*. Отсортировать по режиссеру.

5. Удалить все 18+ фильмы.

Ответы

Автор ответа: weinrauchmelinda8130
1

Відповідь:

Снизу

Пояснення:

Ниже приведен пример кода на C++, который выполняет задачи, описанные в вашем вопросе. Пожалуйста, учтите, что это пример, и он может потребовать доработки в зависимости от вашего конкретного использования.

```cpp

#include <iostream>

#include <list>

#include <string>

struct Film {

std::string title;

std::string director;

double rating;

bool is18Plus;

};

// Функция для вывода всех фильмов из списка

void printAllFilms(const std::list<Film>& films) {

for (const Film& film : films) {

std::cout << "Title: " << film.title << ", Director: " << film.director << ", Rating: " << film.rating;

if (film.is18Plus) {

std::cout << " (18+)";

}

std::cout << std::endl;

}

}

// Функция для вывода всех фильмов указанного режиссера

void printFilmsByDirector(const std::list<Film>& films, const std::string& directorName) {

for (const Film& film : films) {

if (film.director == directorName) {

std::cout << "Title: " << film.title << ", Director: " << film.director << ", Rating: " << film.rating;

if (film.is18Plus) {

std::cout << " (18+)";

}

std::cout << std::endl;

}

}

}

// Функция для понижения рейтинга всем фильмам режиссера с заданным именем

void decreaseRatingByDirector(std::list<Film>& films, const std::string& directorName, double decreaseAmount) {

for (Film& film : films) {

if (film.director == directorName) {

film.rating -= decreaseAmount;

}

}

}

// Функция для удаления всех 18+ фильмов из списка

void remove18PlusFilms(std::list<Film>& films) {

films.remove_if([](const Film& film) { return film.is18Plus; });

}

int main() {

// Создаем список фильмов

std::list<Film> films = {

{"Film1", "Director1", 8.2, false},

{"Film2", "Director2", 7.5, false},

{"Film3", "Director1", 6.8, true},

{"Film4", "Director3", 9.0, false},

};

// 1. Выводим все фильмы на экран

std::cout << "All Films:" << std::endl;

printAllFilms(films);

// 2. Выводим фильмы режиссера "Director1"

std::cout << "\nFilms by Director1:" << std::endl;

printFilmsByDirector(films, "Director1");

// 3. Понижаем рейтинг фильмов режиссера "Director1" на 0.5

decreaseRatingByDirector(films, "Director1", 0.5);

// Выводим обновленный список фильмов

std::cout << "\nUpdated Films:" << std::endl;

printAllFilms(films);

// 5. Удаляем все 18+ фильмы

remove18PlusFilms(films);

// Выводим финальный список фильмов после удаления 18+

std::cout << "\nFilms after removing 18+:" << std::endl;

printAllFilms(films);

return 0;

}

```

Этот код демонстрирует основные операции с листом фильмов, как описано в вашем вопросе.

Похожие вопросы
Предмет: Математика, автор: anichka0110
Предмет: История, автор: grabykangelina10