Руководство пользователя (РП) (Методические указания к лабораторным работам), страница 2
Описание файла
Файл "Руководство пользователя (РП)" внутри архива находится в следующих папках: Методические указания к лабораторным работам, ЛР_14_КЛР_ПКШ. Документ из архива "Методические указания к лабораторным работам", который расположен в категории "". Всё это находится в предмете "программирование на основе классов и шаблонов" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "программирование на основе классов и шаблонов" в общих файлах.
Онлайн просмотр документа "Руководство пользователя (РП)"
Текст 2 страницы из документа "Руководство пользователя (РП)"
Конструктор без параметров:
Home H1;
Конструктор с именем и номером символьным:
Home H2("Жилой","д.2");
Конструктор с именем, номером символьным и номером для поиска:
Home H3("Жилой", "д.3", 3);
Конструктор с именем, номером символьным, номером для поиска и этажностью:
Home H4("Жилой", "д.4а", 4,2);
Конструктор с именем, номером символьным, номером для поиска, этажностью и числом жителей:
Home H5("ДЭЗ", "д.5", 5,2,3);
Конструктор с именем, номером символьным, номером для поиска, этажностью, числом жителей и типом дома:
Home H6("Жилой", "д.6", 6,2,3, fast);
Конструктор с именем, номером символьным, номером для поиска, этажностью, числом жителей, типом дома и числом квартир:
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Примеры использования конструкторов копирования:
Конструктор копирования на основе ссылки:
Home H6("ДЭЗ", "д.5", 5,2,3);
Home Test(H5);
H5.printOn(cout);
Test.printOn(cout);
Конструктор копирования на основе ссылки и динамической памяти:
Home *pHome = new Home (H6);
H6.printOn(cout);
pHome->printOn(cout);
delete pHome;
Конструктор копирования на основе ссылки и операции присваивания “-”:
Home Temp;
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Temp = H7;
H7.printOn(cout);
Temp.printOn(cout);
Конструктор копирования на основе указателя и динамической памяти:
Home H6("ДЭЗ", "д.5", 5,2,3);
Home *pHome = new Home (H6);
Home *pHome1 = new Home (* pHome);
pHome->printOn(cout);
pHome1->printOn(cout);
delete pHome;
delete pHome1;
11 Деструктор класса Home
Прототип деструктора:
~Home();
Пример явного и неявного использования деструктора:
{
Home *pHome = new Home (H6);
pHome->printOn(cout);
delete pHome;
}
Неявный вызов деструктора производится при завершении блока операторов . Явный вызов деструктора производится при выполнении операции delete.
12 Методы класса 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 |
Примеры использования методов класса Home:
Установка имени дома символьного:
Temp.setName("Университет");
Temp.printOn(cout);
Установка имени и номера дома символьного:
Temp.setName("Магазин" ,"д.11/12");
Temp.printOn(cout);
Получение имени и номера дома символьного:
cout << "Name дома = "<< Temp.getName() << endl;
Получение номера дома символьного:
cout << "Номер дома = "<< Temp.getNumb() << endl;
Получение номера дома для поиска:
cout << "Номер в списке = "<< Temp.getNo() << endl;
Получение параметров дома:
cout << "Параметры: "<< endl;
int iH, Etag , Men , Apart ;
HomeType Type;
Temp.getParam(iH , Etag, Men, Type , Apart);
cout << "Номер -" << iH <<
" Этажей -" << Etag << " Жителей -" << Men << endl;
if (Type == fast)
cout << "Тип дома - простой ";
if (Type == multiple)
cout << "Тип дома - много строений ";
if (Type == complex)
cout << "Тип дома - сложный ";
cout << " Число квартир - " << Apart << endl;
Установка параметров дома:
Temp.setParam(1,2,3,fast, 5 );
Temp.printOn(cout);
Установка всех параметров дома:
Temp.setAllParam("Аптека", "10/8 кв.3", 11,12,13,fast, 15, true );
Temp.printOn(cout);
13 Операции класса Home
Прототип перегруженного оператора присваивания:
Home operator =(Home & H );
Пример использования перегруженного оператора присваивания:
Home Temp;
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Temp = H7;
H7.printOn(cout);
Temp.printOn(cout);
14 Дружественные функции класса Home
Прототип перегруженного оператора сложения:
friend Home & operator +(Home & H1 , Home & H2)
Пример использования перегруженного оператора сложения:
Home H1("Жилой", "д.6", 6,2,3, fast , 3);
Home H2("Жилой", "д.7", 9,10,11, fast , 5);
Home Temp;
Temp = H1 + H2;
H1.printOn(cout);
H2.printOn(cout);
Temp.printOn(cout);
При сложении двух домов суммируются: число квартир, число жителей, имена домов, устанавливается признак ремонта по логике “ИЛИ”. Этажность определяется по числу этажей первого дома. Тип дома задается как сложный (complex).
15 КЛАСС Улиц - Street
Класс Street. Улица – объекты данного типа в упорядоченном виде содержат информацию о домах улице, названии улицы, типе улицы, соседних улицах (как резерв), необходимости ремонта улицы, числе домов, номера улицы (как резерв). Предусматривается возможность добавления домов на улицу и их удаления, изменения других параметров улицы.
16 Данные и переменные класса 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 | Список соседних улиц ( зарезервировано) |
17 Конструкторы класса 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 & | Создание улицы на основе другой (на основе ссылки) |
Примеры конструкторов класса Street:
Конструктор без параметров:
Street S1;
Конструктор с именем улицы:
Street S2("Лениский проспект");
Конструктор с именем улицы и именем для поиска:
Street S3("Ленин","Лениский проспект");
Конструктор с номером улицы для поиска:
Street S4(5);
Конструктор с именем улицы и номером для поиска: