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

3.5 Алгоритм метода build_tree_objects класса application

Функционал: Строит дерево. Параметры: нет.

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

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

 

 

 

 

 

 

 

 

Предикат

 

Действия

 

 

 

 

 

 

перехода

 

1

 

 

 

Объявление строка path, child_name

2

 

 

 

 

 

 

 

2

 

 

 

Объявление целочисленной переменной tmp

3

 

 

 

 

 

 

 

3

 

 

 

Ввод child_name

4

 

 

 

 

 

 

 

4

 

 

 

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

5

 

 

 

 

 

 

 

5

 

 

 

Объявление указателя parent_node_ptr

6

 

 

 

 

 

 

 

6

 

 

 

Инициализация указателя last_created_node_ptr

7

 

 

 

 

 

указателем текущего объекта

 

 

 

 

 

 

 

 

7

 

 

 

Ввод path

8

 

 

 

 

 

 

8

path не равно "endtree"

 

Ввод child_name и tmp

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

Присваивание parent_node_ptr результат вызова

10

 

 

 

 

 

метода get_object_by_path с параметром path

 

 

 

 

 

 

объекта по указателю last_created_node_ptr

 

 

 

 

 

 

 

 

10

parent_node_ptr

не

равен

 

11

 

 

нулю, и у объекта по этому

 

 

 

 

указателю нет подчинённых

 

 

 

 

с именем child_name

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

11

tmp равно 1

 

 

Создание объекта класса application с помощью

12

 

 

 

 

 

оператора new и вызова конструктора с

 

 

 

 

 

 

параметром parent_node_ptr и child_name и

 

 

 

 

 

 

присваивание указателю last_cerated_node_ptr

 

18

Предикат

Действия

 

 

 

 

 

 

 

перехода

 

 

адрес этого объекта

 

 

 

 

 

 

 

 

 

 

tmp равно 2

Создание объекта класса cl_2

с

помощью

12

 

 

оператора new и вызова конструктора с

 

 

 

параметром parent_node_ptr и child_name и

 

 

 

присваивание указателю last_cerated_node_ptr

 

 

 

адрес этого объекта

 

 

 

 

 

 

 

 

 

 

tmp равно 3

Создание объекта класса cl_3

с

помощью

12

 

 

оператора new и вызова конструктора с

 

 

 

параметром parent_node_ptr и child_name и

 

 

 

присваивание указателю last_cerated_node_ptr

 

 

 

адрес этого объекта

 

 

 

 

 

 

 

 

 

 

tmp равно 4

Создание объекта класса cl_4

с

помощью

12

 

 

оператора new и вызова конструктора с

 

 

 

параметром parent_node_ptr и child_name и

 

 

 

присваивание указателю last_cerated_node_ptr

 

 

 

адрес этого объекта

 

 

 

 

 

 

 

 

 

 

tmp равно 5

Создание объекта класса cl_5

с

помощью

12

 

 

оператора new и вызова конструктора с

 

 

 

параметром parent_node_ptr и child_name и

 

 

 

присваивание указателю last_cerated_node_ptr

 

 

 

адрес этого объекта

 

 

 

 

 

 

 

 

 

 

tmp равно 6

Создание объекта класса cl_6

с

помощью

12

 

 

оператора new и вызова конструктора с

 

 

 

параметром parent_node_ptr и child_name и

 

 

 

присваивание указателю last_cerated_node_ptr

 

 

 

адрес этого объекта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

12

 

Вывод path

 

 

8

 

 

 

 

 

 

19

3.6 Алгоритм метода exec_app класса cl_base

Функционал: Отработка приложения. Параметры: нет.

Возвращаемое значение: int, код завершения программы. Алгоритм метода представлен в таблице 7.

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

 

 

 

 

 

 

 

 

 

 

 

Предикат

 

Действия

 

 

 

 

 

 

 

 

перехода

 

1

 

Вывод "Object tree"

 

 

2

 

 

 

 

 

 

 

2

 

Вызов метода printBranch

 

 

3

 

 

 

 

 

3

 

Объявление строк command, input, инициализация

4

 

 

 

строки curPath, указателей curObj значением this и

 

 

 

 

foundObj значением nullptr

 

 

 

 

 

 

 

 

 

 

 

4

Из потока можно считать

 

 

 

 

8

 

 

command

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

5

 

Вывод с новой строки "Current object hierarchy"

6

 

 

 

 

 

 

 

6

 

Вызов метода printBranch

 

 

7

 

 

 

 

 

 

 

 

7

 

Возврат 0

 

 

 

 

 

8

command равно "END"

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

9

command равно "SET"

Ввод input

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

10

 

foundObj

присвоить

результат

вызова

11

 

 

 

get_object_by_path с аргументом input у curObj

 

 

 

 

 

 

11

foundObj не nullptr

curObj присвоить findObj, curPath присвоить input

12

 

 

 

 

 

 

 

 

Вывод с новой строки "The object was not found the

4

 

 

 

specified coordinate: ", input

 

 

 

 

 

 

 

 

 

12

 

Вывод с новой строки "Object is set: "

 

4

 

 

 

 

 

 

 

 

 

13

command равно "FIND"

Ввод input

 

 

 

14

20

Предикат

 

 

Действия

 

 

 

 

 

 

 

 

 

 

перехода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

14

 

 

 

 

foundObj

присвоить

результат

вызова

15

 

 

 

 

 

get_object_by_path c аргументом input у curObj

 

 

 

 

 

 

15

foundObj не nullptr

 

Вывод с новой строки input, " Object name: ", имя

4

 

 

 

 

 

foundObj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

16

command равно "MOVE"

 

Ввод input

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

foundObj

присвоить

результат

вызова

18

 

 

 

 

 

get_object_by_path с параметром input у curObj

 

 

 

 

 

 

 

 

18

результат

 

set_parent

у

Вывод с новой строки "New head object: ", имя у

4

 

curHead

с

параметром

foundObj

 

 

 

 

 

foundObj истина

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

19

foundObj равен nullptr

 

Вывод с новой строки input, " Head object is not

4

 

 

 

 

 

found"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

20

Вызов get_child_by_name

у

Вывод с новой строки input, " Dubbing the names of

4

 

curHead

с

параметром

subordinate objects"

 

 

 

 

curHead не nullptr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

21

Результат

 

set_pearent

у

Вывод с новой строки input, " Redefining the head

4

 

curHead

с

параметром

object failed"

 

 

 

 

 

foundObj не nullptr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

22

command равно "DELETE"

 

Объявление строки path

 

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

23

 

 

 

 

Ввод input

 

 

 

24

 

 

 

 

 

 

 

 

 

 

21

Предикат

Действия

 

 

 

перехода

24

Результат get_child_by_name

Вызов remove_child_by_name c параметром input у

25

 

у curObj с параметром input

curObj

 

 

не nullptr

 

 

 

 

 

 

 

 

 

4

 

 

 

 

25

 

path присвоить curPath + "/" + input

26

 

 

 

 

26

 

Вывод с новой строки "The object", path, " has been

4

 

 

deleted"

 

 

 

 

 

22

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