Техническое описание(ТО) (1079874), страница 2
Текст из файла (страница 2)
Рис. 1 Вычисление признака ремонта домов улицы
Для вычисления признака ремонта домов улицы выполняется просмотр всех домов из списка и , при наличии, хотя бы одного признака ремонта у одного из домов признак ремонта (Remont) устанавливается в истину. Функция в этом случае возвращает тоже значение истина.
16 Алгоритм сложения домов.
А
лгоритм сложения двух домов (Н1 и Н2) приведен ниже (перегруженная с помощью внешней функции операция сложения – дружественная классу Home):
Рис. 2 Сложение двух домов
Сначала проверяются значения полей с именами, после чего выполняется конкатенация имен для номера дома и поиска. Другие характеристики домов, кроме этажности, суммируются.
17 Алгоритм сложения двух улиц.
А
лгоритм сложения двух улиц (X и Y) приведен ниже (перегрузка выполнена внешней дружественной классу Street операцией):
Рис. 3 Сложение двух улиц
Первоначально выполняется проверка и формирование названия улицы, как сложение двух имен. Кроме того, аналогичным образом вычисляется имя для поиска в списке. Далее выполняются два цикла добавления на новую улицу всех домов из первой улицы (X) и второй улицы (Н).
18 Алгоритм перегрузки операции присваивания улиц.
А
лгоритм перегрузки операции присваивания двух улиц (текущей – this и из параметра S) приведен ниже (перегрузка выполнена внутренней для класса Street операцией “=”):
Рис. 4 Перегрузка оператора присваивания улиц
В данном алгоритме первоначально выполняется определение параметров name (имя для поиска улиц в списках) и Name_Street (название улиц). Затем присваиваются все параметры улицы. Для копирования списков домов используется перегруженный оператор присваивания списков, который вызывается с помощью следующего присваивания:
(List &) *this = S ;
Явное приведение к типу ссылки на список является в данном случае необходимым.
19 Алгоритм очистки списка.
А
лгоритм очистки списка (метод класса List - ClearList) приведен ниже:
Рис. 5 Очистка списка
20 Алгоритм добавление дома по номеру.
А
лгоритм добавления дома по номеру (метод класса List - AddNumber) приведен на рисунке расположенном ниже:
Рис. 6 Добавление дома по номеру
В этом алгоритме после любого вызова метода нижнего уровня добавления (AddHead, AddTail и связывания списков) выполняется новая нумерация списка( Renember). Если параметр t (тип - TypeAddDel) имеет значение CreateObj, то создается новый объект.
21 Описание процедур и функций ПО
Система классов улиц и домов содержит две процедуры являющиеся дружественными функциями классов Home и Street
Класс | Прототип | Параметры | Назначение | Примечания |
Класс Home | friend Home & operator +(Home & H1 , Home & H2) | Ссылки на дома (Н1 и Н2), подлежащие объединению | Складываются два дома | При сложении домов объединяются: их символьные названия, вычисляются все характеристики нового дома: число жителей и квартир, признак ремонта. Число этажей устанавливается по первому дому |
Класс Street | friend Street & operator +( Street & X , Street & Y ); | Ссылки на улицы (Н1 и Н2), подлежащие объединению | Операция сложения двух улиц | При сложении улиц имена их складываются, списки складываются, вычисляются: признаки ремонта улиц и домов на улице и типы улиц |
22Описание процесса отладки классов.
В процессе отладки были проверены все методы и свойства. Для этого был разработан специальный тестовый пример, листинг которого включен в документ, содержащий исходные тексты программ и комплект поставки программного продукта. Отладка проводилась стандартными средствами MS VS.
23 Классы и методы, переопределяемые в ПО
В данном ПО никакие стандартные классы и методы стандартных классов не переопределяются.