Главная » Просмотр файлов » Техническое описание(ТО)

Техническое описание(ТО) (1079874)

Файл №1079874 Техническое описание(ТО) (Методические указания к лабораторным работам)Техническое описание(ТО) (1079874)2018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

14


Московский государственный технический университет им. Н.Э.Баумана

_________________________________________________________________

УТВЕРЖДАЮ:

Большаков С.А.

"__"_____________201X Г.

Комплексная лабораторная работа/ДЗ по дисциплине ПКШ

“Система классов улиц и домов

Техническое описание

(вид документа)

писчая бумага

(вид носителя)

14

(количество листов)

ИСПОЛНИТЕЛЬ:

студент группы ИУ5-ХХ

_____________________

Большаков С.А.

"__"_____________201X г.







Москва - 201X

________________________________________________________________

СОДЕРЖАНИЕ

1. Общие сведения о программном обеспечении 3

2. Модульная структура программного обеспечения 3

3. Диаграмма классов ПО 4

4. Описание методов и данных классов ПО 4

5. КЛАСС ДОМОВ - Home 5

5.1. Данные и переменные класса Home 5

5.2. Конструкторы класса Home 5

5.3. Методы класса Home 6

6. КЛАСС Улиц - Street 7

6.1. Данные и переменные класса Street 7

6.2. Конструкторы класса Street 8

6.3. Методы класса Street 8

7. Данные и файлы данных программного обеспечения 10

8. Основные алгоритмы методов классов ПО 10

8.1. Алгоритм вычисления признака ремонта. 10

8.2. Алгоритм сложения домов. 11

8.3. Алгоритм сложения двух улиц. 11

8.4. Алгоритм перегрузки операции присваивания улиц. 12

8.5. Алгоритм очистки списка. 12

8.6. Алгоритм добавление дома по номеру. 13

9. Описание процедур и функций ПО 14

10. Описание процесса отладки классов. 14

11. Классы и методы, переопределяемые в ПО 14

1 Общие сведения о программном обеспечении

В данном документе дано техническое описание программного продукта: система классов для работы с улицами и домами. Шифр разработки программной системы – DZ_OOP. Техническое описание включает: описание модулей; описание классов, их методов и свойств; описание диаграммы классов; описание алгоритмов методов и процедур.

Данная система классов предназначена для решения задач, в которых необходимо учитывать объекты типа улица и дом с соответствующими свойствами. В частности система классов может обеспечивать решение задач: оценки ремонта домов и улиц, подсчета числа жителей, квартир и этажей в домах. Система классов предназначена для обеспечения удобной работы с этими объектами, высокий уровень надежности программ, функциональных возможностей, а также сокращение сроков разработки и реализации программных продуктов, где необходимо использовать подобные объекты.

2 Модульная структура программного обеспечения

Система классов включена в один основной и один вспомогательный модуль, характеристики которых приведены в таблице, расположенной ниже.

Состав набора исходных файлов:

Название

Размер и тип

Описание

Примечание

DZ_Class.h

5,2 Кб, текстовый файл

Описания классов

Содержит все необходимые описания классов для использования программного продукта

DZ_Array.cpp

24,8 Кб, текстовый файл

Тестовая программа

Программа предназначена для проверки работоспособности системы классов и проведения приемно-сдаточных испытаний

DZ_LIB.cpp

19,1 Кб, текстовый файл

Описание методов классов и общих данных

Модуль библиотек методов

DZ.h

360 б, текстовый файл

Описание общих данных

Модель общих описаний

DZ_Array.exe

2,36 Мб, исполнимый файл

Тестовая программа

Содержит все необходимое для автономного выполнения в режиме командной строки.

3 Диаграмма классов ПО

Ниже приставлена диаграмма классов системы классов улиц и домов разработанного программного обеспечения (ПО).



Классы имеют следующее назначение:

Класс CObject - системный абстрактный класс для наследования общих свойств объектов системы классов.

Класс AbsStreet - абстрактный класс, в котором учтены общие свойства улиц.

Класс AbsHome - абстрактный класс, в котором учтены общие свойства домов, размещаемых на улицах.

Класс Street - класс улиц, для создания объекта типа улица, позволяющий создавать объекты, учитывающие свойства: название, список домов, число домов и др.

Класс Home - класс дома, позволяющий создавать объекты описывающие дома, в которых учтены свойства: номер, число квартир, число жителей, признак ремонта и др.

4 Описание методов и данных классов ПО

3.4. Общие данные и переменные

В программах, использующих систему классов улиц и домов, применяются следующие глобальные переменные и перечисления.

Описание данных и перечислений

Назначение

