4. Перебирая всех людей, записываем последовательно их в файл. Причем вместо ссылок на TPeople устанавливаем численное значение (это порядковый номер в списке Peoples класса TManager).
5. Перебирая все браки, записываем последовательно их в файл. Причем вместо ссылок на TPeople устанавливаем численное значение (это порядковый номер в списке Peoples класса TManager).
6. Закрываем файл.
5. Интерфейс
Элементы управления:
1. Переход к отцу, матери, брату, сестре соответственно, для просмотра их информации.
2. Добавление информации нового человека и одновременно установка необходимой связь родства.
3. Удаление информации о текущей связи с выбранным человеком.
4. Добавление связи родства, выбором человека, который уже находится в программе.
5. Переход к редактированию информации выбранного человека
6. Удаление информации и связи выбранного человека
7. Удаление информации и связи всех людей
8. Форма фильтра
9. Область отображения
Порядок работы пользователя с программой:
Для добавления информацию о новом человека можно нажав на кнопку “Добавить”. Если нужно добавить информацию нового человека и одновременно установить необходимую связь родства, то нужно воспользоваться кнопкой (2).
Для редактирования или удаления информации человека необходимо выбрать нужного человека из “Области отображения” (9). Потом нажать на кнопку “Редактировать” (5) или “Удалить” (6) соответственно.
Для установления необходимой связи между людьми нужно воспользоваться кнопками (2) или (4). С помощью кнопки (2)можно добавит информацию о новом человеке, и создать с ним соответствующую связь. С помощью кнопки (4) можно выбрать человека из уже имеющихся людей в программе и установит с ним связь.
Для удаления связи необходимо выбрать человека, с которым эта связь установлена из области (1), с последующим нажатием на кнопку (3).
Для удаления все информацию и связей людей из программы можно воспользоваться кнопкой “Очистить” (7).
Для графического представления человека необходимо выбрать нужного человека из “Области отображения” (9) и нажать на кнопку “Нарисовать дерево”.
6. Вывод
В результате проделанной работы удалось:
1. Создать сложную структуру данных, которая позволяет при малых затратах памяти сделать процесс обработки объектов структуры более быстрым.
2. Сделать возможность произвольно добавления, удаление, изменение информации о людях, а также управление различными связями между ними.
3. Сделать возможность сохранения и загрузки всей информации о людях и их связях из файла.
4. Сделать возможность графическое представление выбранного человека по 4-е уровням.
5. Сделать интерфейс, который удобен и понимаем на интуитивном уровне. Пользователь может с легкостью управлять все предоставленным ему функционалом.
6. Полностью реализовать все поставленные в рамках курсовой работы задачи.
7. Приложение
type
TPeople = class;
TMarriage = class;
TRFilter = record
Sort: Boolean;
Family: string;
Name: string;
Patronymic: string;
Children: Integer;
Marriage: Integer;
Sex: Integer;
Parent: Integer;
Brother: Integer;
end;
TRPeople = record
Family: string;
FamilyFirst: string;
Name: string;
Patronymic: string;
Sex: Boolean;
Father: TPeople;
Mother: TPeople;
PlaceOfBirth: string;
PlaceOfDeath: string;
DateOfBirth: string;
DateOfDeath: string;
Commentary: string;
end;
TRSLPeople = record
Family: string[100];
FamilyFirst: string[100];
Name: string[100];
Patronymic: string[100];
Sex: Boolean;
Father: Integer;
Mother: Integer;
PlaceOfBirth: string[100];
PlaceOfDeath: string[100];
DateOfBirth: string[100];
DateOfDeath: string[100];
Commentary: string[255];
end;
TRMarriage = record
Family: string;
Husband: TPeople;
Wife: TPeople;
DateOfStart, DateOfEnd: string;
Commentary: string;
end;
TRSLMarriage = record
Family: string[100];
Husband: Integer;
Wife: Integer;
DateOfStart, DateOfEnd: string[100];
Commentary: string[255];
end;
TRManager = record
CountPeople: Integer;
CountMarriage: Integer;
end;
TPPeople = procedure (People: TPeople);
TPMarriage = procedure (Marriage: TMarriage; Him: Boolean = true);
TPParentPeople = procedure (People, Children: TPeople);
{Класс Браков}
TMarriage = class
public
Family: string;
Husband: TPeople;
Wife: TPeople;
DateOfStart, DateOfEnd: string;
Commentary: string;
destructor Destroy(); override;
protected
constructor Create(RMarriage: TRMarriage);
end;
{Класс Человекоподобных, :)}
TPeople = class
public
Family: string;
FamilyFirst: string;
Name: string;
Patronymic: string;
Sex: Boolean;
Father: TPeople;
Mother: TPeople;
PlaceOfBirth: string;
PlaceOfDeath: string;
DateOfBirth: string;
DateOfDeath: string;
Commentary: string;
destructor Destroy(); override;
procedure AddChildren(People: TPeople);
procedure DeleteChildren(People: TPeople);
function ValidatePara(People: TPeople): Boolean; //Если ли брак с этим человеком
function ValidateBrother(People: TPeople): Boolean; //Если ли Братом/Сестрой с этим человеком
function getBrothers(): TObjectList;
function getChildrens(): TObjectList;
//Дети у которых отец/мать не является мужем/женой данного человека
function getChildrensNotParentOfSuprug(): TObjectList;
//Все Браки (с другим человек в браке), у которыйх пересекаются дети
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.