|
Курсовая работа по дисциплине Объектноориентированное программирование
Описание алгоритма Согласно этапам разработки, после определения необходимого инструментария в разделе «Метод», составляются подробные описания алгоритмов для методов классов и функций. Класс объекта: Base
Модификатор доступа: public
Метод: get_object_by_path
Функционал: возвращает указатель на искомый объект в составе дерева иерархии объектов по пути или координате Параметры: string path - путь к искомому объекту или его координата
Возвращаемое значение: Base*, указатель на искомый объект
Алгоритм метода представлен в таблице 2.
Таблица 2. Алгоритм метода get_object_by_path класса Base
№
| Предикат
| Действия
| № перехода
| Комментарий
|
| 1
|
| Объявление строковой
| 2
|
|
|
| переменной name
|
|
|
|
|
|
|
|
|
| Присвоение переменной
|
|
|
|
| Второй
| name результата вызова
|
|
|
| 2
| символ в path
| метода substr переменной
| 3
|
|
| - '/'
| path с аргументами 2 и
|
|
|
|
|
| "длина path" - 2
|
|
|
|
|
|
| 4
|
|
|
|
| Возврат результата вызова
| ∅
|
|
| 3
|
| метода get_object_by_name с
|
|
|
|
| аргументом name
|
|
|
| 4
|
| Инициализация
| 5
|
|
|
|
| целочисленной переменной
|
|
|
|
11
|
| start со значением 1 и end со
|
|
|
|
|
| значением длины path
|
|
|
|
|
| Инициализация
|
|
|
| 5
|
| целочисленной переменной i
| 6
|
|
|
|
| со значением 1
|
|
|
|
| i меньше
|
| 7
|
|
| 6
| длины path
|
|
|
|
|
|
|
|
|
|
| 10
|
|
|
| i-ый символ
|
| 8
|
|
| 7
| path - '/'
|
|
|
|
|
|
|
|
|
|
| 9
|
|
|
| start равен -1
| Присвоение переменной start
| 9
|
|
| 8
| значения i
|
|
|
| Присвоение переменной end
| 10
|
|
|
|
|
|
|
|
| значения i
|
|
|
| 9
|
| Увеличение значения i на 1
| 6
|
|
|
| start равен -1
| Возврат указателя на данный
| ∅
|
|
|
|
| объект
|
|
|
| 10
|
| Присвоение переменной
|
|
|
|
| name результата вызова
|
|
|
|
|
| метода substr переменной
| 11
|
|
|
|
| path с аргументами start + 1 и
|
|
|
|
|
| end - start - 1
|
|
|
|
|
| Объявление строковой
|
|
|
| 11
|
| переменной
| 12
|
|
|
|
| child_object_name
|
|
|
|
|
| Инициализация указателя
|
|
|
| 12
|
| child_object на первый
| 13
|
|
|
| объект в массиве
|
|
|
|
|
|
|
|
|
| children_object_list
|
|
|
|
|
| Присвоение переменной
|
|
|
|
| child_object не
| child_object_name результата
|
|
|
|
| равен
| вызова метода
| 14
|
|
| 13
| нулевому
| get_object_name объекта, на
|
|
|
| указателю
| который указывает
|
|
|
|
|
| child_object
|
|
|
|
|
|
| 17
|
|
|
12
|
| Присвоение переменной
|
|
|
| child_object_n
| name результата вызова
|
|
| 14
| ame равен
| метода substr переменной
| 15
|
| name
| path с аргументами start и
|
|
|
|
| "длина path" - start
|
|
|
|
|
| 16
|
|
|
| Возврат результата вызова
|
|
|
|
| метода get_object_by_path
| ∅
|
| 15
|
| объекта, на который
|
|
|
| указывает child_object, с
|
|
|
|
| аргументом name
|
|
|
|
| Направление указателя
|
|
| 16
|
| child_object на следующий
| 13
|
|
| объект в массиве
|
|
|
|
|
|
|
| children_object_list
|
|
| 17
|
| Возврат нулевого указателя
| ∅
|
| |
|
|