Назад
Вперед
Содержание
Варианты задач
Задание 1
- В каждом варианте создать родительский и дочерний классы.
- В родительском классе описать указанные поля, создать конструктор, а также метод Q, который вычисляет “качество” объекта.
- В дочернем классе описать дополнительное поле p и метод Qp, который определяет “уточненное качество” объекта (с учетом значения поля p).
- В методе Main:
- В цикле из трех витков случайным образом получать значения входных данных.
- Создать объект дочернего класса.
- С помощью унаследованного метода Q вычислить качество объекта.
- С помощью собственного метода Qp вычислить “Уточненное качество” объекта.
Вариант 1
Родительский класс - автомобиль:
- Поле мощность двигателя (кВт);
- Поле количество мест;
- Метод Q=(0,1*Мощность)+Количество мест
Дочерний класс:
- Дополнительное поле p - год изготовления;
- Метод Qp=Q-1,5*(t-p), где t- текущий год
Вариант 2
Родительский класс - человек:
- Поле самооценка (от 1 до 5);
- Поле оценка другими людьми (от 1 до 5);
- Метод Q=(оценка другими)/(самооценка)
Дочерний класс:
- Дополнительное поле p - оценка потомками (от 1 до 5);
- Метод Qp=0,3*Q+0,7*P
Вариант 3
Родительский класс - телевизор:
- Поле диагональ экрана (см);
- Поле звуковая мощность (дБ);
- Метод Q=диагональ+0,05*Мощность
Дочерний класс:
- Дополнительное поле p - cтрана изготовитель
- Метод: если страна Япония, то Qp=2*Q, в остальных случаях Qp=1,5*Q.
Вариант 4
Родительский класс - мушкетер:
- Поле число дуэлей;
- Поле число любовниц;
- Метод Q=2*число дуэлей + число любовниц
Дочерний класс:
- Дополнительное поле p - число бутылок, которые выпивает за 1 раз
- Метод Qp=Q+0,5*p
Вариант 5
Родительский класс - экзамен:
- Поле число студентов на экзамене;
- Поле продолжительность экзамена (час);
- Метод Q=число студентов/продолжительность экзамена
Дочерний класс:
- Дополнительное поле p - процент двоек (от 1 до 100);
- Метод Qp=Q*(100-р)/100
Вариант 6
Родительский класс - солдат:
- Поле рост;
- Поле вес;
- Метод Q=рост*вес
Дочерний класс:
- Дополнительное поле p - образование (начальное, среднее, высшее);
- Метод: если образование высшее, то Qp=2*Q, в остальных случаях Qp=1,5*Q
Вариант 7
Родительский класс - компьютерная сеть:
- Поле число рабочих станций;
- Поле расстояние между станциями (м);
- Метод Q=число станций* расстояние
Дочерний класс:
- Дополнительное поле p - скорость передачи (Мб/с);
- Метод: Qp=Q*р
Вариант 8
Родительский класс - полководец:
- Поле число битв;
- Поле число побед;
- Метод Q=число побед* число побед/число битв
Дочерний класс:
- Дополнительное поле p - число побед с меньшими, чем у противника силами;
- Метод: Qp= Q + p*p/число битв
Вариант 9
Родительский класс - дом:
- Поле число число комнат;
- Поле год постройки;
- Метод Q=число комнат+2/(t-год постройки), где t- текущий год
Дочерний класс:
- Дополнительное поле p - район (центральный, окраина);
- Метод: если район центральный, то Qp=Q*2, в противном случае Qp=Q*0,5
Вариант 10
Родительский класс - королева красоты:
- Поле оценка красоты (от 1 до 5);
- Поле рост;
- Метод Q=красота+рост*0,5
Дочерний класс:
- Дополнительное поле p - интеллект;
- Метод: Qp=Q+0,01*р
Вариант 11
Родительский класс - партия:
- Константа const int XX=10000 - необходимая численность для того, чтобы партия могла послать своего представителя в парламент;
- Поле текущая численность;
- Поле процент голосов на последних выборах;
- Метод Q=0,3*численность+0,7*процент
Дочерний класс:
- Дополнительное логическое поле p - партия посылает своего представителя в парламент или нет;
- Метод: если посылает, то Qp=Q*1,2, В противном случае Qp=Q*0,8
Вариант 12
Родительский класс - программист:
- Поле число написанных программ;
- Поле число языков программирования, которыми владеет;
- Метод Q=число программ*число языков
Дочерний класс:
- Дополнительное поле p - число программ, которые работают правильно;
- Метод: Qp=Q*р/число всех программ
Вариант 13
Родительский класс - митинг:
- Поле n1=число ораторов;
- Поле n2=участников;
- Метод Q=(n2-n1)*n2
Дочерний класс:
- Дополнительное поле p - число ораторов, которые высказывали одинаковые мысли;
- Метод: Qp=Q*р
Вариант 14
Родительский класс - вуз:
- Поле число принятых на 1-й курс;
- Поле число закончивших вуз;
- Метод Q=число закончивших/число принятых
Дочерний класс:
- Дополнительное поле p - процент выпускников, которые работают по специальности;
- Метод: Qp=Q*р
Вариант 15
Родительский класс - попугай:
- Поле возраст;
- Поле размер (в баллах от 1 до 5);
- Метод Q=возраст*размер
Дочерний класс:
- Дополнительное логическое поле p - умение говорить;
- Метод: если умеет говорить, то Qp=Q*10, если не умеет, то Qp=Q
Вариант 16
Родительский класс - спектакль:
- Поле n1=число зрителей в начале спектакля;
- Поле n2=число зрителей в конце;
- Метод Q=n2/n1
Дочерний класс:
- Дополнительное поле p - год написания пьесы;
- Метод: Qp=Q*(t-р+1), где t-текущий год
Вариант 17
Родительский класс - демонстрация:
- Поле n1=число участников;
- Поле n2=число милиционеров;
- Метод Q=n2*n1
Дочерний класс:
- Дополнительное логическое поле p - разрешена демонстрация или нет;
- Метод: если разрешена, Qp=Q, если нет, Qp=10*Q
Задание 2
В каждом варианте создать родительский и дочерний классы.
В методе Main:
- Создать объект родительского класса и применить к нему все методы этого класса.
- Создать объект дочернего класса и применить к нему все методы родительского класса и новые методы дочернего класса.
- Если в дочернем классе метод переопределяется, то обязательно добавить в этот метод комментарий, который идентифицирует метод.
Вариант 1
Создать класс Point, описывающий точку на плоскости по двум ее координатам и содержащий:
- Поле координата x;
- Поле координата y;
- Конструктор, с двумя параметрами, присваивающий значения этим полям.
- Метод Print – вывод координат точки на экран.
- Метод Leng –нахождение расстояния от данной точки до начала координат.
Создать дочерний класс ColorPoint, описывающий цветную точку на плоскости и содержащий:
- Поле типа ConsoleColor, содержащее цвет точки.
- Конструктор. В конструкторе класса использовать три параметра – координаты точки и цвет.
- Переопределяем метод Print – вывод координат точки на экран. Сообщение выводится передаваемым цветом.
В методе Main в цикле из двух витков:
- Случайным образом получить значения координат точки.
- Создать объект родительского класса и применить к нему его методы.
- Создать объект дочернего класса на первом витке синего цвета, на втором витке красного цвета.
- Применить к объекту дочернего класса унаследованный и переопределенный методы.
Отработка:
Вариант 2
Создать класс Pryam, описывающий прямоугольник по двум сторонам и содержащий:
- Поле длина первой стороны;
- Поле длина второй стороны;
- Конструктор, с двумя параметрами, присваивающий значения этим полям.
- Метод Sqr - нахождение площади прямоугольника.
- Метод Diag –нахождение диагонали прямоугольника.
Создать дочерний класс Kvadrat, описывающий квадрат и содержащий:
- Конструктор. В конструкторе класса использовать один параметр – сторону квадрата.
- Собственный метод Radius, вычисляющий радиус вписанной окружности. Радиус равен половине стороны.
В методе Main:
- В методе Main в цикле из пяти витков случайным образом получать значения сторон.
- Если стороны разные (то есть это прямоугольник), то создавать объект родительского класса и применять к нему методы Sqr и Diag.
Если стороны совпадают (то есть это квадрат), то создавать объект дочернего класса и применять к нему методы родительского класса,
а также собственный метод Radius.
Отработка:
Вариант 3
Создать класс Ellips, описывающий эллипс и содержащий:
- Поле a - длина большей полуоси;
- Поле b - длина меньшей полуоси;
- Конструктор, с двумя параметрами, присваивающий значения этим полям.
- Метод Sqr - нахождение площади эллипса (произведение двух его полуосей на число пи);
- Метод Eks–нахождение эксцентриситета:
Создать дочерний класс Krug описывающий круг содержащий:
- Конструктор. В конструкторе класса использовать один параметр r– радиус круга.
- Переопределить метод Sqr. Площадь вычислять по формуле для площади круга. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
- Добавить метод Leng вычисления длины окружности.
В методе Main:
- В методе Main в цикле из пяти витков случайным образом получать значения полуосей эллипса.
- Если полуоси совпадают (то есть это круг), то создавать объект дочернего класса и
применять к нему методы Sqr, Leng и Eks. Если полуоси не совпадают (то есть это эллипс),
то создавать объект родительского класса и применять к нему методы Sqr и Eks.
Отработка:
Вариант 4
Создать класс Parall, описывающий параллелепипеды и содержащий:
- Поле a - длина;
- Поле b - ширина;
- Поле c - высота;
- Конструктор, с тремя параметрами, присваивающий значения этим полям.
- Метод Sqr - площадь поверхности параллелепипеда =2*(a*b+b*c+a*c);
- Метод V- объем параллелепипеда = a*b*c.
Создать дочерний класс Kub описывающий куб содержащий:
- Конструктор. В конструкторе класса использовать один параметр – ребро куба.
- Переопределить метод Sqr. Площадь вычислять по формуле площадь=6*a*a. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
В методе Main:
- В цикле из пяти витков случайным образом получать значения ребер параллелепипеда.
- Если все три ребра равны (то есть это куб), то создавать объект дочернего класса и применять к нему методы Sqr и V. Если ребра не равны (то есть это параллелепипед), то создавать объект родительского класса и применять к нему те же методы.
Отработка:
Вариант 5
Создать класс Triangle, описывающий треугольник по двум сторонам и углу, и содержащий:
- Поле длина первой стороны;
- Поле длина второй стороны;
- Поле угол между сторонами (в радианах)
- Поле c- длина третьей стороны;
- Поле p - полупериметр.
- Конструктор, с тремя параметрами (две стороны и угол), присваивающий значения всем полям.
В конструкторе перевести угол из градусов в радианы, а также вычислить величину третьей стороны и полупериметр.
Сторону определять по теореме косинусов:
- Метод Sqr - нахождение площади треугольника по формуле Герона. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
- Метод Radius–нахождение радиуса вписанной окружности треугольника. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
Создать дочерний класс Rectangular, описывающий прямоугольный треугольник и содержащий:
- Конструктор. В конструкторе класса использовать два параметра – катеты прямоугольного треугольника. Углу присвоить значение pi/2
- Переопределить метод Sqr, вычисляющий площадь прямоугольного треугольника как половину произведения его катетов. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
- Переопределить метод Radius, вычисляющий радиус вписанной окружности. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
В методе Main:
- В цикле из пяти витков случайным образом получать значения сторон и угла между ними (в градусах от 85 до 95).
- Если угол прямой (то есть это прямоугольный треугольник), то создавать объект дочернего класса и применять к нему методы Sqr и Radius. Если угол не прямой, (то есть это обычный треугольник), то создавать объект родительского класса и применять к нему эти же методы.
Отработка:
Вариант 6
Создать класс Par, описывающий параллелограмм по двум сторонам и углу, и содержащий:
- Поле длина первой стороны;
- Поле длина второй стороны;
- Поле угол между сторонами (в радианах)
- Конструктор, с тремя параметрами, присваивающий значения этим полям. В конструкторе перевести угол из градусов в радианы.
- Метод Sqr - нахождение площади параллелограмма (произведение двух его сторон на синус угла между ними);
- Метод Diag –нахождение диагоналей параллелограмма по теореме косинусов. Метод должен возвращать одну диагональ через return, а вторую через параметр с атрибутом out.
Создать дочерний класс Romb, описывающий ромб и содержащий:
- Конструктор. В конструкторе класса использовать два параметра – сторону ромба и угол между сторонами.
- Описать собственный метод Radius, вычисляющий радиус вписанной окружности.
В методе Main:
- В методе Main в цикле из пяти витков случайным образом получать значения сторон и угла между ними.
- Если стороны разные (то есть это параллелограмм), то создавать объект родительского класса и применять к нему методы Sqr и Diag. Если стороны совпадают (то есть это ромб), то создавать объект дочернего класса и применять к нему методы родительского класса, а также собственный метод Radius.
Отработка:
Вариант 7
Создать класс Par, описывающий параллелограмм и содержащий:
- Поле длина первой стороны;
- Поле длина второй стороны;
- Поле угол между сторонами (в радианах)
- Конструктор, с тремя параметрами, присваивающий значения этим полям. В конструкторе перевести угол из градусов в радианы.
- Метод Sqr - нахождение площади параллелограмма (произведение двух его сторон на синус угла между ними);
- Метод Diag –нахождение диагоналей параллелограмма по теореме косинусов. Метод должен возвращать одну диагональ через return, а вторую через параметр с атрибутом out. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
Создать дочерний класс Pryam описывающий прямоугольник, содержащий:
- Конструктор. В конструкторе класса использовать два параметра – стороны прямоугольника (третьему полю присвоить значение pi/2).
- Переопределить метод Diag. Диагонали вычислять по теореме Пифагора. В методе обязательно должен выводиться комментарий, который идентифицирует метод.
В методе Main:
- В методе Main в цикле из пяти витков случайным образом получать значения сторон и угла между ними (в градусах от 85 до 95).
- Если угол прямой (то есть это прямоугольник), то создавать объект дочернего класса и применять к нему методы Sqr и Diag. Если угол не прямой (то есть это параллелограмм), то создавать объект родительского класса и применять к нему эти же методы
Отработка:
Вариант 8
Создать класс Romb, описывающий ромбы по его диагоналям и содержащий:
- Поле d1 - первая диагональ
- Поле d2 - вторая диагональ
- Конструктор, с двумя параметрами, присваивающий значения этим полям.
- Метод Sqr - площадь ромба = d1*d2/2;
- Метод Side - вычисление стороны ромба
Создать дочерний класс Kvadrat, описывающий квадрат и содержащий:
- Конструктор. В конструкторе класса использовать один параметр – диагональ квадрата.
- Переопределить метод Side:
В методе обязательно должен выводиться комментарий, который идентифицирует метод.
В методе Main:
- В цикле из пяти витков случайным образом получать значения диагоналей ромба.
- Если диагонали равны (то есть это квадрат), то создавать объект дочернего класса и
применять к нему методы Sqr и Side. Если диагонали не равны (то есть это ромб),
то создавать объект родительского класса и применять к нему те же методы.
Отработка:
Вариант 9
Создать класс Triangle, описывающий треугольник по трем его сторонам и содержащий:
- Поле длина первой стороны;
- Поле длина второй стороны;
- Поле длина третьей стороны;
- Конструктор, с тремя параметрами, присваивающий значения этим полям.
- Метод Print – вывод значений полей на экран.
- Метод Perimeter –нахождение периметра треугольника.
- Метод Sqr –нахождение площади треугольника по формуле Герона. Добавить в метод коментарий.
- Метод Exists – условие существования треугольника.
Создать дочерний класс Equilateral, описывающий равносторонний треугольник и содержащий:
- Конструктор. В конструкторе класса использовать один параметр – сторона равностороннего треугольника.
- Переопределяем метод Sqr– вычисление площади равностороннего треугольника по формуле. В метод должен быть добавлен комментарий.
В методе Main в цикле из трех витков:
- Случайным образом получить значения сторон треугольника.
- Если стороны одинаковые, то:
- Создать объект дочернего класса
- Применить к объекту унаследованные и переопределенный методы.
- Если стороны разные, то:
- Создать объект родительского класса
- Применить к нему его методы.
Отработка:
Вариант 10
Создать класс Man, описывающий человека и содержащий:
- Поле имя;
- Поле год рождения;
- Конструктор, с двумя параметрами, присваивающий значения этим полям.
- Метод Print – вывод значений полей на экран.
- Метод Age, нахождения возраста человека. В параметре метода ткущий год
Создать класс Entrant, дочерний к Man, описывающий абитуриента и содержащий:
- Поле сумма баллов на вступительных экзаменах. Заполняется в конструкторе.
- Логическое поле: поступил или нет. Заполняется в методе Acted.
- Конструктор. В конструкторе класса использовать три параметра – имя, год рождения, сумма баллов.
- Метод Acted. В параметре метода проходной балл. Если сумма набранных баллов больше или равна проходному баллу, то абитуриент поступил. В противном случае – не поступил. Метод заполняет логическое поле.
- Метод PrintЕ – вывод значений полей абитуриента на экран.
Создать класс Student, дочерний к Man, описывающий абитуриента и содержащий:
- Поле факультет
- Поле курс
- Поле средний балл за сессию. Заполняется в конструкторе.
- Поле стипендия. Заполняется в методе Grant.
- Конструктор. В конструкторе класса использовать пять параметров – имя, год рождения, факультет , курс, средний балл за сессию.
- Метод Grant. В параметре метода указывается минимальный балл, при котором начисляется стипендия. Метод заполняет поле стипендия.
- Метод PrintS– вывод значений полей студента на экран.
В методе Main:
Для абитуриента:
- Случайным образом получить значение проходного балла.
- Создать двух абитуриентов, со случайным годом рождения и случайной суммой баллов.
- Применить к объектам унаследованные и собственные методы.
- Вывести информацию на экран.
Для студента:
- Случайным образом получить значение среднего балла для получения стипендии.
- Создать двух студентов, со случайным годом рождения и случайным средним баллом.
- Применить к объектам унаследованные и собственные методы.
- Вывести информацию на экран.
Отработка:
Вариант 11
Создать класс Transport, описывающий транспортное средство и содержащий:
- Поле вид топлива;
- Поле год выпуска;
- Поле средняя скорость.
- Конструктор, с тремя параметрами, присваивающий значения этим полям.
- Метод Print – вывод значений полей на экран.
- Метод Age, нахождение возраста транспортного средства. В параметре метода текущий год
Создать класс Car, дочерний к Transport, описывающий автомобиль и содержащий:
- Поле марка.
- Поле номер.
- Конструктор. В конструкторе класса использовать пять параметров – три поля родительского класса и два поля дочернего.
- Метод PrintC – вывод значений полей автомобиля на экран.
Создать класс Train, дочерний к Transport, описывающий поезд и содержащий:
- Поле количество вагонов
- Поле количество мест в вагоне.
- Поле всего мест в поезде.
- Конструктор. В конструкторе класса использовать пять параметров – три поля родительского класса и два поля дочернего. Вычислить значение поля всего мест в поезде.
- Метод PrintT– вывод значений полей поезда на экран.
В методе Main:
Для автомобиля:
- Случайным образом получить значения: год выпуска, средняя скорость, номер.
- Создать два автомобиля с бензиновыми двигателями.
- Применить к объектам унаследованные и собственные методы.
- Вывести информацию на экран.
Для поезда:
- Случайным образом получить значения: год выпуска, средняя скорость, количество вагонов, количество мест в вагоне.
- Создать две электрички.
- Применить к объектам унаследованные и собственные методы.
- Вывести информацию на экран.
Отработка:
Вариант 12
Создать класс Employee, описывающий сотрудника фирмы и содержащий:
- Поле идентификационный код (четыре цифры);
- Поле год принятия на работу;
- Поле оклад;
- Поле премия;
- Конструктор, с тремя параметрами, присваивающий значения первым трем полям.
- Метод Print – вывод значений полей на экран.
- Метод Bonus, вычисления премии. Метод заполняет поле премия. В параметре метода текущий год. Премия начисляется так:
- Если стаж работы меньше 5 лет, то премия=10% от оклада.
- Если стаж работы от 5 до 10 (включительно), то премия=15% от оклада
- Если стаж работы больше 10, то премия=20% от оклада
Создать класс Vip, дочерний к Employee, описывающий Vip менеджера и содержащий:
- Логическое поле, указывающее, что это Vip сотрудник.
- Поле дополнительная премия.
- Конструктор. В конструкторе класса использовать четыре параметра – три поля родительского класса и логическое поле дочернего.
- Метод BonusVip, вычисление дополнительной премии. Метод заполняет поле дополнительная премия. Дополнительная премия равна половине обычной премии. В этом методе используется поле премия из родительского класса
- Метод PrintVip – вывод значения дополнительной премии на экран.
В методе Main, в цикле из четырех витков:
- Случайным образом получить значения: кода сотрудника, года принятия на работу, оклада, признака Vip или обычный сотрудник.
Для обычного сотрудника:
- Создать объект.
- Применить к объекту собственные методы Bonus и Print.
Для Vip сотрудника:
- Создать объект.
- Применить к объекту унаследованные методы Bonus и Print, а также собственные методы BonusVip и PrintVip
Отработка:
Вариант 13
Создать класс Tax, описывающий налогоплательщика и содержащий:
- Поле идентификационный код (четыре цифры);
- Поле год рождения;
- Поле доход;
- Поле налог.
- Конструктор, с тремя параметрами, присваивающий значения первым трем полям.
- Метод PrintId – вывод значений первых трех полей на экран.
- Метод PrintTax – вывод значения налога на экран.
- Метод CalculateTax, вычисления налога. Метод заполняет поле налог. В параметре метода текущий год. Налог вычисляется так:
- Если возраст меньше 17 лет, то налог=0;
- Если доход меньше 1000, то налог=0;
- Если доход работы от 1000 до 10000 (включительно), то налог=20% от дохода;
- Если доход больше 10000, то налог=25% от дохода.
Создать класс Privilege, дочерний к Tax, описывающий льготника и содержащий:
- Логическое поле, указывающее, что это льготник.
- Поле льготный налог.
- Конструктор. В конструкторе класса использовать четыре параметра – три поля родительского класса и логическое поле дочернего.
- Метод CalculateTaxVip, вычисление льготного налога. Метод заполняет поле льготный налог. Льготный налог равен половине обычного. В этом методе используется поле налог из родительского класса
- Переопределяется метод PrintTax – вывод значения льготного налога на экран.
В методе Main, в цикле из четырех витков:
- Случайным образом получить значения: кода сотрудника, года рождения, дохода, признака льготный или обычный налогоплательщик.
Для обычного налогоплательщика:
- Создать объект.
- Применить к объекту собственные методы CalculateTax, PrintId и PrintTax.
Для налогоплательщика имеющего льготы:
- Создать объект.
- Применить к объекту унаследованные методы CalculateTax, PrintId , а также собственный методы CalculateTaxVip и переопределенный метод PrintTax
Отработка:
Вариант 14
Создать родительский класс Apartment, описывающий помещение
Элементы класса:
- Поля - длина, ширина и высота помещения;
- Поле squareWall - площадь стен помещения;
- Поле plaster-количество материала, необходимого для его штукатурки.
- Конструктор с тремя параметрами (длина, ширина, высота). В конструкторе определить площадь стен squareWall и необходимое количество штукатурки plaster (squareWall*5).
- Свойства только для чтения, возвращающие значения полей squareWall и plaster.
- Логический метод Work (с одним параметром). В параметре количество штукатурки, которое расходуется за 1 день.
Метод уменьшает значение в поле plaster на величину заданную в параметре и возвращает значение true.
Если в результате уменьшения в поле plaster будет 0 или отрицательная величина, то возвращается значение false.
Создать класс Room дочерний к классу Apartment, описывающий комнату и содержащий:
- Поле ob - нужное количество рулонов обоев (1м на 10м)
- Конструктор с тремя параметрами (длина, ширина, высота). В конструкторе определить площадь стен squareWall,
необходимое количество штукатурки plaster (squareWall*5) и вычислить необходимое количество рулонов обоев ob.
- Свойство только для чтения, возвращающее значение поля ob.
- Переопределить родительский метод Work (с одним параметром). В параметре количество рулонов обоев, которое расходуется за 1 день.
Метод уменьшает значение в поле ob на величину заданную в параметре и возвращает значение true.
Если в результате уменьшения в поле ob будет 0 или отрицательная величина, то возвращается значение false.
Создать класс Kitchen дочерний к классу Apartment описывающий кухню и содержащий:
- Поле plitka - нужное количество штук плитки (размерами 0,3 м на 0,4 м)
- Конструктор с тремя параметрами (длина, ширина, высота).
В конструкторе определить площадь стен squareWall, необходимое количество штукатурки plaster (squareWall*5) и
вычислить необходимое количество штук плитки plitka.
- Свойство только для чтения, возвращающее значение поля plitka.
- Переопределить родительский метод Work (с одним параметром). В параметре количество плиток, которое расходуется за 1 день. Метод уменьшает значение в поле plitka на величину заданную в параметре и возвращает значение true.
Если в результате уменьшения в поле plitka будет 0 или отрицательная величина, то возвращается значение false.
В методе Main:
Необходимо вычислить сколько дней займет ремонт и вывести состояние оставшихся материалов.
Штукатурить объекты будем по 50 кг штукатурки в день, обои клеить по 2 рулона в день, плитку класть по 20 штук в день.
Введем размеры комнаты и кухни
Создадим два объекта: комнату и кухню.
Для комнаты:
- Создадим объект родительского класса Apartment с размерами для комнаты
- С помощью свойств этого класса получим площадь стен комнаты и необходимое количество штукатурки.
- В цикле будем вызывать метод Work родительского класса с параметром 50, до тех пор, пока не закончится штукатурка для комнаты и подсчитаем количество дней, необходимых на оштукатуривание комнаты.
- Создадим объект класса Room с размерами для комнаты
- С помощью свойства этого класса получим необходимое количество рулонов обоев для оклеивания.
- В цикле будем вызывать метод Work класса Room с параметром 2, до тех пор, пока не закончатся обои и подсчитаем количество дней, необходимых на оклеивание комнаты обоями.
Для кухни:
- Создадим объект родительского класса Apartment с размерами для кухни
- С помощью свойств этого класса получим площадь стен кухни и необходимое количество штукатурки.
- В цикле будем вызывать метод Work родительского класса с параметром 50, до тех пор, пока не закончится штукатурка для кухни и подсчитаем количество дней, необходимых на оштукатуривание кухни.
- Создадим объект класса Kitchen с размерами для кухни
- С помощью свойства этого класса получим необходимое количество плиток для облицовки.
- В цикле будем вызывать метод Work класса Kitchen с параметром 20, до тех пор, пока не закончится плитка и подсчитаем количество дней, необходимых на облицовку кухни плиткой.
Подсчитаем общую длительность ремонта и выведем состояние полей: количество штукатурки, количество рулонов обоев, количество плитки (должны быть 0).
Отработка:
Вариант 15
Создать родительский класс Hotel, описывающий гостиницу
Элементы класса:
- Поле total- количество мест в гостинице;
- Поле reserved- количество занятых мест;
- Поле sv – количество свободных мест.
- Конструктор класса с одним параметром (всего мест). В конструкторе установить: занятых мест нет, все места свободны.
- Логический метод Reserve (без параметров). Метод уменьшает на 1 количество свободных мест, увеличивает на 1 количество занятых мест и возвращает значение true. Если поселение человека невозможно, то возвращается значение false.
- Логический метод Vacating (без параметров). Метод уменьшает на 1 количество мест занятых , увеличивает на 1 количество свободных мест и возвращает значение true. Если все места свободны, то возвращается значение false.
- Метод ToStr без параметров, возвращающий строку, с количеством свободных и занятых мест.
Создать класс Sanatory дочерний к классу Hotel, описывающий санаторий и содержащий:
- Поле medics – количество врачей в санатории
- Конструктор класса с одним параметром (количество мест в санатории). В конструкторе полю medics присвоить значение 0.
- Свойство только для чтения, возвращающее значение поля medics.
- Метод KolMedics, вычисляющий количество врачей в санатории по формуле: количество занятых мест разделить на 10 +1;
- Метод ToStr1 без параметров, возвращающий строку, с количеством врачей в санатории.
Создать класс Cruise дочерний к классу Hotel, описывающий круизное судно и содержащий:
- Поле stop – количество остановок судна
- Конструктор класса с двумя параметрами (количество мест на судне и количество остановок). В конструкторе полю stop присвоить значение параметра.
- Свойство для чтения и записи поля stop
- Метод ToStr2 без параметров, возвращающий строку, в которой указывается, сколько осталось проехать остановок.
В методе Main:
- Создадим объект санаторий со случайным количеством мест.
- В цикле, с помощью метода Reserve поместим в него случайное количество людей. Если не всем хватает места, выдать сообщение об этом.
- С помощью метода KolMedics определим необходимое количество врачей.
- С помощью методов ToStr и ToStr1 покажем состояние санатория.
- В цикле, с помощью метода Vacating удалим из него случайное количество людей. Если уехали все, выдать сообщение об этом.
- С помощью метода KolMedics пересчитаем необходимое количество врачей.
- С помощью методов ToStr и ToStr1 покажем состояние санатория.
Для объекта санаторий первая отработка:
Для объекта санаторий вторая отработка:
В методе Main:
- Создадим объект круиз со со случайным количеством мест и случайным количеством остановок.
- В цикле, с помощью метода Reserve поместим в него случайное количество людей. Если не всем хватает билетов, выдать сообщение об этом.
- С помощью метода ToStr покажем состояние круиза (сколько мест занято и сколько свободно).
- Во вложенных циклах, с помощью метода Vacating высадим с круизного судна по 10 человек на каждой остановке.
- После каждой остановки:
- с помощью метода ToStr покажем состояние круиза.
- с помощью свойства поля stop уменьшим на 1 количество оставшихся остановок.
- с помощью метода ToStr2 покажем сколько остановок осталось
Для объекта круиз первая отработка:
Для объекта круиз вторая отработка:
Назад
Вперед
Содержание