Указание: Решить как минимум 3 любых задания из ниже перечисленных. Цель этой работы научится создавать и проектировать классы со структурой произвольной сложности из РАЗЛИЧНЫХ ПРЕДМЕТНЫХ ОБЛАСТЕЙ - изюминка - в процессе решения задач вам возможно придеться РАЗОБРАТЬСЯ САМИМ с предметными областями ПЕРЕД СОСТАВЛЕНИЕМ (ПРОЕКТИРОВАНИЕМ) КЛАССОВ -именно!! не в процессе проектирования а ПЕРЕД ним, до того как вы начнете проектировать структуру классов и тем более программировать ее. ВНИМАНИЕ!! разбираться в предметных областях нужно лишь в той степени, которя НЕОБХОДИМА для решения задач.
- Создать классы, спецификации которых приведены ниже. Определить кон- структоры и методы setТип(), getТип(), toString(). Определить дополнительно методы в классе, создающем массив объектов. Задать критерий выбора данных и вывести эти данные на консоль. В каждом классе, обладающем информацией, должно быть объявлено несколько конструкторов:
Поезд: Пункт назначения, Номер поезда, Время отправления, Число мест (общих, купе, плацкарт, люкс - вид посадочных мест задать перечислением). Создать массив объектов. Вывести: a) список поездов, следующих до заданного пункта назначения; b) список поездов, следующих до заданного пункта назначения и отправ- ляющихся после заданного часа; c) список поездов, отправляющихся до заданного пункта назначения и имеющих общие места.
-
Определить класс Точка на плоскости (в пространстве) и во времени. Задать движение точки в определенном направлении (по прямой) заданном еденичным вектором закон движения считать квадратичным (S(t) = At^2+Bt+C здесь A B C - некоторые заданные вещественные числа которые определяют КОНКРЕТНЫЙ закон движения - изменение пройденного вдоль прямой пути S от времени t). Создать методы по определению скорости и ускорения точки. Проверить для двух точек возможность пересечения траекторий. Определить расстояние между дву- мя точками в заданный момент времени.
-
Определить класс Вектор. Реализовать методы для вычисления модуля вектора, скалярного произведения, сложения, вычитания, умножения на константу. Объявить массив векторов. Написать метод, который для за- данной пары векторов будет определять, являются ли они коллинеарными или ортогональными.
-
Определить класс Множество символов. Реализовать методы для опре- деления принадлежности заданного элемента множеству; пересечения, объединения, разности двух множеств. Создать методы сложения, вычи- тания, умножения (пересечения), индексирования, присваивания. Создать массив объектов и передавать пары объектов в метод другого класса, ко- торый строит множество, состоящее из элементов, входящих только в одно из заданных множеств.