Создайте простейшую иерархию классов, моделирующую информацию о кинофильмах и снимавшихся в них актерах
Обработайте простейшие виды ошибок, которые могут возникать в модели, при помощи генерации исключительных ситуаций
Доработайте приложенную тестовую управляющую консольную программу (класс Application), создающую и использующую данную модель
Заготовка прилагается
Создайте простейшую иерархию классов, моделирующую информацию о кинофильмах и снимавшихся в них актерах:
1)класс Movie (кинофильм):
-название;
-год выпуска;
-рейтинг (действительное число от 1 до 10);
-набор жанров (например, триллер + комедия);
-актерский состав (контейнер указателей на объекты Actor);
2)класс MovieActor (киноактер):
-полное имя;
-год рождения;
-пол
-фильмография (контейнер указателей на объекты Movie).
Обработайте простейшие виды ошибок, которые могут возникать в модели, при помощи генерации исключительных ситуаций:
-строковые параметры (имена, названия) не могут быть пустыми;
-названия фильмов и имена актеров не могут повторяться;
-годы выпуска фильмов и рождения актеров не могут быть в будущем;
-рейтинг должен находится в установленном интервале;
-в рамках одного фильма жанры и актеры не могут повторяться;
-в рамках одного актера фильмы не могут повторяться.
Доработайте приложенную тестовую управляющую консольную программу (класс Application), создающую и использующую данную модель:
-самостоятельно создайте произвольный набор объектов иерархии, достаточный для проверки работоспособности и демонстрации реализации - generateTestModel;
-распечатайте название самого старого фильма-боевика - printOldestActionMovie;
-распечатайте имя актера, снявшегося в наибольшем числе фильмов - printMostFrequentlyPlayingActor;
-распечатайте список актеров-мужчин, никогда не игравших в триллерах - printMaleActorsNeverPlayedInThriller;
-распечатайте пару кинофильм-киноактер, если на момент выхода фильма возраст актера был меньше 25 лет - printActorRolesBeforeAgeOf25;
-корректно уничтожьте все созданные объекты в деструкторе.