Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик по разработке ПО1.DOC
Скачиваний:
29
Добавлен:
01.05.2014
Размер:
1.97 Mб
Скачать

Хранилище: Семья

Выходные данные:

Хранилище: Семья

Алгоритм:

if (Семья не пуста)

{

запомнить позицию хвоста

запомнить позицию головы

while (голова не ровна хвостуl)

{

удалить текущего человека

}

переместиться к хвосту

удалить текущего человека

}

Процесс 1.2.2.3. : «Сохранить».

Входные данные:

Поток данных: Имя Файла

Хранилище: Семья

Выходные данные:

Поток данных: Данные

Алгоритм:

Создать и Открыть Имя Файла

if (Семья не пуста)

{

запомнить позицию хвоста

запомнить позицию головы

while (голова не ровна хвостуl)

{

сохранить имя текущего человека

if (сравнить это имя с имя1) сохранить указатель

перейти на следующего человека

if (мужчина) add_name+="1"

else add_name+="0"

add_name+=получить имя;

add_name+="\n";

if (нет отца)

add_name+="-\n";

else

{

add_name+="~";

if (отец-мужчина) add_name+="1";

else add_name+="0";

add_name+=получить имя отца;

add_name+="\n";

}

if (нет супругв)

add_name+="-\n";

else

{

add_name+="~";

if (супруг - мужчина)

add_name+="1";

else add_name+="0";

add_name+=получить имя супруга;

add_name+="\n";

}

if (нет ребенка1)

add_name+="-\n";

else

{

add_name+="~";

if (ребенок-мужчина)

add_name+="1";

else add_name+="0";

add_name+=получить имя ребенка;

add_name+="\n";

}

if (нет ребенка2)

add_name+="-\n";

else

{

add_name+="~";

if (ребенок-мужчина)

add_name+="1";

else add_name+="0";

add_name+=получить имя ребенка;

add_name+="\n";

}

if (нет ребенка3)

add_name+="-\n";

else

{

add_name+="~";

if (ребенок-мужчина)

add_name+="1";

else add_name+="0";

add_name+=получить имя ребенка;

add_name+="\n";

}

Записать в Имя Файла add_name

}

3. Разработка физической модели.

3.1. Проектные решения.

  1. Добавить дополнительных родственных связей к уже существующим. (см. таблицу)

  2. Для того чтоб начать работу с системой, необходимо ввести главу семьи.

  3. Семья – это набор людей связанных простейшими родственными связями.

  4. Простейшие родственные связи это:

  • Отец –1

  • Сын – 2

  • Дочь – 3

  • Муж –4

  • Жена – 5

  1. Семья задана в памяти деревом.

  2. Дерево представляет собой сложный объект, элементами которого являются персоны.

  3. Между персонами в дереве двунаправленная связь

  4. Общее число указателей у каждой персоны : 5

  5. В дереве, только персоны мужского пола могут иметь не пустыми указатели на детей.

  6. По умолчанию глава семьи мужского пола, но существует метод сделать главой женщину. (метод рассмотрен в руководстве пользователя).

  7. Для реализации персоны вводится класс СPerson.

  8. Определение «небольшой» семьи – это семья, родственные связи которой не превосходят 4 степени.

  9. Степень родства – необходимое количество преобразований (используя таблицу «Таблица связей») для получения конечной родственной связи (номер от 1 до 32) из таблицы «Связь».

  10. В систему может быть введена семья, размеры которой ограничены лишь оперативной памятью компьютера. Но вычисления родственной связи, возможны только на уровне некоторой локально «небольшой» семьи (поддерево общего дерева семьи).

  11. Количество детей у одного мужчины ограничено тремя, если совершается попытка добавить 4-го ребенка, система выдает соответствующую ошибку.