Назад Вперед Содержание

Варианты задач

Задание

Описать классы, методы и события в соответствии с вариантом.

В методе Main класса Program смоделировать задачу.

Вариант 1

Проект «Шлагбаум»

Классы: Man (человек), Barrier (шлагбаум) и Program (тестирующий)

В классе Barrier описать два статических события:

  1. Event1. Шлагбаум открыт.
  2. Event2. Шлагбаум закрыт

В классе Program:

  1. Класс Man (человек)
  2. Класс Barrier (шлагбаум).

Тестирование проекта:

ВАРИАНТ 2

Проект «Уроки»

Классы: Teacher (учитель), Student (ученик), Bell (звонок) и Program (тестирующий)

В классе Bell возникает два события:

  1. Event1. Звонок на урок
  2. Event2. Звонок с урока.

В классе Program:

  1. Класс Bell (звонок)
  2. Класс Teacher (учитель)
  3. Класс Student (ученик)

Тестирование проекта:

ВАРИАНТ 3

Проект «Театр»

Классы: Actor (актер), Spectator (зритель), Bell (звонок) и Program (тестирующий)

В классе Bell возникает три события:

  1. Event1. Первый звонок
  2. Event2. Второй звонок
  3. Event3. Третий звонок

В классе Program:

  1. Класс Bell (звонок)
  2. Класс Actor (актер)
  3. Класс Spectator (зритель)

Тестирование проекта:

ВАРИАНТ 4

Проект «Квартира»

Классы: ManagingCompany (Жэк), Lodger (квартиросъемщик), Meter (Счетчик дней) и Program (тестирующий)

В классе Meter (Счетчик) возникает событие Event – 10 число месяца

