Описание тестового примера (ОТП) (Методические указания к лабораторным работам), страница 2
Описание файла
Файл "Описание тестового примера (ОТП)" внутри архива находится в следующих папках: Методические указания к лабораторным работам, ЛР_15_КЛР_ПКШ. Документ из архива "Методические указания к лабораторным работам", который расположен в категории "". Всё это находится в предмете "программирование на основе классов и шаблонов" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "программирование на основе классов и шаблонов" в общих файлах.
Онлайн просмотр документа "Описание тестового примера (ОТП)"
Текст 2 страницы из документа "Описание тестового примера (ОТП)"
Enter
Номер сп. -0 Имя - Магазин
Номер сим. -д.7
Номер -7
Этажей -2 Жителей -3
Тип дома - много строений Ремонт не нужен! Число квартир – 5
Enter
2.5.Фрагмент текста программы для проверки п.п.5.1.3 ТЗ
2.5.1. Пояснения текста фрагмента
Описываются 2 дома Н6 и Н7 с полным набором параметров. Далее дом Test создается на основе дома Н6. Характеристики двух домов (Н6 и Test) распечатываются. Долее описывается указатель на дом (pHome). Он инициализируется новым объектом, созданным на основе дома Н7. Характеристики двух домов (Н7 и динамического через pHome) распечатываются. Динамический созданный дом удаляется через указатель.
2.5.2. Текст фрагмента программы
case 3:
cout << "5.1.3 Создание объектов для домов улицы на основе других " << endl;
{
Home H6("Жилой", "д.6", 6,2,3, fast, 100);
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Home Test(H6);
H6.printOn(cout);
Test.printOn(cout);
getchar();
getchar();
cout << "Указатель!!! " << endl;
Home *pHome = new Home (H7);
H7.printOn(cout);
pHome->printOn(cout);
delete pHome;
}
getchar();
break;
2.5.3. Результаты работы фрагмента программы
3
5.1.3 Создание объектов для домов улицы на основе других
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 100
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 100
Enter
Указатель!!!
Номер сп. -0 Имя - Магазин
Номер сим. -д.7
Номер -7
Этажей -2 Жителей -3
Тип дома - много строений Ремонт не нужен! Число квартир - 5
Номер сп. -0 Имя - Магазин
Номер сим. -д.7
Номер -7
Этажей -2 Жителей -3
Тип дома - много строений Ремонт не нужен! Число квартир - 5
Enter
2.6.Фрагмент текста программы для проверки п.п.5.1.4 ТЗ
2.6.1. Пояснения текста фрагмента
Создаются два дома (H6 и H7) с полным набором параметров и распечатываются.
2.6.2. Текст фрагмента программы
case 4:
cout << "5.1.4 Учет свойств дома(см. ТЗ) " << endl;
{
Home H6("Жилой", "д.6", 6,2,3, fast, 100);
H6.printOn(cout);
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
H7.printOn(cout);
}
getchar();
getchar();
break;
2.6.3. Результаты работы фрагмента программы
4
5.1.4 Учет свойств дома(см. ТЗ)
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 100
Номер сп. -0 Имя - Магазин
Номер сим. -д.7
Номер -7
Этажей -2 Жителей -3
Тип дома - много строений Ремонт не нужен! Число квартир - 5
Enter
2.7.Фрагмент текста программы для проверки п.п.5.1.5 ТЗ
2.7.1. Пояснения текста фрагмента
Создается дом с полным набором характеристик (Н6). С помощью метода getParam класса Home получает основные характеристики дома iH (номер) , Etag (число этажей), Men (число жителей), Type (тип дома) , Apart (число квартир). Потом эти параметры отдельно распечатываются. Тип дома определяет перечисление HomeType (fast, multiple, complex). Далее демонстрируется метод setParam, для установки новых параметров дома и выполняется печать.
Во второй части фрагмента определяется дом Н7 и с помощью метода setAllParam устанавливается признак ремонта (true) – 8-й параметр и параметры распечатываются стандартным методом печати – printOn.
2.7.2. Текст фрагмента программы
case 5:
cout << "5.1.5 Задание и получение характеристик дома " << endl;
{
Home H6("Жилой", "д.6", 6,2,3, fast, 100);
H6.printOn(cout);
int iH, Etag , Men , Apart ;
HomeType Type;
// Получение
H6.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;
H6.setParam( 11,12,13,fast, 15 );
H6.printOn(cout);
getchar();
getchar();
cout << "Признак ремонта!!! " << endl;
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
H7.printOn(cout);
H7.setAllParam("Аптека", "10/8", 1,2,3,fast, 5 , true);
H7.printOn(cout);
}
getchar();
break;
2.7.3. Результаты работы фрагмента программы
5
5.1.5 Задание и получение характеристик дома
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 100
Номер -6 Этажей -2 Жителей -3
Тип дома - простой Число квартир - 100
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -11
Этажей -12 Жителей -13
Тип дома - простой Ремонт не нужен! Число квартир - 15
Enter
Признак ремонта!!!
Номер сп. -0 Имя - Магазин
Номер сим. -д.7
Номер -7
Этажей -2 Жителей -3
Тип дома - много строений Ремонт не нужен! Число квартир - 5
Номер сп. -0 Имя - Аптека
Номер сим. -10/8
Номер -1
Этажей -2 Жителей -3
Тип дома - простой Требуется ремонт! Число квартир – 5
Enter
2.8.Фрагмент текста программы для проверки п.п.5.1.6 ТЗ
2.8.1. Пояснения текста фрагмента
Описываются два дома Н1 и Н2 с различными параметрами. Третий дом Temp вычисляется с помощью перегруженной операции “+”. Исходные дома и полученный дом распечатываются (printOn).
2.8.2. Текст фрагмента программы
case 6:
cout << "5.1.6 Сложение двух домов " << endl;
{
Home H1("Жилой", "д.6", 6,2,3, fast , 3);
Home H2("Ашан", "д.7", 9,10,11, multiple , 5);
Home Temp;
Temp = H1 + H2;
H1.printOn(cout);
H2.printOn(cout);
Temp.printOn(cout);
}
getchar();
getchar();
break;
2.8.3. Результаты работы фрагмента программы
6
5.1.6 Сложение двух домов
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 3
Номер сп. -0 Имя - Ашан
Номер сим. -д.7
Номер -9
Этажей -10 Жителей -11
Тип дома - много строений Ремонт не нужен! Число квартир - 5
Номер сп. -0 Имя - Жилой + Ашан
Номер сим. -д.6 + д.7
Номер -6
Этажей -2 Жителей -14
Тип дома - сложный Ремонт не нужен! Число квартир – 8
Enter
2.9.Фрагмент текста программы для проверки п.п.5.1.7 ТЗ
2.9.1. Пояснения текста фрагмента
Описываются два дома: Н1 (с параметрами) и Temp (без параметров). Выполняется присваивание “=” домов. Дома распечатываются стандартным методом printOn. Для иллюстрации того, что дома являются самостоятельными объектами изменяется название дома Н1 (на “Перекресток”) и они снова распечатываются.
2.9.2. Текст фрагмента программы
case 7:
cout << "5.1.7 Перегрузить оператор присваивания для домов " << endl;
{
Home H1("Жилой", "д.6", 6,2,3, fast , 3);
Home Temp;
Temp = H1;
H1.printOn(cout);
Temp.printOn(cout);
H1.setName("Перекресток");
H1.printOn(cout);
Temp.printOn(cout);
}
getchar();
getchar();
break;
2.9.3. Результаты работы фрагмента программы
7
5.1.7 Перегрузить оператор присваивания для домов
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 3
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 3
Номер сп. -0 Имя - Перекресток
Символьное имя не задано
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 3
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир – 3
Enter
2.10.Фрагмент текста программы для проверки п.п.5.1.8 ТЗ
2.10.1. Пояснения текста фрагмента
Описывается дом Н1 с характеристиками и его характеристики распечатываются с помощью стандартного метода printOn.
2.10.2. Текст фрагмента программы
case 8:
cout << "5.1.8 Распечатка характеристик дома " << endl;
{
Home H1("Жилой", "д.6", 6,2,3, fast , 3);
H1.printOn(cout);
}
getchar();
getchar();
break;
2.10.3. Результаты работы фрагмента программы
8
5.1.8 Распечатка характеристик дома
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 3
Enter
2.11.Фрагмент текста программы для проверки п.п.5.1.9 ТЗ
2.11.1. Пояснения текста фрагмента
Описана улица SNew и три дома Н1, Н2 и Н3. Улица улица распечатывается стандартным методом printOn. Дома добавляются на улицу (метод add) и затем улица распечатывается стандартным методом printOn. В распечатке улицы меняется число домов и появляется список названий домов.
2.11.2. Текст фрагмента программы
case 9:
cout << "5.1.9 Учет свойств улицы(см. ТЗ) " << 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.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();