МУ_ДЗ_2014 (Методические указания к лабораторным работам), страница 40
Описание файла
Файл "МУ_ДЗ_2014" внутри архива находится в папке "Методические указания к лабораторным работам". Документ из архива "Методические указания к лабораторным работам", который расположен в категории "". Всё это находится в предмете "программирование на основе классов и шаблонов" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "программирование на основе классов и шаблонов" в общих файлах.
Онлайн просмотр документа "МУ_ДЗ_2014"
Текст 40 страницы из документа "МУ_ДЗ_2014"
break;
//
case 17:
cout << "5.1.17 Автоматическое получение признака ремонта домов улицы " << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Street S1("Улица 1" , 15);
S1.add(&H2);
S1.add(&H3);
cout << "До установки признака ремонта дома и вычисления признака ремонта домов улицы!!!!" << endl;
S1.printOn(cout);
if ( S1.GetRemont() )
cout << "На улице нужен ремонт домов!" << endl;
else
cout << "На улице не нужен ремонт домов!" << endl;
S1.del( tail);
H3.setAllParam("Магазин", "д.3", 1,2,3,fast, 3 , true);
H3.printOn(cout);
S1.add(&H3);
S1.GetRemont();
cout << "После вычисления признака ремонта домов улицы!!!!" << endl;
S1.printOn(cout);
if ( S1.GetRemont() )
cout << "На улице нужен ремонт домов!" << endl;
else
cout << "На улице не нужен ремонт домов!" << endl;
}
system (" pause ");
system (" pause ");
//
break;
//
case 18:
cout << "5.1.18 Перегрузка оператора присваивания для улиц " << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
H3.setAllParam("Магазин", "д.3", 1,2,3,fast, 3 , true);
Street S1("Улица 1" , 15);
Street SNew("Улица" , 15);
S1.add(&H2);
S1.add(&H3);
S1.printOn(cout);
SNew.printOn(cout);
SNew = S1;
SNew.printOn(cout);
S1.del( head);
system (" pause ");
system (" pause ");
S1.SetNameStreet("Новое название S1 ");
cout << "После изменения S1 (название и удален первый)!!!!" << endl;
cout << "S1!!!!" << endl;
S1.printOn(cout);
cout << "SNew!!!!" << endl;
SNew.printOn(cout);
}
system (" pause ");
//
break;
//
////////////////////
/////////////////////////////////
case 0:
case 88-48:
case 120-48:
cout << endl << "Выход " << endl;
system(" PAUSE");
return 0;
default:
cout << endl << "Выбор функции не верен! " << endl;
break;
/// При выходе
cout << endl << "Выход " << endl;
system(" PAUSE");
return 0;
}
// system(" PAUSE");
};
///
system(" PAUSE");
return 0;
}
///////////////////////////////// Для отладки
//int main(void)
int mainDEBUG(void)
{
system(" chcp 1251 > nul");
int iPunkt;
while ( true ) {
system (" CLS ");
cout << endl << "Меню тестового примера системы классов улиц." << endl << endl;
cout << endl << "1.Конструкторы Home " << endl;
cout << endl << "2.Методы Home " << endl;
cout << endl << "3.Конструкторы Street " << endl;
cout << endl << "4.Методы Street " << endl;
cout << endl << "0.Выход " << endl;
cin >> iPunkt;
// cout << "Ввели - " << iPunkt<< endl;
switch(iPunkt)
{
case 1:
cout << endl << "1.Конструкторы Home " << endl;
//////////////////////////////////
{
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);
H1.printOn(cout);
H2.printOn(cout);
H3.printOn(cout);
H4.printOn(cout);
H5.printOn(cout);
H6.printOn(cout);
H7.printOn(cout);
// Конструктор копирования
Home Test(H5);
H5.printOn(cout);
Test.printOn(cout);
Home *pHome = new Home (H6);
H6.printOn(cout);
pHome->printOn(cout);
Home Temp;
Temp = H7;
H7.printOn(cout);
Temp.printOn(cout);
cout << endl << "Указатели!!!!!!!!! " << endl;
Home *pHome1 = new Home (* pHome);
pHome->printOn(cout);
pHome1->printOn(cout);
delete pHome;
delete pHome1;
}
///////////////////////////////////////
///////////////////////////////////////
break;
case 2:
cout << endl << "2.Методы Home " << endl;
////////////////////////////////////////
{
// + , SetName,printOn,classType,className, getName, getNumb,getno, getParam
// +
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);
// SetName
Temp.setName("Университет");
Temp.printOn(cout);
Temp.setName("Магазин" ,"д.11/12");
Temp.printOn(cout);
//classType
cout << "Тип класса = "<< Temp.classType() << endl;
//className
cout << "Name класса = "<< Temp.className() << endl;
//getName
cout << "Name дома = "<< Temp.getName() << endl;
//getNumb
cout << "Номер дома = "<< Temp.getNumb() << endl;
//getno
cout << "Номер в списке = "<< Temp.getNo() << endl;
//getParam
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.printOn(cout);
Temp.setParam(1,2,3,fast, 5 );
Temp.printOn(cout);
Temp.setAllParam("Аптека", "10/8 кв.3", 11,12,13,fast, 15 );
Temp.printOn(cout);
}
////////////////////////////////////////
break;
case 3:
cout << endl << "3.Конструкторы Street " << endl;
{
Street S1;
Street S2("Лениский проспект");
Street S3("Ленин","Лениский проспект");
Street S4(5);
Street S5("Горького ул." , 7);
// Пучтые улицы
S1.printOn(cout);
S2.printOn(cout);
S3.printOn(cout);
S4.printOn(cout);
Home H5("ДЭЗ", "д.5", 5,2,3);
Home H6("Жилой", "д.6", 6,2,3, fast);
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
S5.AddTail( (CObject *)&H5);
S5.AddTail( (CObject *)&H6);
S5.AddTail( (CObject *)&H7);
S5.printOn(cout);
///////////////////////////////
Street S6(S5);
S6.printOn(cout);
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Home HNew("Сарай","д.10/12", 7,2,3, fast , 5);
Street SNew("Улица" , 15);
SNew.printOn(cout);
SNew.AddHead((CObject *)&HNew);
SNew.AddHead((CObject *)&H2);
SNew.AddHead((CObject *)&H3);
SNew.AddHead((CObject *)&H4);
SNew.printOn(cout);
cout << endl << "******* Конструктор копии *********" << endl;
Street SCopy(SNew);
SCopy.printOn(cout);
cout << endl << "******* Перегрузка присваивания *********" << endl;
Street SEmpty("Пусто!!" , 15);
SEmpty.printOn(cout);
SEmpty = SCopy;
SEmpty.printOn(cout);
// МЕТОД add
Street Shead("Улица Head" , 15);
Shead.add(&HNew , head);
Shead.add(&H2 , head);
Shead.add(&H3 , head);
Shead.add(&H4 , head);
Shead.printOn(cout);
///
Shead.del( head);
Shead.printOn(cout);
Shead.del( tail);
Shead.printOn(cout);
// Shead.del( Number , 1);
// Shead.printOn(cout);
};
break;
case 4:
cout << endl << "4.Методы Street " << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Street Astreet("Добавление head", 20);
Astreet.printOn(cout);
cout << endl << "******* Добавление head *********" << endl;
Astreet.add(&H2 , head);
Astreet.add(&H3 , head);
Astreet.add(&H4 , head);
Astreet.printOn(cout);
Home H5("Жилой 2","д.2", 7,2,3, fast , 5);
Home H6("Магазин 2", "д.3", 3);
Home H7("ДЭЗ 2", "д.4а", 4,2);
cout << endl << "******* Добавление tail err *********" << endl;
Street Dstreet("Добавление tail ", 20);
Dstreet.add(&H5 , tail);
Dstreet.add(&H6 , tail);
Dstreet.add(&H7 , tail);
Dstreet.printOn(cout);
cout << endl << "******* Добавление после NUM 1 (0-первый) *********" << endl;
Home H8("Жилой 3","д.2", 70,20,30, fast , 50);
Home H9("Магазин 3", "д.3", 3);
Home H10("ДЭЗ 3", "д.4а", 4,2);
Dstreet.add(&H8 , Number, 1);
Dstreet.add(&H9 , Number, 1);
Dstreet.add(&H10 , Number, 1);
Dstreet.printOn(cout);
cout << endl << "******* Удаление *********" << endl;
Dstreet.del(); //
Dstreet.printOn(cout);
Dstreet.del( head);
Dstreet.printOn(cout);
Dstreet.del( Number, 2);
Dstreet.printOn(cout);
// Dstreet.del( tail);
// Dstreet.printOn(cout);
cout << endl << "******* Сложение *********" << endl;
Street Sumstreet(" ", 20);
Sumstreet.printOn(cout);
Sumstreet = Astreet + Dstreet;
Sumstreet.printOn(cout);
cout << "******* Параметры *********" << endl;
cout << "Название улицы -> " << Sumstreet.GetNameStreet() << endl;
cout << "Номер улицы -> " << Sumstreet.GetNumbStreet() << endl;
cout << "Название улицы для поиска-> " << Sumstreet.GetKeyNameStreet() << endl;
cout << "Номер улицы для поиска-> " << Sumstreet.GetKeyNumbStreet() << endl;
cout << "Число домов на улице = " << Sumstreet.GetNumberHome() << endl;
cout << "Число жителей на улице = " << Sumstreet.GetNumberMens() << endl;
cout << "Число квартир на улице = " << Sumstreet.GetNumberApart() << endl;
if ( Sumstreet.GetRemont() )
cout << "На улице нужен ремонт домов!" << endl;
else
cout << "На улице нужен ремонт домов!" << endl;
if ( Sumstreet.GetStreetType() == one )
cout << "Тип улицы -> одностороннее движение" << endl;
if ( Sumstreet.GetStreetType() == two )
cout << "Тип улицы -> двухсторонне движение" << endl;
cout << "******* Изменения параметров *********" << endl;
Sumstreet.SetNameStreet("Новая");
Sumstreet.SetKeyNameStreet("Новая ключ");
Sumstreet.SetNumbStreet( 33 );
Sumstreet.SetKeyNumbStreet( 77 );
cout << "Название улицы 2-> " << Sumstreet.GetNameStreet() << endl;
cout << "Номер улицы 2-> " << Sumstreet.GetNumbStreet() << endl;
cout << "Название улицы для поиска 2-> " << Sumstreet.GetKeyNameStreet() << endl;
cout << "Номер улицы для поиска 2-> " << Sumstreet.GetKeyNumbStreet() << endl;
};
break;
/////////////////////////////////
case 0:
case 88-48:
case 120-48:
cout << endl << "Выход " << endl;
system(" PAUSE");
return 0;
//
default:
cout << endl << "Выбор функции не верен! " << endl;
break;
/// При выходе
cout << endl << "Выход " << endl;
system(" PAUSE");
return 0;
}
system(" PAUSE");
};
///
system(" PAUSE");
return 0;
}