МУ_ДЗ_2014 (1079920), страница 20

Файл №1079920 МУ_ДЗ_2014 (Методические указания к лабораторным работам) 20 страницаМУ_ДЗ_2014 (1079920) страница 202018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 20)

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

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

Система классов позволяет программировать следующие операции и функции:

  • Создание и задание свойств объектов типа дом и улица;

  • Установка признака ремонта домов;

  • Сложение двух домов;

  • Получение параметров домов (номера, числа жителей, числа квартир, типа дома);

  • Установки и изменения параметров дома (номера, числа жителей, числа квартир, типа дома);

  • Удаление объектов типа дом и улица;

  • Распечатки свойств объектов типа дом и улица;

  • Добавление домов на конкретную улицу;

  • Удаление дома с конкретной улицы;

  • Сложение двух улиц (при объединении улиц);

  • Переименование улиц и новую нумерацию домов;

  • Распечатки списка домов улицы с их характеристиками;

  • Получение параметров улицы (названия, числа жителей, числа квартир, типа улицы);

  • Установки и изменения параметров улицы (названия, числа жителей, числа квартир, типа улицы);

  • Автоматическое получение признаков необходимости ремонта домов на улице.

2.2. Диаграмма классов программного продукта

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

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

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

боту со списками (включение, просмотр, удаление, печать и др.).

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

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

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

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

3. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ПРОГРАММНОГО ПРОДУКТА

Основные характеристики программного обеспечения сведены в таблицу, расположенную ниже. Содержание файлов представлено в документе “Исходные тексты программ”. Описание возможностей программного обеспечения даны в документе “Руководство пользователя” и “Описание тестового примера”. Действия необходимые для установки программного продукта представлены в документе “Руководство системного программиста”. Состав набора исходных файлов:

Название

Размер и тип

Описание

Примечание

DZ_2kurs.h

32,4 Кб, текстовый файл

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

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

DZ_2kurs.cpp

12,9 Кб, текстовый файл

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

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

DZ_2kurs.exe

114,7 Кб, исполнимый файл

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

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

4. УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММНОГО ПРОДУКТА

4.1. Требования к составу и параметрам технических средств

Данная система классов должна использоваться на компьютерах следующей конфигурации:

4.1.1. IBM-совместимый компьютер с процессором 80486 и выше;

4.1.2. Не менее 1 Мбайт свободной оперативной памяти;

4.1.3. VGA-совместимый видеоадаптер и монитор;

4.1.4. Стандартная клавиатура;

4.1.5. Свободного места на жёстком диске не менее 200 Кбайт.

4.2. Требования к информационной совместимости

Разрабатываемые классы и наследуемые от них классы не должны конфликтовать по именам с уже существующими классами в VS MS 2005 (библиотеки MFC, ATL, FCL и CRL).

4.3. Требования к программному обеспечению

4.3.1. Данная система классов предназначена для использования в программах, выполняемых на компьютере под управлением системы Microsoft Windows 2000 и выше. Использование разрабатываемой библиотеки требует наличия компилятора языка С++ и системы программирования (MS VS 2005).



4.4. Требования к условиям эксплуатации

4.4.1. Данная система классов должна эксплуатироваться совместно с языком программирования С++ в среде MS VS 2005/2008/2010. Для работы с данной системой классов программист должен быть знаком с навыками объектно-ориентированного программирования.

4.4.2.В остальном требования к эксплуатации точно такие же, как к программной реализации языка С++, используемой совместно с данной системой классов.

4.4.3.Программа тестового примера для проведения испытаний должна работать в среде компьютера, без установленной системы программирования MS VS 2005/2008/2010.



4.5. Требования к маркировке и упаковке

Программа предоставляется на дискете 3,5'' или CD/DVD носителе.

4.6. Требования к хранению

Программа хранится на дискете 3,5'' или CD/DVD носителе.

5. ОБЩИЕ ХАРАКТЕРИСТИКИ ПРОГРАММНОГО ПРОДУКТА

Система классов позволяет хранить списки домов на улицах.

Занимаемый объем на ЖД исходными текстами: 200 Кбайт

Занимаемый объем на ЖД для повторения сборки проекта: 45 Мбайт

Количество пользовательских классов: 2

Общее количество классов: 7

Язык программирования

С++

Компилятор, компоновщик

MS VS 2005/2008/2010

Файл проекта (*.vcproj)

DZ.vcproj

Стандартные заголовочные файлы библиотеки MS VS 2005.

iostream, string.h, stdafx.h, conio.h

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

_________________________________________________________________

УТВЕРЖДАЮ:

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

"__"_____________201X Г.

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

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

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

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

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

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

15

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

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

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

_____________________

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

"__"_____________201X г.







Москва - 201X

________________________________________________________________





СОДЕРЖАНИЕ

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

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

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

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

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

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

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

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

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

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

6.5. Очистка списка. 14

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

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

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

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

1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ

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

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

2. МОДУЛЬНАЯ СТРУКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

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

Название

Размер и тип

Описание

Примечание

DZ_2kurs.h

32,4 Кб, текстовый файл

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

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

DZ_2kurs.cpp

12,9 Кб, текстовый файл

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

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

DZ_2kurs.exe

114,7 Кб, исполнимый файл

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

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

3. ДИАГРАММА КЛАССОВ ПО

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



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

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

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

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

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

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

4. ОПИСАНИЕ МЕТОДОВ И ДАННЫХ КЛАССОВ ПО

