Разработать класс TPerson, описывающий личность. Класс должен содержать следующие свойства: ФИО (AnsiString), пол(Boolean), дату рождения (TDateTime), номер удостоверения личности (AnsiString), объект отца (TPerson), объект матери (TPerson).
Разработать класс TPersonList, описывающий набор личностей. Класс должен содержать:
1. Свойство-массив, хранящий экземпляры TPerson
2. Средства для получения количества, добавления (в конец), удаления (по индексу) личностей.
3. Дополнительный к основному конструктор для загрузки набора личностей из текстового файла и процедуру, для сохранения набора личностей в текстовом файле.
При загрузке-сохранении отца и матери используются их удостоверения личности.
4. Метод тестирования корректности набора личности.
Разработать набор классов исключительных ситуаций, каждая из которых будет генерироваться в строго определенных случаях:
1.1 При загрузке файл отсутствует.
1.2 При загрузке из файла очередное свойство некорректного типа
1.3 При загрузке файл неожиданно завершается.
2.1 При сохранении невозможно создать целевой файл.
3.1 При доступе к свойству-массиву индекс выходит за его пределы.
4.1 При тестировании корректности обнаружены родители одного пола.
4.2 При тестировании корректности обнаружены несколько личностей с одним удостоверением личности.
4.3 При тестировании корректности обнаружен некорректный возраст для одного из родителей (считать детородным возрастом для женщин 12-60 лет, для мужчин 10-70 лет)
4.4 При тестировании корректности обнаружен прямой или косвенный цикл для одного из родителей
Разработать программ / набор программ для проверки разработанных классов. Обеспечить корректную обработку разработанных исключительных ситуаций.