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

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

Завдання

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

В методі 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 (Світло), 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: