- •Пояснительная записка
- •1.5. Требования к программной документации
- •1.6. Стадии этапа разработки
- •1.7. Порядок контроля и приемки.
- •2. Разработка логической модели
- •2.1. Словарь данных.
- •2.5. Алгоритмы процессов.
- •Поток данных: Запрос1 Хранилище: Семья
- •Поток данных: Ответ1
- •Поток данных: Ответ1
- •Поток данных: Имя2
- •Поток данных: Имя Файла Хранилище: Семья Поток данных: Данные
- •Поток данных: Имя
- •Хранилище: Семья
- •3. Разработка физической модели.
- •3.1. Проектные решения.
- •3.2. Структура представления основных данных.
- •3.2.1. Виды родственных связей.
- •3.2.2. Структура дерева.
- •3.2.3. Формат файла.
- •3.3. Разработанные классы.
- •3.3.1 Описание классов.
- •3.3.2. Взаимосвязь классов.
- •3.3.3. Динамическое поведение объектов.
- •Приложение Пример формата файла
- •Приложение: Описание интерфейса (на правах руководства пользователя)
- •Текст разработанной программы.
3.3.2. Взаимосвязь классов.
Основным классом программы является CfamilyDlg, экземпляр этого класса контролирует работу основного диалогового окна. При необходимости, а точнее при некоторых событиях создает экземпляры других классов в соответствующих методах обработки событий.
Также этот метод хранит указатель на начало списка персон, и таким образом отвечает за их удаление, при окончании работы программы.
В случае события – нажатие кнопки «Добавление» создается экземпляр класса CpersonDlg, который при создании инициализирует новое диалоговое окно «Добавление» и контролирует работы программы до ее закрытия.
Когда добавляются новые персоны в семью, вызывается конструктор класс Cperson, где создается новая персона и заполняется одно из её ссылок, в зависимости от рода введенной связи.
3.3.3. Динамическое поведение объектов.
Основным объектом программы является персона, поля-связи которой образуют дерево семьи. Первичным состоянием для этого объекта является – вновь созданная персона, в котором он может остаться на совсем. В этом состоянии инициализированы 3 поля - данных: имя, пол и указатель на другого члена семьи. Переход от такого состояния к следующим осуществляется при добавлении новой персоны, связанной с данной, в этом случае заполняется еще одно поле-указатель, указывающий на новую персону.
3.3.4. Порядок событий.
Порядок возможных событий подробно изображен в ST-диаграмме.
Заключение.
Разработанная программа позволяет наглядно определять родственные связи в небольшой семье. В ней эффективно используется возможность работы с файлами - сохранения и загрузки.
К достоинствам программы можно отнести:
Неограниченность размера вводимой семьи (ограничивается только размерами оперативной памяти компьютера).
Эффективный механизм определения родственной связи между двумя людьми.
Наглядный интерфейс, помогающий начинающему пользователю в работе.
Обширная документация.
Контроль входных данных на ошибки
Контроль за непротиворечивостью входных данных.
Наличие Возможности автоматически обходить ошибочные ситуации.
К недостаткам программы можно отнести:
не иерархическое дерево вывода данных
отсутствие контроля ввода 4-го ребенка (на первой стадии)
отсутствие контроля корректности входного файла
отсутствие контроля правильности данных считываемых из файла
Все перечисленные недостатки без особых сложностей могут быть исправлены в последующих версиях программы. В процессе разработки программы были разработаны гибкие структуры данных, которые можно использовать в дальнейшем. И на конец процесс разработки и написания технической документации позволил обогатить и развить опыт разработчиков в данной сфере.
Характеристики программы:
размер программы в КЧИК – 1800
перечисление работ – смотри таблицу этапов разработки
объем работы (в %) выполненной каждым исполнителем.
Крохмаль – 55%
Танкуа - 45%
Приложение Пример формата файла
1Иван
-
~0Елизавета
~1Сергей
-
-
1Сергей
~1Иван
~0Мария
~1Борис
~1Олег
~0Александра
0Мария
~1Гена
~1Сергей
-
-
-
1Борис
~1Сергей
-
-
-
-
1Олег
~1Сергей
-
-
-
-
0Александра
~1Сергей
-
-
-
-
1Гена
~1Дима
~0Оля
~0Мария
~1Лёлик
-
1Дима
-
-
~1Гена
-
-
0Оля
~1Петя
~1Гена
-
-
-
1Лёлик
~1Гена
-
-
-
-
1Петя
-
~0Ира
~0Оля
~1Гоша
-
0Ира
-
~1Петя
-
-
-
1Гоша
~1Петя
~0Надя
~1Стас
~1Арамис
-
0Надя
-
~1Гоша
-
-
-
1Стас
~1Гоша
~0Яна
~0Вера
~0Катя
-
1Арамис
~1Гоша
-
-
-
-
0Яна
-
~1Стас
-
-
-
0Вера
~1Стас
-
-
-
-
0Катя
~1Стас
~1Митя
-
-
-
1Митя
-
~0Катя
~0Юля
-
-
0Юля
~1Митя
~1Вова
-
-
-
1Вова
-
~0Юля
-
-
-
0Елизавета
-
~1Иван
-
-
-