МУ_ДЗ_2014 (1079920), страница 28
Текст из файла (страница 28)
{{{*******
Улица - Ленинский проспект Ключ для поиска - Ленинский проспект
Номер улицы - 0 Номер для поиска - 0
Число домов на улице - 3 Улица отремонтирована.
Все эти дома отремонтированы.
Список {
Номер - 1 Название Жилой
Номер - 2 Название Магазин
Номер - 3 Название ДЭЗ
}
*******}}}
Enter
2.4.Фрагмент текста программы для проверки п.п.5.1.2 ТЗ
2.4.1. Пояснения текста фрагмента
Описывается семь объектов домов для вызова разных конструкторов. Далее они попарно распечатываются, для чего нужно нажимать клавишу Enter.
2.4.2. Текст фрагмента программы
case 2:
cout << "5.1.2 Создание объектов для домов улицы " << 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);
getchar();
H3.printOn(cout);
H4.printOn(cout);
getchar();
H5.printOn(cout);
H6.printOn(cout);
getchar();
H7.printOn(cout);
}
getchar();
2.4.3. Результаты работы фрагмента программы
2
Enter
5.1.2 Создание объектов для домов улицы
Номер сп. -0 Имя не задано
Символьное имя не задано
Номер -0
Этажей -0 Жителей -0
Тип дома - простой Ремонт не нужен! Число квартир - 0
Номер сп. -0 Имя - Жилой
Номер сим. -д.2
Номер -0
Этажей -0 Жителей -0
Тип дома - простой Ремонт не нужен! Число квартир - 0
Enter
Номер сп. -0 Имя - Жилой
Номер сим. -д.3
Номер -3
Этажей -0 Жителей -0
Тип дома - простой Ремонт не нужен! Число квартир - 0
Номер сп. -0 Имя - Жилой
Номер сим. -д.4а
Номер -4
Этажей -2 Жителей -0
Тип дома - простой Ремонт не нужен! Число квартир - 0
Enter
Номер сп. -0 Имя - ДЭЗ
Номер сим. -д.5
Номер -5
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 0
Номер сп. -0 Имя - Жилой
Номер сим. -д.6
Номер -6
Этажей -2 Жителей -3
Тип дома - простой Ремонт не нужен! Число квартир - 0
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);