Описание тестового примера _ОТП_2014 (1079908), страница 4
Текст из файла (страница 4)
Текст фрагмента программы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);Street Dstreet("Вторая ", 20);Dstreet.add(&H5 , tail);Dstreet.add(&H6 , tail);Dstreet.add(&H7 , tail);Dstreet.printOn(cout);getchar();getchar();cout << endl << "******* Сложение *********" << endl;Street Sumstreet(" ", 20);Sumstreet.printOn(cout);Sumstreet = Astreet + Dstreet;Sumstreet.printOn(cout);getchar();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;else18cout << "На улице не нужен ремонт домов!" << endl;if ( Sumstreet.GetStreetType() == one )cout << "Тип улицы -> одностороннее движение" << endl;if ( Sumstreet.GetStreetType() == two )cout << "Тип улицы -> двухсторонне движение" << endl;}getchar();getchar();break;2.15.3.
Результаты работы фрагмента программы135.1.13 Сложение двух улиц{{{*******Улица - Первая Ключ для поиска - ПерваяНомер улицы - 20 Номер для поиска - 20Число домов на улице - 3 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ДЭЗНомер - 2 Название МагазинНомер - 3 Название Жилой}*******}}}{{{*******Улица - Вторая Ключ для поиска - ВтораяНомер улицы - 20 Номер для поиска - 20Число домов на улице - 3 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название АптекаНомер - 2 Название ПерекрестокНомер - 3 Название Детский сад}*******}}}Enter******* Сложение *********{{{*******Улица Ключ для поиска Номер улицы - 20 Номер для поиска - 20Число домов на улице - 0 Улица отремонтирована.Все эти дома отремонтированы.Список {Список List пуст}*******}}}{{{*******Улица - Первая + Вторая Ключ для поиска - Первая + ВтораяНомер улицы - 20 Номер для поиска - 0Число домов на улице - 6 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ДЭЗНомер - 2 Название МагазинНомер - 3 Название ЖилойНомер - 4 Название АптекаНомер - 5 Название ПерекрестокНомер - 6 Название Детский сад}*******}}}19Enter******* Параметры *********Название улицы -> Первая + ВтораяНомер улицы -> 20Название улицы для поиска-> Первая + ВтораяНомер улицы для поиска-> 0Число домов на улице = 6Число жителей на улице = 6Число квартир на улице = 10На улице не нужен ремонт домов!Тип улицы -> двухсторонне движениеEnter2.16.Фрагмент текста программы для проверки п.п.5.1.14 ТЗ2.16.1.
Пояснения текста фрагментаВ примере описана улица S1 и два дома Н2 и Н3. Затем эти два дома добавляются наулицу методом add (со вторым параметром по умолчанию – в этом случае используется tail) ивыполняется распечатка содержания улицы с тремя домами. Далее деменстрируются разныережимы добавления дома: head (в начало – Н5 и Н6), tail ( в конец – Н7) и Number (по номеру –Н8). Послу каждой операции содержание улицы распечатывается.2.16.2. Текст фрагмента программы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);getchar();getchar();Home H5("Аптека","д.2", 7,2,3, fast , 5);Home H6("Перекресток", "д.3", 3);S1.add(&H5 , head);S1.add(&H6 , head);S1.printOn(cout);getchar();Home H7("Детский сад", "д.4а", 4,2);S1.add(&H7 , tail);S1.printOn(cout);getchar();Home H8("Жилой 3","д.2", 70,20,30, fast , 50);S1.add(&H8 , Number, 2);S1.printOn(cout);}getchar();getchar();break;2.16.3.
Результаты работы фрагмента программы145.1.14 Добавление дома на улицу20{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 2 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ЖилойНомер - 2 Название Магазин}*******}}}Enter{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 4 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ПерекрестокНомер - 2 Название АптекаНомер - 3 Название ЖилойНомер - 4 Название Магазин}*******}}}Enter{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 5 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ПерекрестокНомер - 2 Название АптекаНомер - 3 Название ЖилойНомер - 4 Название МагазинНомер - 5 Название Детский сад}*******}}}Enter{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 6 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ПерекрестокНомер - 2 Название Жилой 3Номер - 3 Название АптекаНомер - 4 Название ЖилойНомер - 5 Название МагазинНомер - 6 Название Детский сад}*******}}}Enter2.17.Фрагмент текста программы для проверки п.п.5.1.15 ТЗ212.17.1.
Пояснения текста фрагментаСоздается улица S1. В нее разными способами добавляются дома: Н2, Н3, Н5, Н6, Н7 иН8. Содержимое улицы распечатывается (printOn). Далее с помощью метода del дома удаляютсяс улицы в разных режимах: head (из начала ), tail ( с конца) и Number (по номеру). Послекаждого удаления содержимое улицы распечатывается.2.17.2. Текст фрагмента программы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);getchar();getchar();cout << "Удаление дома с улицы конец !!!" << endl;Home Temp;S1.del(&H8, tail); //S1.printOn(cout);getchar();cout << "Удаление дома с улицы начало!!!" << endl;S1.del(&H8 , head);S1.printOn(cout);getchar();cout << "Удаление дома с улицы второго!!!" << endl;S1.del(&H8 , Number, 2);S1.printOn(cout);}getchar();break;2.17.3.
Результаты работы фрагмента программы155.1.15 Удаление дома с улицы{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 6 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ПерекрестокНомер - 2 Название Жилой 3Номер - 3 Название АптекаНомер - 4 Название ЖилойНомер - 5 Название МагазинНомер - 6 Название Детский сад22}*******}}}EnterУдаление дома с улицы конец !!!{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 5 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название ПерекрестокНомер - 2 Название Жилой 3Номер - 3 Название АптекаНомер - 4 Название ЖилойНомер - 5 Название Магазин}*******}}}EnterУдаление дома с улицы начало!!!{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 4 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название Жилой 3Номер - 2 Название АптекаНомер - 3 Название ЖилойНомер - 4 Название Магазин}*******}}}EnterУдаление дома с улицы второго!!!{{{*******Улица - Улица с параметрами Ключ для поиска - Улица с параметрамиНомер улицы - 15 Номер для поиска - 15Число домов на улице - 3 Улица отремонтирована.Все эти дома отремонтированы.Список {Номер - 1 Название Жилой 3Номер - 2 Название ЖилойНомер - 3 Название Магазин}*******}}}Enter2.18.Фрагмент текста программы для проверки п.п.5.1.16 ТЗ2.18.1.
Пояснения текста фрагментаВ данном фрагменте устанавливается (true) и сбрасывается (false) признак ремонта улицы.Это выполняется с помощью метода класса SetRemontStr. Проверка установленного признакавыполняется методом класса GetRemontStr. Операции выполняются над улицей S1, к которойпредварительно добавлены дома Н2 и Н3.2.18.2.
Текст фрагмента программыcase 16:cout << "5.1.16 Установка и снятие признака ремонта улицы " << endl;23{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;elsecout << "Улице не нужен ремонт!" << endl;cout << "После установки!!!!" << endl;S1.SetRemontStr(true);if ( S1.GetRemontStr() )cout << "Улице нужен ремонтв!" << endl;elsecout << "Улице не нужен ремонт!" << endl;cout << "После снятия признака ремонта!!!!" << endl;S1.SetRemontStr(false);if ( S1.GetRemontStr() )cout << "Улице нужен ремонт!" << endl;elsecout << "Улице не нужен ремонт!" << endl;}getchar();getchar();break;2.18.3.