Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовые / КВ_2.pdf
Скачиваний:
25
Добавлен:
10.06.2024
Размер:
419.1 Кб
Скачать

3 ОПИСАНИЕ АЛГОРИТМОВ

Согласно этапам разработки, после определения необходимого инструментария в разделе «Метод», составляются подробные описания алгоритмов для методов классов и функций.

3.1 Алгоритм метода findObjOnBranch класса cl_base

Функционал: Поиск объекта по имени в ветки дерева иерархии объектов. Параметры: string s_object_name.

Возвращаемое значение: cl_base*. Алгоритм метода представлен в таблице 2.

Таблица 2 – Алгоритм метода findObjOnBranch класса cl_base

 

 

 

 

 

 

 

 

 

 

 

 

 

Предикат

 

Действия

 

 

 

 

 

 

 

 

 

 

перехода

 

1

 

 

 

Инициализация пустого указателя found на объект

2

 

 

 

 

 

класса cl_base

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

Объявление

очереди elementsQueue

которая

3

 

 

 

 

 

принимает указатели на объекты класса cl_base

 

 

 

 

 

 

 

 

3

 

 

 

Добавление в конце очереди elementsQueue

4

 

 

 

 

 

указателя на текущий объект

 

 

 

 

 

 

 

 

4

очередь

elementsQueue

Инициализация указателя elem на объект класса

5

 

 

содержит элементы

cl_base значением первого

элемента в

очереди

 

 

 

 

 

 

elementsQueue

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

5

 

 

 

Удаление

первого

элемента

очереди

6

 

 

 

 

 

elementsQueue

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

имя

объекта

по указателю

 

 

 

 

7

 

 

elem

равно

параметру

 

 

 

 

 

 

 

s_object_name

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

Предикат

 

Действия

 

 

 

 

 

 

перехода

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

7

found != null

Возврат нулевого указателя

 

 

 

 

Присваивание elem к found

 

8

 

 

 

 

 

 

8

 

Инициализация

целочисленной

переменной i

9

 

 

значением 0

 

 

 

 

 

 

 

 

 

9

i < размер вектора children

Добавление в

конец очереди

elementsQueue

10

 

объекта с указателем elem

элемента children[i] объекта elem

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

10

 

Инскремент i

 

 

9

 

 

 

 

 

 

11

 

Возвратить found

 

 

 

3.2 Алгоритм метода findObjOnTree класса cl_base

Функционал: Поиск объекта по имени во всём дереве иерархии объектов. Параметры: string s_object_name.

Возвращаемое значение: cl_base*. Алгоритм метода представлен в таблице 3.

Таблица 3 – Алгоритм метода findObjOnTree класса cl_base

 

 

 

 

 

 

 

 

 

 

 

 

Предикат

 

Действия

 

 

 

 

 

 

 

 

 

перехода

 

1

parent != nullptr

Возврат результата вызова метод findObjOnTree с

 

 

 

 

параметром

s_object_name

по

указателю

 

 

 

 

p_head_object

 

 

 

 

 

 

 

 

 

 

 

 

Возврат результата вызов метода findObjOnBranch

 

 

 

 

с параметром s_object_name

 

 

 

 

 

 

 

 

 

 

 

15

3.3 Алгоритм метода printBranch класса cl_base

Функционал: Вывод дерева иерархии объектов от текущего объекта. Параметры: int level.

Возвращаемое значение: Отсутствует. Алгоритм метода представлен в таблице 4.

Таблица 4 – Алгоритм метода printBranch класса cl_base

 

 

 

 

 

 

 

 

 

 

 

 

Предикат

 

Действия

 

 

 

 

 

 

 

 

 

перехода

 

1

 

Вывод переноса на новую строку

 

 

2

 

 

 

 

 

 

 

 

2

 

Инициализация

целочисленной

переменной

i

3

 

 

 

значением 0

 

 

 

 

 

 

 

 

 

 

 

3

i < level

Вывод четырёх пробелов

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

4

 

Искремент i

 

 

 

3

 

 

 

 

 

 

 

5

 

Вывод имени текущего объекта

 

 

6

 

 

 

 

 

 

 

 

6

 

Инициализация

целочисленной

переменной

i

7

 

 

 

значением 0

 

 

 

 

 

 

 

 

 

7

i < длины вектора children

Вызов метод printBranch с параметром (level + 1)

8

 

 

 

объекта children[i]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

Искремент i

 

 

 

7

 

 

 

 

 

 

 

 

3.4 Алгоритм метода printBranchWithState класса cl_base

Функционал: выполняет вывод иерархии объектов выполняет вывод иерархии объектов (дерева или ветки) и отметок их готовности от текущего объекта.

Параметры: int level.

Возвращаемое значение: Отсутствует. 16

Алгоритм метода представлен в таблице 5.

Таблица 5 – Алгоритм метода printBranchWithState класса cl_base

 

 

 

 

 

 

 

 

 

Предикат

Действия

 

 

 

 

 

 

перехода

 

1

 

Вывод переноса на новую строку

 

2

 

 

 

 

 

 

2

 

Инициализация целочисленной переменной

i

3

 

 

 

значением 0

 

 

 

 

 

 

 

 

3

i < level

Вывод четырёх пробелов

 

4

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

4

 

Искремент i

 

3

 

 

 

 

 

 

5

state != 0

Вывод имени текущего объекта и "is ready"

 

6

 

 

 

 

 

 

 

 

 

Вывод имени текущего объекта и "is not ready"

 

6

 

 

 

 

 

 

6

 

i = 0

 

7

 

 

 

 

 

7

i < длины вектора children

Вызов метод printBranchWithState с параметром

8

 

 

 

(level + 1) объекта children[i]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

Искремент i

 

7

 

 

 

 

 

 

3.5 Алгоритм метода setState класса cl_base

Функционал: устанавливает готовность объекта. Параметры: int state.

Возвращаемое значение: Отсутствует. Алгоритм метода представлен в таблице 6.

Таблица 6 – Алгоритм метода setState класса cl_base

 

 

 

 

 

 

 

 

 

 

 

 

 

Предикат

 

Действия

 

 

 

 

 

 

 

 

 

 

перехода

 

1

parent = nullptr или поле state

Присвоение

скрытому

полю

текущего

объекта

2

 

 

головного объекта !=0

state параметра state

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

2

state = 0

Присвоение

скрытому

полю

текущего

объекта

3

17

Соседние файлы в папке Курсовые