Тема: **Объектно-ориентированное программирование на языке С++**  
**Задание:**  
1. Разработать иерархию родственных типов, корневой класс которой - абстрактный базовый класс, для моделирования и обработки данных предметной области согласно варианта А.х.х
2. Создать обобщенный контейнерный класс (базовый) и от него, используя закрытое наследование, производный класс – шаблон для хранения указателей на абстрактный базовый класс согласно варианта В.х.
3. Для хранения объектов каждого производного класса использовать структуру данных согласно варианта С.х.
4. Реализовать функции обработки данных (сортировка и поиск по выбранным полям и задаваемым диапазонам значений, другие функции, в том числе перегруженные).
5. Реализовать файловый ввод/вывод и ввод данных с клавиатуры, вывод данных на дисплей.
6. Предусмотреть обработку различных исключительных ситуаций.
7. Работа всех функций должна быть проверена и результаты проверки оформлены протоколом тестирования.
  
В части 1 – для создания иерархии родственных типов могут использоваться механизмы как одиночного, так и множественного наследования, рекомендуемое количество уровней иерархии: 3-4.  
В части 2 – число элементов контейнерного класса определяется количеством производных классов иерархии, объекты которых будут создаваться для хранения данных предметной области.  
В части 3 – количество объектов производных классов задается необходимым для тестирования функций обработки данных.  
В части 4 – необходимо предусмотреть полиморфную обработку родственных объектов.  
Оформление пояснительной записки должно выполняться в соответствии с Указаниями к выполнению курсового проекта (работы).  
Вариант А11 - В2 - С8  
А11. Устройства передачи данных  
В2. Динамический вектор  
С8. Очередь