• С++ Создать лист кинофильмов (название, режиссер, рейтинг, bool 18+). Используя итераторы, или for each: 1. Реализовать функцию, которая принимает лист фильмов и всех их выводит на экран. 2. Реализовать функцию, которая принимает лист фильмов и имя режиссера, и выводит все фильмы только этого режиссера. 3. Понизить рейтинг всем фильмам режиссера А (любого). 4*. Отсортировать по режиссеру. 5. Удалить все 18+ фильмы.

Ответы 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;

    }

    ```

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

    • Автор:

      lolap2yx
    • 1 год назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years