Описание тестового примера (ОТП) (Методические указания к лабораторным работам), страница 4
Описание файла
Файл "Описание тестового примера (ОТП)" внутри архива находится в следующих папках: Методические указания к лабораторным работам, ЛР_15_КЛР_ПКШ. Документ из архива "Методические указания к лабораторным работам", который расположен в категории "". Всё это находится в предмете "программирование на основе классов и шаблонов" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "программирование на основе классов и шаблонов" в общих файлах.
Онлайн просмотр документа "Описание тестового примера (ОТП)"
Текст 4 страницы из документа "Описание тестового примера (ОТП)"
Номер - 1 Название Аптека
Номер - 2 Название Перекресток
Номер - 3 Название Детский сад
}
*******}}}
Enter
******* Сложение *********
{{{*******
Улица - Ключ для поиска -
Номер улицы - 20 Номер для поиска - 20
Число домов на улице - 0 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Список List пуст
}
*******}}}
{{{*******
Улица - Первая + Вторая Ключ для поиска - Первая + Вторая
Номер улицы - 20 Номер для поиска - 0
Число домов на улице - 6 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название ДЭЗ
Номер - 2 Название Магазин
Номер - 3 Название Жилой
Номер - 4 Название Аптека
Номер - 5 Название Перекресток
Номер - 6 Название Детский сад
}
*******}}}
Enter
******* Параметры *********
Название улицы -> Первая + Вторая
Номер улицы -> 20
Название улицы для поиска-> Первая + Вторая
Номер улицы для поиска-> 0
Число домов на улице = 6
Число жителей на улице = 6
Число квартир на улице = 10
На улице не нужен ремонт домов!
Тип улицы -> двухсторонне движение
Enter
2.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. Результаты работы фрагмента программы
14
5.1.14 Добавление дома на улицу
{{{*******
Улица - Улица с параметрами Ключ для поиска - Улица с параметрами
Номер улицы - 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 Название Детский сад
}
*******}}}
Enter
2.17.Фрагмент текста программы для проверки п.п.5.1.15 ТЗ
2.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. Результаты работы фрагмента программы
15
5.1.15 Удаление дома с улицы
{{{*******
Улица - Улица с параметрами Ключ для поиска - Улица с параметрами
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 6 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Перекресток
Номер - 2 Название Жилой 3
Номер - 3 Название Аптека
Номер - 4 Название Жилой
Номер - 5 Название Магазин
Номер - 6 Название Детский сад
}
*******}}}
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 Название Магазин
}
*******}}}
Enter
2.18.Фрагмент текста программы для проверки п.п.5.1.16 ТЗ
2.18.1. Пояснения текста фрагмента
В данном фрагменте устанавливается (true) и сбрасывается (false) признак ремонта улицы. Это выполняется с помощью метода класса SetRemontStr. Проверка установленного признака выполняется методом класса GetRemontStr. Операции выполняются над улицей S1, к которой предварительно добавлены дома Н2 и Н3.
2.18.2. Текст фрагмента программы
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;
}
getchar();
getchar();
break;
2.18.3. Результаты работы фрагмента программы
16
5.1.16 Установка и снятие признака ремонта улицы
{{{*******
Улица - Улица 1 Ключ для поиска - Улица 1
Номер улицы - 15 Номер для поиска - 15
Число домов на улице - 2 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
}
*******}}}
Улице не нужен ремонт!
После установки!!!!
Улице нужен ремонт!
После снятия признака ремонта!!!!
Улице не нужен ремонт!
Enter
2.19.Фрагмент текста программы для проверки п.п.5.1.17 ТЗ
2.19.1. Пояснения текста фрагмента
В данном фрагменте проверяется автоматическая установка признака ремонта домов улицы (не надо путать с признаком ремонта самой улицы). Признак устанавливается автоматически, если хотя бы один ее дом требует ремонта. Первоначально на улицу S1 добавлено два дома, не требующих ремонта (Н2 и Н3). Затем с помощью метода GetRemont получается признак ремонта домов и распечатывается. Затем у одного из домов Н3 устанавливается признак ремонта дома с помощью метода setAllParam класса Home. Для установки признака дом удаляется с улицы (del) и затем снова добавляется (add). Затем распечатываются характеристики измененного дома. После этого снова с помощью метода GetRemont получается признак ремонта домов улицы и распечатывается.
2.19.2. Текст фрагмента программы
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(&H3 , tail);
H3.setAllParam("Магазин", "д.3", 1,2,3,fast, 3 , true);
H3.printOn(cout);