ЛР3. Исключительные ситуации

Задание

  1. Разработать класс TPerson, описывающий личность. Класс должен содержать следующие свойства: ФИО (AnsiString), пол(Boolean), дату рождения (TDateTime), номер удостоверения личности (AnsiString), объект отца (TPerson), объект матери (TPerson).

  2. Разработать класс TPersonList, описывающий набор личностей. Класс должен содержать:
    1. Свойство-массив, хранящий экземпляры TPerson
    2. Средства для получения количества, добавления (в конец), удаления (по индексу) личностей.
    3. Дополнительный к основному конструктор для загрузки набора личностей из текстового файла и процедуру, для сохранения набора личностей в текстовом файле. При загрузке-сохранении отца и матери используются их удостоверения личности.
    4. Метод тестирования корректности набора личности.

  3. Разработать набор классов исключительных ситуаций, каждая из которых будет генерироваться в строго определенных случаях:
    1.1 При загрузке файл отсутствует.
    1.2 При загрузке из файла очередное свойство некорректного типа
    1.3 При загрузке файл неожиданно завершается.
    2.1 При сохранении невозможно создать целевой файл.
    3.1 При доступе к свойству-массиву индекс выходит за его пределы.
    4.1 При тестировании корректности обнаружены родители одного пола.
    4.2 При тестировании корректности обнаружены несколько личностей с одним удостоверением личности.
    4.3 При тестировании корректности обнаружен некорректный возраст для одного из родителей (считать детородным возрастом для женщин 12-60 лет, для мужчин 10-70 лет)
    4.4 При тестировании корректности обнаружен прямой или косвенный цикл для одного из родителей

  4. Разработать программ / набор программ для проверки разработанных классов. Обеспечить корректную обработку разработанных исключительных ситуаций.