Описание классов, их свойств и методов приведены в таблице.

Прототип функции или описание свойства

Тип члена

Назначение

Общие описания

enum BOOL {false=0 , true};

перечисление

static BOOL DestructorDeleteObj;

Глобальная переменная

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

enum HomeType{fast, multiple , complex};

перечисление

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

enum StreetType{one, two , more };

перечисление

Тип улицы: односторонняя, двухсторонняя, много полос

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

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

перечисление

Режим удаления объектов: голова, хвост, номер.

#define StreetClass 1

Переменная этапа компиляции

Номер класса улицы (1)

#define HomeClass 2

Переменная этапа компиляции

Номер класса дома (2)

Класс AbstrHomeабстрактный класс для наследования классов домов

Абстрактный класс

Задает общие свойства всех домов

virtual int classType() = 0;

Чистая виртуальная функция

Имя класса

virtual char *className() = 0;

Чистая виртуальная функция

Печать объекта

virtual void printOn(ostream &) = 0;

Чистая виртуальная функция

Тип объекта

AbstrHome(): Obj(){};

конструктор

~AbstrHome(){};

деструктор

Класс AbstrStreetабстрактный класс для наследования классов улиц

Абстрактный класс

Задает общие свойства всех улиц

virtual int classType() = 0;

Чистая виртуальная функция

Имя класса

virtual char *className() = 0;

Чистая виртуальная функция

Печать объекта

virtual void printOn(ostream &) = 0;

Чистая виртуальная функция

Тип объекта

AbstrStreet (): Obj(){};

конструктор

~AbstrStreet (){};

деструктор

Класс Homeкласс для создания объектов домов, включаемыхых в объекты улиц

Класс

Создание объектов типа дом

virtual int classType(){ return HomeClass; }

виртуальная функция

Задает тип дом числовой

virtual char *className(){ return "Home"; }

виртуальная функция

Задает класс дом символьный

virtual void printOn(ostream & out)

виртуальная функция

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

Home()

конструктор

Home( Home & H)

конструктор

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

Home( Home * pH)

конструктор

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

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

конструктор

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

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

конструктор

Новый с параметрами: имя дома, номер дома и номер для поиска

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

конструктор

Новый с параметрами: имя дома, номер дома, номер для поиска, этажность, число жителей, тип и число квартир

~Home()

деструктор

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

метод

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

const char *getName()

метод

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

const char *getNumb()

метод

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

int getNo()

метод

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

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

метод

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

номер дома, этажность, число жителей, тип и число квартир

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

метод

Задать параметры:

номер дома, этажность, число жителей, тип и число квартир

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

метод

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

имя дома, имя дома для поиска

номер дома, этажность, число жителей, тип, число квартир и признак ремонта

friend Home & operator +(Home & H1 , Home & H2)

Дружественная функция - операция

Складываются два дома

Home operator =(Home & H );

Операция

Перегрузка оператора присваивания домов

char *Home_Number

свойство

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

int iHome

свойство

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

int EtagCount

свойство

Число этажей

int MenCount

свойство

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

HomeType TypeHome

свойство

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

int NumbApartament

свойство

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

BOOL HomeRemont ;

свойство

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

friend Street

Дружественный класс

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

Класс

Объекты класса имеют набор свойств и методов для реализации задач учета улиц с домами

Street();

конструктор

Street(const char *sName);

конструктор

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

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

Конструктор

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

Street(int Num);

Конструктор

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

Street(const char *sName , int Num);

Конструктор

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

Street(Street & S);

Конструктор

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

~Street() { };

Деструктор

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

метод

Добавление дома на улицу с учетом режима добавления (голова, хвост и номер) и признака удаления объектов

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

метод

Удаления дома с улицы с учетом режима удаления (голова, хвост и номер) и признака удаления объектов

virtual int classType() { return StreetClass; }

виртуальная функция

Тип класса числовой

virtual char *className() { return "Street"; }

виртуальная функция

Тип класса символьный

virtual void printOn(ostream & out);

виртуальная функция

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

int GetNumberHome();

метод

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

int GetNumberMens();

метод

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

int GetNumberApart();

метод

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

char * GetNameStreet(){ return Name_Street;};

метод

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

char * GetKeyNameStreet(){ return name;};

метод

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

int GetNumbStreet(){ return NumberStreet;};

метод

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

int GetKeyNumbStreet(){ return no;};

метод

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

void SetNameStreet(const char * NameStr);

метод

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

void SetKeyNameStreet(const char * sName);

метод

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

void SetNumbStreet( int n );

метод

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

void SetKeyNumbStreet( int k);

метод

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

BOOL GetRemont();

метод

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

BOOL GetRemontStr(){ return RemontStreet;};

метод

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

void SetRemontStr(BOOL rS) ;

метод

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

StreetType GetStreetType();

метод

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

void SetStreetType(StreetType t);

метод

Установить тип улицы: one, two , more

friend Street & operator +( Street & X , Street & Y );

Дружественная функция

Операция сложения двух улиц

Street operator =(Street & S);

Операция

Перегрузка операции присваивания двух улиц

char *Name_Street;

свойство

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

int NumberStreet;

свойство

Номер улицы

int Homes_num;

свойство

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

BOOL Remont;

свойство

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

BOOL RemontStreet;

свойство

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

StreetType StrType;

свойство

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

Street * ListOfNear;

свойство

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

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

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

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

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

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

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