МУ_ДЗ_2014 (1079920), страница 35
Текст из файла (страница 35)
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Street Astreet("Первая", 20);
Astreet.add(&H2 , head);
Astreet.add(&H3 , head);
Astreet.add(&H4 , head);
Astreet.printOn(cout);
Home H5("Аптека","д.2", 7,2,3, fast , 5);
Home H6("Перекресток", "д.3", 3);
Home H7("Детский сад", "д.4а", 4,2);
Street Dstreet("Вторая ", 20);
Dstreet.add(&H5 , tail);
Dstreet.add(&H6 , tail);
Dstreet.add(&H7 , tail);
Dstreet.printOn(cout);
system (" pause ");
system (" pause ");
cout << endl << "******* Сложение *********" << endl;
Street Sumstreet(" ", 20);
Sumstreet.printOn(cout);
Sumstreet = Astreet + Dstreet;
Sumstreet.printOn(cout);
system (" pause ");
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;
}
system (" pause ");
system (" pause ");
//
break;
//
case 14:
cout << "5.1.14 Добавление дома на улицу" << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Street S1("Улица с параметрами" , 15);
S1.add(&H2);
S1.add(&H3);
S1.printOn(cout);
system (" pause ");
system (" pause ");
Home H5("Аптека","д.2", 7,2,3, fast , 5);
Home H6("Перекресток", "д.3", 3);
S1.add(&H5 , head);
S1.add(&H6 , head);
S1.printOn(cout);
system (" pause ");
Home H7("Детский сад", "д.4а", 4,2);
S1.add(&H7 , tail);
S1.printOn(cout);
system (" pause ");
Home H8("Жилой 3","д.2", 70,20,30, fast , 50);
S1.add(&H8 , Number, 2);
S1.printOn(cout);
}
system (" pause ");
system (" pause ");
//
break;
//
case 15:
cout << "5.1.15 Удаление дома с улицы" << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Street S1("Улица с параметрами" , 15);
S1.add(&H2);
S1.add(&H3);
Home H5("Аптека","д.2", 7,2,3, fast , 5);
Home H6("Перекресток", "д.3", 3);
S1.add(&H5 , head);
S1.add(&H6 , head);
Home H7("Детский сад", "д.4а", 4,2);
S1.add(&H7 , tail);
Home H8("Жилой 3","д.2", 70,20,30, fast , 50);
S1.add(&H8 , Number, 2);
S1.printOn(cout);
system (" pause ");
system (" pause ");
cout << "Удаление дома с улицы конец !!!" << endl;
Home Temp;
S1.del(); //
S1.printOn(cout);
system (" pause ");
cout << "Удаление дома с улицы начало!!!" << endl;
S1.del( head);
S1.printOn(cout);
system (" pause ");
cout << "Удаление дома с улицы второго!!!" << endl;
S1.del( Number, 2);
S1.printOn(cout);
}
system (" pause ");
//
break;
//
case 16:
cout << "5.1.16 Установка и снятие признака ремонта улицы " << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Street S1("Улица 1" , 15);
S1.add(&H2);
S1.add(&H3);
S1.printOn(cout);
if ( S1.GetRemontStr() )
cout << "Улице нужен ремонт!" << endl;
else
cout << "Улице не нужен ремонт!" << endl;
cout << "После установки!!!!" << endl;
S1.SetRemontStr(true);
if ( S1.GetRemontStr() )
cout << "Улице нужен ремонт!" << endl;
else
cout << "Улице не нужен ремонт!" << endl;
cout << "После снятия признака ремонта!!!!" << endl;
S1.SetRemontStr(false);
if ( S1.GetRemontStr() )
cout << "Улице нужен ремонт!" << endl;
else
cout << "Улице не нужен ремонт!" << endl;
}
system (" pause ");
system (" pause ");
//
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 mainDEBUG(void) // Эту строку нужно рзаскомментировать, а следующую зраскоментировать
// при подключении отладочного варианта текста программы (и наоборот для методики испытаний)
//int main(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