МУ_ДЗ_2014 (1079920), страница 29
Текст из файла (страница 29)
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Street SNew("Улица" , 15);
SNew.printOn(cout);
SNew.add(&H2);
SNew.add(&H3);
SNew.add(&H4);
SNew.printOn(cout);
}
getchar();
getchar();
break;
2.11.3. Результаты работы фрагмента программы
9
5.1.9 Учет свойств улицы (см. ТЗ)
{{{*******
Улица - Улица Ключ для поиска - Улица
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 0 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Список List пуст
}
*******}}}
{{{*******
Улица - Улица Ключ для поиска - Улица
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 3 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
Номер - 3 Название ДЭЗ
}
*******}}}
Enter
2.12.Фрагмент текста программы для проверки п.п.5.1.10 ТЗ
2.12.1. Пояснения текста фрагмента
Описана улица SNew и три дома Н1, Н2 и Н3. Улица распечатывается стандартным методом printOn. Дома добавляются на улицу (метод add) и затем улица распечатывается стандартным методом printOn. В распечатке улицы меняется число домов и появляется список названий домов.
2.12.2. Текст фрагмента программы
case 10:
cout << "5.1.10 Распечатка содержания улицы и ее свойств" << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Street SNew("Улица" , 15);
SNew.printOn(cout);
SNew.add(&H2);
SNew.add(&H3);
SNew.add(&H4);
SNew.printOn(cout);
}
getchar();
getchar();
break;
2.12.3. Результаты работы фрагмента программы
10
5.1.10 Распечатка содержания улицы и ее свойств
{{{*******
Улица - Улица Ключ для поиска - Улица
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 0 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Список List пуст
}
*******}}}
{{{*******
Улица - Улица Ключ для поиска - Улица
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 3 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
Номер - 3 Название ДЭЗ
}
*******}}}
Enter
2.13.Фрагмент текста программы для проверки п.п.5.1.11 ТЗ
2.13.1. Пояснения текста фрагмента
Описана улица Sumstreet и три дома Н2, Н3 и Н4. Дома добавляются на улицу (метод add) и затем улица распечатывается стандартным методом printOn. В распечатке улицы меняется число домов и появляется список названий домов. С помощью различных методов изменяются параметры улицы: SetNameStreet (название), SetKeyNameStreet (ключ для поиска), SetNumbStreet (номер улицы) и SetKeyNumbStreet (номер для поиска). Улица распечатывается стандартным методом printOn. Далее с помощью методов: GetNameStreet(название), GetNumbStreet( номер), GetKeyNameStreet( ключевое имя) ,GetKeyNumbStreet( ключевой номер) ,GetNumberHome( число домов) , GetNumberMens( число жителей), GetNumberApart( число квартир), GetRemont( признак ремонта домов), GetStreetType ( тип улицы). Тип улицы определяется перечислимым типом StreetType: one, two или more.
2.13.2. Текст фрагмента программы
case 11:
cout << "5.1.11 Задание характеристик улицы " << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Street Sumstreet("Улица с параметрами" , 15);
Sumstreet.add(&H2);
Sumstreet.add(&H3);
Sumstreet.add(&H4);
Sumstreet.printOn(cout);
cout << "******* Изменения параметров *********" << endl;
Sumstreet.SetNameStreet("Новая");
Sumstreet.SetKeyNameStreet("Новая ключ");
Sumstreet.SetNumbStreet( 33 );
Sumstreet.SetKeyNumbStreet( 77 );
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;
}
getchar();
getchar();
break;
2.13.3. Результаты работы фрагмента программы
11
5.1.11 Задание характеристик улицы
{{{*******
Улица - Улица с параметрами Ключ для поиска - Улица с параметрами
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 3 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
Номер - 3 Название ДЭЗ
}
*******}}}
******* Изменения параметров *********
{{{*******
Улица - Новая Ключ для поиска - Новая ключ
Номер улицы - 33 Номер для поиска - 77
Число домов на улице - 3 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
Номер - 3 Название ДЭЗ
}
*******}}}
******* Параметры *********
Название улицы -> Новая
Номер улицы -> 33
Название улицы для поиска-> Новая ключ
Номер улицы для поиска-> 77
Число домов на улице = 3
Число жителей на улице = 3
Число квартир на улице = 5
На улице не нужен ремонт домов!
Тип улицы -> двухсторонне движение
Enter
2.14.Фрагмент текста программы для проверки п.п.5.1.12 ТЗ
2.14.1. Пояснения текста фрагмента
Описана улица Sumstreet и три дома Н2, Н3 и Н4. Дома добавляются на улицу (метод add) и затем улица распечатывается стандартным методом printOn. В распечатке улицы меняется число домов и появляется список названий домов. С помощью различных методов изменяются параметры улицы: SetNameStreet (название), SetKeyNameStreet (ключ для поиска), SetNumbStreet (номер улицы) и SetKeyNumbStreet (номер для поиска). Улица распечатывается стандартным методом printOn. Далее с помощью методов: GetNameStreet(название), GetNumbStreet( номер), GetKeyNameStreet( ключевое имя) ,GetKeyNumbStreet( ключевой номер) ,GetNumberHome( число домов) , GetNumberMens( число жителей), GetNumberApart( число квартир), GetRemont( признак ремонта домов), GetStreetType ( тип улицы). Тип улицы определяется перечислимым типом StreetType: one, two или more.
2.14.2. Текст фрагмента программы
case 12:
cout << "5.1.12 Получение характеристик улицы " << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
Home H3("Магазин", "д.3", 3);
Home H4("ДЭЗ", "д.4а", 4,2);
Street Sumstreet("Улица с параметрами" , 15);
Sumstreet.add(&H2);
Sumstreet.add(&H3);
Sumstreet.add(&H4);
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;
}
getchar();
getchar();
break;
2.14.3. Результаты работы фрагмента программы
12
5.1.12 Получение характеристик улицы
{{{*******
Улица - Улица с параметрами Ключ для поиска - Улица с параметрами
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 3 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
Номер - 3 Название ДЭЗ
}
*******}}}
******* Параметры *********
Название улицы -> Улица с параметрами
Номер улицы -> 15
Название улицы для поиска-> Улица с параметрами
Номер улицы для поиска-> 15
Число домов на улице = 3
Число жителей на улице = 3
Число квартир на улице = 5
На улице не нужен ремонт домов!
Тип улицы -> двухсторонне движение
Enter
2.15.Фрагмент текста программы для проверки п.п.5.1.13 ТЗ
2.15.1. Пояснения текста фрагмента
Создаются две улицы: Astreet с домами Н2, Н3 и Н4, добавленными в голову (head) методом (add), и Dstreet с домами Н5, Н6 и Н7, добавленными в хвост (tail) методом (add). Описывается улица Sumstreet и формируется как сумма с помощью перегруженной операции “+”. Исходные улицы и результирующая улица распечатываются стандартным методом printOn. Далее распечатываются параметры улицы с помощью специальных методов (см. п.п. 2.14).
2.15.2. Текст фрагмента программы
case 13:
cout << "5.1.13 Сложение двух улиц" << endl;
{
Home H2("Жилой","д.2", 7,2,3, fast , 5);
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);