Назад Вперед Зміст

Варіанти завдань

Завдання

Описати класи, методи та події відповідно до варіанта.

У методі 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. Клас Актор (актор)
  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. Телефон (телефон)
      • Метод, що генерує подію 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 (Світло), 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:

    1. Клас Entrant (абітурієнт)
        Поля:
      • Прізвище
      • Логічна змінна: згоден чи не згоден на контракт. Заповнюється так: парні абітурієнти не згодні, непарні згодні.
    2. Клас Faculty (факультет)
        Поля:
      • назва факультету,
      • кількість бюджетних місць,
      • кількість контрактних місць,
      • Список 1 –List< Entrant > - список абітурієнтів, прийнятих на бюджет,
      • логічна змінна 1: чи є місця на бюджеті,
      • Список 2 –List< Entrant > - список абітурієнтів, прийнятих на контракт,
      • логічна змінна 2: чи є місця на контракті.
        Методи:
      • Metod1 - метод, що генерує подію Event1, заповнює бюджетні місця.
      • Metod2 - метод, що генерує подію Event2, заповнює контрактні місця, якщо абітурієнт погоджується.
      • Обробник події Event1 – видає повідомлення «На бюджет місць немає. Пропонуємо контракт
      • Обробник події Event2 – видає повідомлення «На факультет місць немає».

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

    Назад Вперед Зміст