Параметры и значения

enum BOOL {false=0 , true};

Логические значения

false , true

static BOOL DestructorDeleteObj;

Глобальный Признак удаления объектов

false , true

enum HomeType{fast, multiple , complex};

Тип дома

Fast - простой,

multiple -многокорпусный,

complex - сложный

enum StreetType{one, two , more };

Тип улицы:

one - односторонняя,

two - двухсторонняя,

more - много полос

enum TypeAddDel {tail, head, Number ,NumbAfter, NumbCurrent, NumbBefore,

AssbAfter, AssCurrent, AssBefore , createObj , nocreateObj , deleteObj, nodeleteObj };

Режим добавления и удаления объектов

head - голова (начало),

tail – хвост (конец),

Numberномер (по номеру).

createObj – новый объект

nocreateObjне создается

deleteObj - удаляется

nodeleteObjне удаляется

5 КЛАСС ДОМОВ - Home

Класс Home. Дом – объекты данного типа содержат информацию о номере дома, этажности, числе жителей и квартир, необходимости ремонта дома и типе дома. Предусматривается возможность изменения параметров дома.

6 Данные и переменные класса Home

В классе Home объявлены следующие свойства доступные пользователю:

Переменная

Тип свойства

Защита

Назначение

Home_Number

char *

public

Номер дома (имя)

iHome

int

public

Номер дома числовой

EtagCount

int

public

Число этажей

MenCount

int

public

Число жителей

TypeHome

HomeType

public

Тип дома (перечисление: простой, многокорпусный, сложный)

NumbApartament

int

public

Число квартир

HomeRemont

BOOL

public

Признак необходимости ремонта дома

7 Конструкторы класса Home

В классе Home описаны следующие конструкторы:

п/п

Прототип

Тип возврата

Назначение /Параметры

Home()

Home &

Нет

Home( Home & H)

Home &

Новый на основе ссылки на объект типа дом:

Home &

Home( Home * pH)

Home &

Новый на основе указателя на объект типа дом:

Home *

Home(const char *HomName, const char *Number)

Home &

Новый с параметрами: HomName - имя

Number - номер дома

Home(const char *HomName, const char *Number, int Numb)

Home &

Новый с параметрами: HomName - имя дома,

Number - номер дома

Numb - номер для поиска

Home(const char *HomName, const char *Number, int Numb, int Etag, int Men=0,HomeType Type = fast,int Apart=0)

Home &

Новый с параметрами: HomName - имя дома,

Number - номер дома

Numb - номер для поиска, Etag - этажность,

Men - число жителей,

Type – тип дома,

Apart - число квартир

8 Методы класса Home

В таблице представлены методы класса Home.

п/п

Прототип

Тип возврата

Назначение

Параметры

void setName(const char *HomName , const char *Number=NULL)

void

Установить имя дома и номер дома

HomName - имя дома и

Number - номер дома

const char *getName()

const char *

Получить имя дома

Нет

const char *getNumb()

const char *

Получить номер дома

Нет

int getNo()

int

Получить номер дома для поиска

Нет

void getParam(int & iH, int & Etag ,int & Men ,HomeType & Type, int & Apart )

void

Получить параметры дома

iH -номер дома,

Etag - этажность,

Men - число жителей,

Type – тип (значение типа дома выбирается из набора перечисления HomeType см. выше),

Apart - число квартир

void setParam(int iH, int Etag ,int Men ,HomeType Type, int Apart )

void

Задать новые параметры дома

iH -номер дома,

Etag - этажность,

Men - число жителей,

Type – тип (значение типа дома выбирается из набора перечисления HomeType см. выше),

Apart - число квартир

void setAllParam(const char *HomName , const char *Number, int iH, int Etag , int Men ,HomeType Type, int Apart , BOOL rem = false)

void

Задать все новые параметры дома

HomName - имя дома,

Number - имя дома для поиска

iH -номер дома,

Etag - этажность,

Men - число жителей,

Type – тип (значение типа дома выбирается из набора перечисления HomeType см. выше),

Apart - число квартир

rem -признак ремонта

virtual void printOn(ostream & out)

void

Печать в стандартный поток

Out – тип ostream

При сложении двух домов суммируются: число квартир, число жителей, имена домов, устанавливается признак ремонта по логике “ИЛИ”. Этажность определяется по числу этажей первого дома. Тип дома задается как сложный (complex).

9 КЛАСС Улиц - Street

Класс Street. Улица – объекты данного типа в упорядоченном виде содержат информацию о домах улице, названии улицы, типе улицы, соседних улицах (как резерв), необходимости ремонта улицы, числе домов, номера улицы (как резерв). Предусматривается возможность добавления домов на улицу и их удаления, изменения других параметров улицы.

