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

Поток данных: Имя2

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

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

Поток данных: Имя2

Алгоритм:

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

{

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

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

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

{

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

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

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

}

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

запомнить имя человека в хвосте

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

}

Процесс 1.2.1.2. : «Создать».

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

Поток данных: Имя1

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

Поток данных: Имя1

Алгоритм:

Создать нового человека с именем имя1 и полом.

Процесс 1.2.1.3. : «Внести».

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

Поток данных: Имя1

Поток данных: Имя2

Поток данных: Простая связь

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

Поток данных: Имя1

Алгоритм:

Добавить нового человека в хвост списка

if (простейшая связь: отец)

{

у имя2 указатель отец установить на Имя1

у имя1 указатель ребенок установить на Имя2

вывести соответствующее сообщение

}

if (простейшая связь: супруг)

{

у имя2 указатель супруг установить на Имя1

у имя1 указатель супруг установить на Имя2

вывести соответствующее сообщение

}

if (простейшая связь: сын) || (простейшая связь: дочь)

{

у имя1 указатель отец установить на Имя2

if (у имя 2 нет ребенка 1)

{

у имя2 указатель ребенок1 установить на Имя1

вывести соответствующее сообщение

}

else if (у имя 2 нет ребенка 2)

{

у имя2 указатель ребенок2 установить на Имя1

вывести соответствующее сообщение

}

else if (у имя 2 нет ребенка 3)

{

у имя2 указатель ребенок3 установить на Имя1

вывести соответствующее сообщение

}

else

{

детей слишком много

вывести соответствующее сообщение

}

}

if (простейшая связь: супруга)

{

у имя2 указатель супруга установить на Имя1

у имя1 указатель супруга установить на Имя2

вывести соответствующее сообщение

}

Процесс 1.2.2.1. : «Загрузить».

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

Поток данных: Имя Файла Хранилище: Семья Поток данных: Данные

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

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

Алгоритм:

Открыть Имя Файла

InStr=считать весь Имя Файла

Вызвать процесс «Очистить»

while (inStr не пуст)

{

вычленить первую строку //1 строка - имя

if (первый символ='1') мужчина; else женщина

вычленить из первой строки все кроме первого символа

запустить процесс «Поиск» для этого имя

if (не нашел)

{ создать нового человека

добавить в хвост Хранилища Семья

}

вычленить вторую строку //2 строка - отец

if (первый символ ='~')

{

вырезать все кроме первого символа

if (первый символ='1') мужчина; else женщина

вычленить из второй строки все кроме первого символа

запустить процесс «Поиск» для этого имя

if (не нашел)

{

создать нового человека

добавить в хвост Хранилища Семья

}

else

{

у найденного указатель отец установить на строку1

if (строка1 нет детей)

у строка1 указатель ребенок1 установить на найденного

else if (строка1 нет ребенок 2)

у строка1 указатель ребенок2 установить на найденного

else if (строка1 нет ребенок 3)

у строка1 указатель ребенок3 установить на найденного

}

}

вычленить строку 3//3 строка - муж/жена

if (первый символ ='~')

{

вырезать все кроме первого символа

if (первый символ='1') мужчина; else женщина

вычленить из строки3 все кроме первого символа

запустить процесс «Поиск» для этого имя

if (не нашел)

{

создать нового человека

добавить в хвост Хранилища Семья

}

else

{

у найденного указатель супруг установить на строку1

у строка1 указатель супруг установить на найденного

}

}

вычленить строку 4//4 строка - первый ребенок

if (первый символ ='~')

{

вырезать все кроме первого символа

if (первый символ='1') мужчина; else женщина

вычленить из строки3 все кроме первого символа

запустить процесс «Поиск» для этого имя

if (не нашел)

{

создать нового человека

добавить в хвост Хранилища Семья

}

else

{

у найденного указатель ребенок1 установить на строку1

у строка1 указатель отец установить на найденного

}

}

вычленить строку 5//5 строка - второй ребенок

if (первый символ ='~')

{

вырезать все кроме первого символа

if (первый символ='1') мужчина; else женщина

вычленить из строки3 все кроме первого символа

запустить процесс «Поиск» для этого имя

if (не нашел)

{

создать нового человека

добавить в хвост Хранилища Семья

}

else

{

у найденного указатель ребенок1 установить на строку1

у строка1 указатель отец установить на найденного

}

}

вычленить строку 4//6 строка - третий ребенок

if (первый символ ='~')

{

вырезать все кроме первого символа

if (первый символ='1') мужчина; else женщина

вычленить из строки3 все кроме первого символа

запустить процесс «Поиск» для этого имя

if (не нашел)

{

создать нового человека

добавить в хвост Хранилища Семья

}

else

{

у найденного указатель ребенок1 установить на строку1

у строка1 указатель отец установить на найденного

}

}

}

Процесс 1.2.2.2. : «Очистить».

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