ЛР1. Инкапсуляция, разработка классов, создание и применение объектов

Используя в качестве основы ЛР4 с прошлого полугодия, разработать ее ООП-решение со следующими требованиями:
  1. (30) Разработать класс TCustomPerson, включающий в себя персональные данные отдельной личности и средства доступа к ним Разработать класс TPerson(TCustomPerson), включающий в себя средства обработки персональных данных отдельной личности
  2. (30) Разработать класс TCustomPersonDB, для хранения объектов TCustomPerson и производных. Разработать класс TPersonDB(TCustomPerson), для обработки объектов TPerson
  3. (20+20) Разработать класс TPersonDBWorker, для обработки объекта TPerconDB.
Требования к классу TCustomPerson:
  1. Все поля класса - строго приватные. Поле-массив детей должен содержать объекты TCustomPerson и производных.
  2. Методы доступа к полям класса для чтения и (при необходимости) записи их содержимого. Методы доступа к объектам массива детей, как по индексу, так и по идентификатору, метод добавления объектов в массив детей.
Требования к классу TPerson:
  1. Методы чтения и записи в текстовый файл состояния объекта. Файловая переменная передается параметром методов, предполагается, что файл заранее открыт.
  2. Метод чтения со стандартного потока ввода состояния объекта. Метод записи на стандартный поток вывода состояния объекта.
Требования к классу TCustomPersonDB:
  1. Все поля класса - строго приватные. Поле-массив персон должен содержать объекты TPerson.
  2. Методы доступа к полям класса для чтения и (при необходимости) записи их содержимого. Методы добавления и удаления объектов из массива персон. Методы получения индекса персоны по идентификатору и по объекту TPerson. Методы получения объекта TPercon по индексу в массиве персон.
Требования к классу TPersonDB:
  1. Методы чтения и записи в текстовый файл состояния массива персон. Имя файла передается параметром методов.
  2. Метод чтения со стандартного потока ввода состояния массива персон. Метод записи на стандартный поток вывода состояния массива персон.
Требования к классу TPersonDBWorker:
  1. Все поля класса - строго приватные.
  2. Конструктор в качестве параметра принимает объект TPersonDB.
  3. Методы, решающие задачи 2.1-2.4 ЛР4 с прошлого полугодия