10 Данные и переменные класса Street

В таблице приведены свойства класса улиц (Street).

Название

Тип свойства

Защита

Назначение

char *Name_Street;

char *

public

Название улицы

int NumberStreet;

int

public

Номер улицы

int Homes_num;

int

public

Число домов на улице

BOOL Remont;

BOOL

public

Признак необходимости ремонта домов улицы

BOOL RemontStreet;

BOOL

public

Признак ремонта самой улицы

StreetType StrType;

StreetType

public

Тип улицы: one (односторонняя), two (два направления) , more (много полос)

Street * ListOfNear;

Street *

public

Список соседних улиц

( зарезервировано)

11 Конструкторы класса Street

Ниже в таблице приведен список конструкторов класса Street.

п/п

Прототип

Тип возврата

Назначение /Параметры

Street();

Street &

Нет

Street(const char *sName);

Street &

Создание улицы с названием

Street(const char *sNumbSearch, const char *sName);

Street &

Создание улицы с названием и именем для поиска

Street(int Num);

Street &

Создание улицы с номером

Street(const char *sName , int Num);

Street &

Создание улицы с именем и номером

Street(Street & S);

Street &

Создание улицы на основе другой (на основе ссылки)

12 Методы класса Street

п/п

Прототип

Тип возврата

Назначение

Параметры

void add(Home *pH, TypeAddDel T= tail , int Numb = 1 , TypeAddDel TC = createObj);

void

Добавление дома на улицу

pH - указатель на дом

T - куда добавить (head, tail, Number),

TC - создавать ли новый (createObj, nocreateObj )

void del(Home *pH , TypeAddDel T= tail , int Numb = 1 , TypeAddDel TD= nodeleteObj);

void

Удаления дома с улицы

pH - указатель на дом куда выбирается

T - куда добавить (head, tail, Number),

TD - удалять ли объект (deleteObj, nodeleteObj)

virtual void printOn(ostream & out);

void

Печать объекта улицы в стандартный поток

out - ostream стандартный поток

int GetNumberHome();

int

Получить число домов на улице

нет

int GetNumberMens();

int

Получить число жителей на улице

нет

int GetNumberApart();

int

Получить число квартир на улице

нет

char * GetNameStreet();

char *

Получить название улицы

нет

char * GetKeyNameStreet();

char *

Получить номер дома символьный

нет

int GetNumbStreet(){ return NumberStreet;};

int

Получить номер дома числовой

нет

int GetKeyNumbStreet();

int

Получить номер дома числовой для поиска

нет

void SetNameStreet(const char * NameStr);

void

Установить название улицы

NameStr - имя улицы

void SetKeyNameStreet(const char * sName);

void

Установить имя улицы для поиска

sName - имя улицы для поиска

void SetNumbStreet( int n );

void

Установить номер улицы

n - номер улицы

void SetKeyNumbStreet( int n);

void

Установить номер улицы для поиска

n - номер улицы для поиска

BOOL GetRemont();

BOOL

Получить признак ремонта домов на улице

нет

BOOL GetRemontStr();

BOOL

Получить признак ремонта улицы

нет

void SetRemontStr(BOOL rS) ;

void

Установить признак ремонта улицы (false, true)

rS - признак ремонта улицы

StreetType GetStreetType();

StreetType

Получить тип улицы: one (односторонняя), two (два направления) , more (много полос)

нет

void SetStreetType(StreetType t);

void

Установить тип улицы

t – новый тип улицы: one, two , more

Отдельного пояснения методов классов в данном техническом описании не приводиться. В колонке таблицы “Примечания” указана расшифровка необходимых параметров и их значения.

13 Данные и файлы данных программного обеспечения

В системе классов домов и улиц не формируется отдельных файлов. Структуры данных и перечисления для задания параметров приведены в таблице предыдущего раздела (“Общие описания ”).

14 Основные алгоритмы методов классов ПО

Некоторые важные алгоритмы системы классов представлены ниже на рисунках.

15 Алгоритм вычисления признака ремонта.

Алгоритм вычисления признака ремонта домов улицы
(этот параметр задается в объекте улица отдельно) приведен ниже (функция GetRemont() – метод класса Street):

Характеристики

Тип файла
Документ
Размер
635,5 Kb
Тип материала
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов книги

Методические указания к лабораторным работам
ЛР9_ПКШ
ЛР10_ПКШ
ЛР11_ПКШ
ЛР_12_КЛР_ПКШ
ЛР_13_КЛР_ПКШ
ЛР_14_КЛР_ПКШ
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее