Предмет:
ИнформатикаАвтор:
david69Відповідь:
Снизу
Пояснення:
Ниже приведен пример кода на 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Добавить свой ответ
Предмет:
Другие предметыАвтор:
finneganbaxterОтветов:
Смотреть
Предмет:
Другие предметыАвтор:
hurstОтветов:
Смотреть
Предмет:
Русский языкАвтор:
moiséswattsОтветов:
Смотреть