В классе Program:

  1. Класс Meter (Счетчик)
  2. Класс Lodger (квартиросъемщик)
  3. Класс ManagingCompany (Жэк)

    Тестирование проекта:

    ВАРИАНТ 5

    Проект «Телефон»

    Классы: Telephone (телефон), Subscriber (абонент), Answerphone (автоответчик), Talk (разговор) и Program (тестирующий)

    В классе Telephone возникает событие Event1 – Звонит телефон. На это событие подписан класс Subscriber.

    В классе Subscriber возникает одно из двух событий:

    В классе Program:

    Создаются объекты всех классов. Выполняется подписка на события.

    К объекту класса Telephone (телефон) применяют метод, который генерирует событие Event1. Обработчик этого события из класса Subscriber выдает сообщение и генерирует одно из двух событий: Event2 или Event3.

    Классы

    1. Telephone (телефон)
      • Метод, генерирующий событие Event1.
    2. Subscriber (абонент)
      • Метод, обработчик события Event1. Выводит сообщение: «Звонит телефон» и случайным образом генерирует одно из двух событий Event2 или Event3 (сняли или не сняли трубку).
    3. Answerphone (автоответчик)
      • Метод, обработчик события Event2. Выводит сообщение: «Не снимаю трубку. Автоответчик: введите сообщение:». Затем с клавиатуры вводится сообщение.
    4. Talk (разговор)
      • Метод, обработчик события Event3. Выводит сообщение: «Снимаю трубку. Алло?»

    Тестирование проекта

    ВАРИАНТ 6

    Проект «Такси»

    Классы: Client (клиент), Taxi (такси) и Program (тестирующий)

    В классе Client возникает два события:

    В классе Taxi возникает два события:

    В классе Program:

    Вводится имя пассажира и два адреса: адрес 1 и адрес 2 (откуда и куда ехать).

    Далее создается объект класса Client с введёнными значениями в качестве параметров и объект класса Taxi.

    К объекту класса Client применяется метод, который генерирует событие Event1.

    Обработчик события Event1 в классе Client зеленым цветом печатает сообщение: «имя пассажира вызвал такси на адрес 1».

    Обработчик события Event1 в классе Taxi желтым цветом печатает сообщение: «такси прибыло» и генерирует событие Event2.

    Обработчик события Event2 в классе Client зеленым цветом печатает сообщение: «имя пассажира сел в такси».

    Обработчик события Event2 в классе Taxi желтым цветом печатает сообщение: «Едем» и генерирует событие Event3.

    Обработчик события Event3 в классе Taxi желтым цветом печатает сообщение: «Приехали».

    Обработчик события Event3 в классе Client зеленым цветом печатает сообщение: «имя пассажира приехал по адресу 2» и генерирует событие Event4.

    обработчик события Event4 в классе Taxi желтым цветом печатает сообщение: «Такси свободно».

    1. Класс Client
        Поля:
      • имя клиента
      • адрес 1 (откуда ехать)
      • адрес 2 (куда ехать)
        Методы:
      • Конструктор с параметрами;
      • Метод, генерирующий событие Event1
      • Метод обработчик события Event1 зеленым цветом печатает сообщение: «имя пассажира вызвал такси на адрес 1».
      • Метод обработчик события Event2 зеленым цветом печатает сообщение: «имя пассажира сел в такси».
      • Метод обработчик события Event3 зеленым цветом печатает сообщение: «имя пассажира приехал по адресу 2» и генерирует событие Event4.
    2. Класс Taxi
        Методы:
      • Метод обработчик события Event1 желтым цветом печатает сообщение: «такси прибыло» и генерирует событие Event2.
      • Метод обработчик события Event2 желтым цветом печатает сообщение: «Едем » и генерирует событие Event3.
      • Метод обработчик события Event3 желтым цветом печатает сообщение: «Приехали».
      • Метод обработчик события Event4 желтым цветом печатает сообщение: «Такси свободно».

    Тестирование проекта

    ВАРИАНТ 7

    Проект «Цветик-Семицветик»

    Классы: Flower (цветок), Boy (мальчик), Girl(девочка) и Program (тестирующий).

    В классе Flower возникает два события:

    В классе Program:

    Создать объекты цветок, девочка и мальчик.

    В цикле, пока не кончатся лепестки вызывать метод, который уменьшает количество лепестков на 1 и генерирует или событие Event1 или событие Event2.

    1. Класс Flower (цветок).
        Поля
      • Открытое статическое поле - сколько осталось лепестков на цветке. В начале – количество лепестков – 7.
        Методы
      • Метод генерирующий события: если количество лепестков больше одного, то количество лепестков уменьшается на 1 и возникает событие Event1. В противном случае возникает событие Event2.
    2. Класс Girl(девочка)

      Поле - массив строк, содержащий 6 желаний девочки.

        Методы
      • Метод – обработчик события Event1: выводит на экран очередное желание девочки.
      • Метод – обработчик события Event2: выводит на экран желание девочки, чтобы мальчик выздоровел.
    3. Класс Boy (мальчик)
        Методы
      • Метод – обработчик события Event1: выводит на экран сообщение: «Я не могу, я болен».
      • Метод – обработчик события Event2: выводит на экран сообщение: «Ура!!! Я здоров».

    Тестирование проекта

    ВАРИАНТ 8

    Проект «Магазин»

    Классы: Shop (магазин), Buyer(Покупатель) и Program (тестирующий).

    В классе Buyer возникает два события:

    В классе Program:

    1. Создается объект магазин.
    2. Случайным образом создается изначальное количество товара в магазине.
    3. В цикле, пока не кончится товар (пока не возникло событие Event2), покупатели выполняют покупки. А именно:
      • Случайным образом создается число единиц товара, которое хочет купить очередной покупатель.
      • Создается объект класса Buyer (покупатель) с полученным числом единиц товара в качестве значения поля.
      • К этому объекту класса Buyer применяется метод, который генерирует или событие Event1 или событие Event2. Обработчики этих событий из класса Buyer и Shop реагируют на них.

    Классы

    1. Buyer (Покупатель)
      • Числовое поле – число единиц товара, которое нужно купить покупателю.
      • Конструктор с параметром, присваивающий значение этому полю
      • Логическое поле, имеющее начальное значение false, и меняющееся на true, когда возникнет событие Event2.
      • свойство для чтения значения логического поля
      • Метод, генерирующий события. Если в магазине есть нужное покупателю количество товара, то количество товара в магазине соответственно уменьшается и возникает событие Event1. Если товара в магазине недостаточно, то логическому полю присваивается значение true и возникает событие Event2.
      • Метод, обработчик события Event1. Выводит сообщение: «Купил товара = <количество>»
      • Метод, обработчик события Event2. Выводит сообщение: «Не смог купить товара= <количество>»
    2. Shop (Магазин)
      • Открытое статическое поле – количество единиц товара в магазине.
      • Метод, обработчик события Event1. Показывает, сколько товара осталось. Выводит сообщение: «Товара в магазине <количество>»
      • Метод, обработчик события Event2. Выводит сообщение: «Заказать товар на базе»

    Тестирование проекта

    ВАРИАНТ 9

    Проект «Соревнования по стрельбе»

    Классы: Sportsman (спортсмен), Judge (Судья) и Program (тестирующий).

    В классе Sportsman возникает два события:

    В классе Judge возникает два события:

    В классе Program:

    1. Определяется количество спортсменов, которые участвуют в соревновании.
    2. Создается объект судья.
    3. В цикле выполняется следующее:
      • Создается объект класса Sportsman (спортсмен) .
      • К этому объекту применяется метод, который генерирует или событие Event1 или событие Event2. Обработчики этих событий из класса Judge реагируют на них: печатают сообщение о том, попал ли спортсмен в цель.
    4. После цикла к объекту класса Judge (судья) применяют метод, который генерирует или событие Event3 или событие Event4, в зависимости от того, как выступила команда. Печатается сообщение об итогах.

    Классы

    1. Sportsman (Спортсмен)
      • Числовое поле – номер спортсмена
      • Конструктор с параметром, присваивающий значение этому полю
      • Логическое поле, которому присваивается значение false, если спортсмен не попал в цель и true, если попал.
      • свойство для чтения значения логического поля
      • Метод, генерирующий события. Случайным образом получают значение логической переменной. Если ее значение true, генерируется событие Event1, если false, то событие Event2.
      • Метод, выводящий на экран номер спортсмена.
    2. Judge (Судья)
      • Числовое поле – количество спортсменов, которые участвуют в соревновании.
      • Конструктор с параметром, присваивающий значение этому полю
      • Числовое поле, содержащее счетчик попаданий в цель. Начальное значение ноль.
      • Метод, обработчик события Event1. Выводит сообщение: «Попал» и увеличивает счетчик попаданий в цель.
      • Метод, обработчик события Event2. Выводит сообщение: «Не попал»
      • Метод, генерирующий события. Если в цель попали больше половины спортсменов, то генерируется событие Event3, в противном случае событие Event4.
      • Метод, обработчик события Event3. Выводит сообщение: «Молодцы».
      • Метод, обработчик события Event4. Выводит сообщение: «Нужно больше тренироваться»

    Тестирование проекта

    ВАРИАНТ 10

    Проект «Детский сад»

    Классы: Child (Ребенок), PlaySchool (Детский сад), Manageress (Заведующая), Department (районо) и Program (тестирующий).

    В классе Program вводится количество мест в садике.

    Далее в цикле создаются объекты класса Child и для каждого из них вызывается метод PushChild класса PlaySchool, который имитирует зачисление ребенка в детский сад.

    Когда садик окажется полностью заполненным, в классе PlaySchool генерируется событие NotPlaces (нет мест).

    В классе Manageress событие NotPlaces обрабатывается (обработчик Queue). По завершении работы метода Queue генерируется событие Zapys (записываем в очередь).

    В классе Department это событие (Zapys) обрабатывается (обработчик Place).

    1. Класс: Child (Ребенок)
      • Поле номер ребенка
      • Свойство для чтения поля
      • Конструктор с параметром
    2. Класс: PlaySchool (Детский сад)
      • Поле количество мест в детском саду.
      • Конструктор – с параметром
      • Метод PushChild. В параметре метода очередной ребенок (объект класса Child). В методе отображается процесс зачисления ребенка в детский сад - выводится сообщение "Ребенок <Номер ребенка> зачислен. После того как все места будут заняты, генерируется событие NotPlaces
    3. Класс: Manageress (Заведующая)
      • Метод Queue - обработчик события NotPlaces, выдает сообщения "Мест нет! Предлагаю встать в очередь" и генерирует событие Zapys
    4. Department (Районо)
      • Метод Place обработчик события Zapys выводит сообщение: «Остальные дети записываются в очередь».

    Тестирование проекта

    ВАРИАНТ 11

    Проект «Кинотеатр»

    Классы: Viewer (Зритель), Cinema (КИНОТЕАТР), Security (Дежурный), Light (Cвет), Hardware (АППАРАТНАЯ) и Program (тестирующий).

    В классе Program вводится количество мест в зале и название фильма.

    Далее в цикле создаются объекты класса Viewer и для каждого из них вызывается метод PushViewer класса Cinema, который имитирует заполнение зала зрителями.

    Когда зал окажется полностью заполненным, в классе Cinema генерируется событие NotPlaces (нет мест).

    В классе Security событие NotPlaces обрабатывается (обработчик CloseZal). По завершении работы метода CloseZal генерируется событие SwitchOff (выключаем свет).

    В классе Light событие SwitchOff обрабатывается (обработчик Turn) и возникает следующее событие Begin (начало фильма).

    В классе Hardware событие Begin обрабатывается (обработчик FilmOn) выводится сообщение – "Начинается фильм".

    1. Класс: Viewer(Зритель)
      • Поле - номер зрителя
      • Свойство для чтения поля
      • Конструктор с параметром
    2. Класс: Cinema(КИНОТЕАТР)
      • Поле количество мест в зале.
      • Конструктор –с параметром
      • Метод PushViewer. В параметре метода очередной зритель (объект класса Viewer). В методе отображается процесс заполнения зала - выводится сообщение "Зритель <Номер зрителя> занял свое место" и, после того как последний зритель займет свое место, генерируется событие NotPlaces
    3. Класс: Security (Дежурный)
      • Метод CloseZal() - обработчик события NotPlaces, выдает сообщение "Дежурный закрыл зал " и генерирует событие SwitchOff
    4. Класс:Light(Свет).
      • Метод Turn() - обработчик события SwitchOff, выводит сообщение "Выключаем свет!" и генерирует событие Begin.
    5. Класс:Hardware(АППАРАТНАЯ)
      • Поле - название фильма
      • Конструктор –с параметром
      • Метод FilmOn() - обработчик события Begin выводит сообщение: "Начинается фильм <Название фильма>"

    Тестирование проекта

    ВАРИАНТ 12

    Проект «Сессия»

    Классы: StudZ (Студент, сдающий зачет), StudE (Студент, сдающий экзамен), Za4et (Зачет), Exam (Экзамен), Prepod (Преподаватель) и Program (тестирующий).

    Студент допускается к экзаменационной сессии, если сдал все зачеты.

    В классе Za4et возникает два события:

    В классе Exam возникает два события:

    В классе Program:

    1. Случайным образом создаются значения трех логических переменных (результат сдачи студентом зачета) и выводятся на экран.
    2. Создается объект класса StudZ (Студент, сдающий зачет) с полученными результатами сдачи зачета в качестве значений полей.
    3. Создается объект класса Za4et (Зачет) с созданным объектом класса StudZ в качестве параметра.
    4. Создается объект класса Prepod (Преподаватель), в котором находятся обработчики всех событий.
    5. К объекту класса Za4et применяется метод, который генерирует или событие Event1 или событие Event2. Обработчики этих событий из класса Prepod реагируют на них. При этом логическое поле в классе Za4et принимает значение true, если возникло событие Event1 (студент сдал все зачеты).
    6. Если студент сдал все зачеты, то:
      • Случайным образом создаются значения трех числовых переменных (результат сдачи студентом экзамена) и выводятся на экран.
      • Создается объект класса StudE (Студент, сдающий экзамен) с полученными результатами сдачи экзамена в качестве значений полей.
      • Создается объект класса Exam (Экзмен) с созданным объектом класса StudE в качестве параметра.
      • К объекту класса Exam применяется метод, который генерирует или событие Event3 или событие Event4. Обработчики этих событий из класса Prepod реагируют на них.

    Классы

    1. StudZ (Студент, сдающий зачет)
      • 3 логических поля: результат сдачи зачета (true сдал, false не сдал)
      • 3 свойства для чтения значений полей
      • Конструктор с параметрами
    2. StudE (Студент, сдающий экзамен)
      • 3 числовых поля, содержащих оценки (2, 3, 4, 5).
      • 3 свойства для чтения значений полей
      • Конструктор с параметрами
    3. Za4et (Зачет)
      • Поле класса StudZ (студент)
      • Логическое поле - результат сдачи студентом зачетной сессии
      • Конструктор с параметром класса StudZ
      • Свойство для чтения логического поля
      • Метод без параметров. Если все зачеты сданы, то логическому полю присваивается значение true и генерируется событие Event1, если сданы не все зачеты, то генерируется событие Event2.
    4. Exam (Экзамен)
      • Поле класса StudE (студент)
      • Конструктор с параметром класса StudE
      • Метод без параметров. Если у студента нет двоек, то генерируется событие Event3, если есть, то генерируется событие Event4.
    5. Prepod (Преподаватель)
      • Метод без параметров - обработчик события Event1 выводит сообщение: «Зачеты сдал. Допускается к экзаменам»
      • Метод без параметров - обработчик события Event2 выводит сообщение: «Не все зачеты сдал. К экзаменам не допускается»
      • Метод без параметров - обработчик события Event3 выводит сообщение: «Экзамены сдал. Переведен на следующий курс»
      • Метод без параметров - обработчик события Event4 выводит сообщение: «Не все экзамены сдал. На пересдачу»

    Тестирование проекта

    ВАРИАНТ 13

    Проект «Золотая рыбка»

    Классы: Gold (Золотая рыбка), Grandfather (дед), Grandmother (бабка), Desire (желание) и Program (тестирующий)

    В классе Gold возникает событие: MyEvent – золотая рыбка не выполнила третью просьбу бабки.

    Статический Класс Desire (желание)

    Статические поля: номер желания, статический массив желаний, статический массив статусов бабки.

    1. Класс Gold (Золотая рыбка)
        Методы:
      • Обработчик события MyEvent: Красным цветом выводит сообщение «Это желание не может быть исполнено».
      • Метод «Исполнения желания». Метод исполняет желания: выводит сообщение, что желание исполнено. Возвращаемых параметров нет. Исполняются все желания, кроме третьего. При получении третьего желания инициируется событие.
    2. Класс Grandfather (дед)
        Методы:
      • Обработчик события: Выводит сообщение: «Дед боится. Желание не выполнено»
      • Метод передачи желания рыбке: желтым цветом выводится текст желания
    3. Класс Grandmother (бабка)
        Методы:
      • Обработчик события: Выводит сообщение: «Бабка осталась с разбитым корытом»
      • Метод изменения статуса: голубым цветом выводится статус соответствующий желанию

    Тестирование проекта:

    ВАРИАНТ 14

    Проект «Маршрутка»

    Классы: Driver (водитель), Route (маршрутка), Passenger (пассажир) и Program (тестирующий)

    В классе Route возникает два события:

    1. Event1. Маршрутка заполнена пассажирами. Событие возникает, когда количество мест в маршрутке равно количеству пассажиров.
    2. Event2. Маршрутка пустая. Событие возникает, когда количество пассажиров равно 0.

    В классе Program: