- •1 ПОСТАНОВКА ЗАДАЧИ
- •1.1 Описание входных данных
- •1.2 Описание выходных данных
- •2 МЕТОД РЕШЕНИЯ
- •3.5 Алгоритм метода get_parent класса cl_base
- •3.6 Алгоритм метода get_child_by_name класса cl_base
- •3.7 Алгоритм метода print_names класса cl_base
- •3 ОПИСАНИЕ АЛГОРИТМОВ
- •3.1 Алгоритм конструктора класса cl_base
- •3.2 Алгоритм деструктора класса cl_base
- •3.3 Алгоритм метода setName класса cl_base
- •3.4 Алгоритм метода get_name класса cl_base
- •3.8 Алгоритм конструктора класса application
- •3.9 Алгоритм метода build_tree_objects класса application
- •3.10 Алгоритм метода exec_app класса application
- •3.11 Алгоритм конструктора класса cl_node
- •3.12 Алгоритм функции main
- •4 БЛОК-СХЕМЫ АЛГОРИТМОВ
- •5 КОД ПРОГРАММЫ
- •5.1 Файл application.cpp
- •5.2 Файл application.h
- •5.3 Файл cl_base.cpp
- •5.4 Файл cl_base.h
- •5.5 Файл cl_node.cpp
- •5.6 Файл cl_node.h
- •5.7 Файл main.cpp
- •6 ТЕСТИРОВАНИЕ
- •СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
№ |
Предикат |
Действия |
№ |
|
|
|
перехода |
|
|
в массиве children |
|
|
|
|
|
3.8 Алгоритм конструктора класса application
Функционал: Параметризированный конструктор cl_application. Параметры: cl_base* ptr_parent.
Алгоритм конструктора представлен в таблице 9.
Таблица 9 – Алгоритм конструктора класса application |
|
|||
|
|
|
|
|
|
№ |
Предикат |
Действия |
№ |
|
|
|
|
перехода |
|
1 |
|
Вызов конструктора базового класса с аргументами которые являются |
|
|
|
|
аргументами и для конструктора application |
|
|
|
|
|
|
3.9 Алгоритм метода build_tree_objects класса application
Функционал: Строит дерево иерархии. Параметры: нет.
Возвращаемое значение: Отсутствует. Алгоритм метода представлен в таблице 10.
Таблица 10 – Алгоритм метода build_tree_objects класса application |
|
|
|||
|
|
|
|
|
|
|
№ |
Предикат |
Действия |
|
№ |
|
|
|
|
|
перехода |
|
1 |
|
Инициализация указателя par на объект |
класса |
2 |
|
|
|
cl_base значением указателя на данный объект |
|
|
|
|
|
|
|
|
2 |
|
Инициализация указателя sub на объект |
класса |
3 |
|
|
|
|
cl_base значением nullptr |
|
|
|
|
|
|
|
|
3 |
|
Объявление двух переменных строкового типа |
4 |
||
|
|
|
rname и cname |
|
|
|
|
|
|
|
|
4 |
|
Ввод значения переменной rname |
|
5 |
|
|
|
|
|
|
|
17
№ |
Предикат |
|
Действия |
|
№ |
|
|
|
|
|
перехода |
5 |
|
|
Вызов метода setName, принимающего в качестве |
6 |
|
|
|
|
аргумента переменную rname |
|
|
|
|
|
|
|
|
6 |
true = true |
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
Ввод значений переменных rname и cname |
|
8 |
|
|
|
|
|
|
8 |
rname = cname |
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
9 |
sub != nullptr и rname |
не |
par = sub |
|
10 |
|
равно результату вызова |
|
|
|
|
|
метода get_name переменной |
|
|
|
|
|
sub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
10 |
У объекта par нет дочерних |
Создание нового объекта sub класса |
cl_node |
6 |
|
|
объектов с именем cname |
|
(par,cname) с помощью оператора функции new |
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
3.10 Алгоритм метода exec_app класса application
Функционал: Запуска системы. Параметры: нет. Возвращаемое значение: int.
Алгоритм метода представлен в таблице 11.
Таблица 11 – Алгоритм метода exec_app класса application |
|
|||
|
|
|
|
|
|
№ |
Предикат |
Действия |
№ |
|
|
|
|
перехода |
|
1 |
|
Вывод результата работы метода get_name() |
2 |
|
|
|
|
|
2 |
|
Вызов метода print_names() |
3 |
|
|
|
|
|
|
3 |
|
Возврат 0 |
|
|
18
3.11 Алгоритм конструктора класса cl_node
Функционал: Создание объекта элемента дерева. Параметры: cl_base*ptr_parent.
Алгоритм конструктора представлен в таблице 12.
Таблица 12 – Алгоритм конструктора класса cl_node |
|
|||
|
|
|
|
|
|
№ |
Предикат |
Действия |
№ |
|
|
|
|
перехода |
|
1 |
|
Вызов параметризированного конструктора cl_node и передача в него |
|
|
|
|
в качестве параметра значение параметра ptr_parent |
|
|
|
|
|
|
3.12 Алгоритм функции main
Функционал: Основной алгоритм программы. Параметры: нет.
Возвращаемое значение: Целое индикатор корректности выполнение программы.
Алгоритм функции представлен в таблице 13.
Таблица 13 – Алгоритм функции main |
|
|||
|
|
|
|
|
|
№ |
Предикат |
Действия |
№ |
|
|
|
|
перехода |
|
1 |
|
Создание объекта ob_application класса application с использованием |
2 |
|
|
|
параметрезированного конструктора и передачей в него в качестве |
|
|
|
|
параметра пустого указателя |
|
|
|
|
|
|
2 |
|
Вызов метода buildTree объекта ob_ application |
3 |
|
|
|
|
|
|
3 |
|
Возвращение результата работа метода exec_app() для объекта ob_ |
|
|
|
|
|
application |
|
|
|
|
|
|
19
