Клас ManagingCompany (ЖЕК)
Поля:
- Поле об'єкт класу Lodger
Методи:
- Обробник події Event: Виводить повідомлення: Ваш борг Сума боргу
Тестування проекту:

ВАРІАНТ 5
Проект «Телефон»
Класи: Telephone (телефон), Subscriber (абонент), Answerphone (автовідповідач), Talk (розмова) та Program (тестуючий)
У класі Telephone виникає подія Event1 – Телефон дзвонить. На цю подію підписано клас Subscriber.
У класі Subscriber виникає одна з двох подій:
- Event2 – Подія виникає, якщо слухавку не зняли. На цю подію підписано клас Answerphone.
- Event3 – Подія виникає, якщо слухавку зняли. На цю подію підписано клас Talk.
У класі Program:
Створюються об'єкти всіх класів. Підписка на події.
До об'єкта класу Telephone (телефон) застосовують метод, що генерує подію Event1. Обробник цієї події з класу Subscriber видає повідомлення та генерує одну з двох подій: Event2 або Event3.
Класи
- Телефон (телефон)
- Метод, що генерує подію Event1.
- Subscriber (абонент)
- Метод, обробник події Event1. Виводить повідомлення: «Телефон дзвонить» і випадково генерує одну з двох подій Event2 або Event3 (зняли або не зняли трубку).
- Answerphone (автовідповідач)
- Метод, обробник події Event2. Виводить повідомлення: «Не знімаю слухавку. Автовідповідач: введіть повідомлення:». Потім із клавіатури вводиться повідомлення.
- Talk (розмова)
- Метод, обробник події Event3. Виводить повідомлення: "Знімаю слухавку. Алло?"
Тестування проекту


ВАРІАНТ 6
Проект «Таксі»
Класи: Client (клієнт), Taxi (таксі) та Program (тестуючий)
У класі Client виникає дві події:
- Event1 – клієнт викликав таксі на адресу 1
- Event4 – клієнт приїхав на адресу 2
У класі Taxi виникає дві події:
- Event2 –таксі прибуло за викликом на адресу 1
- Event3 – Таксі привезло пасажира на адресу 2. Пасажир вийшов. Таксі вільно
У класі 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 жовтим кольором друкує повідомлення: «Таксі вільно».
- Клас Client
Поля:
- ім'я клієнта
- адреса 1 (звідки їхати)
- адреса 2 (куди їхати)
Методи:
- Конструктор із параметрами;
- Метод, що генерує подію Event1
- Метод обробник події Event1 зеленим кольором друкує повідомлення: «ім'я пасажира викликало таксі на адресу 1».
- Метод обробник події Event2 зеленим кольором друкує повідомлення: «ім'я пасажира сів у таксі».
- Метод обробник події Event3 зеленим кольором друкує повідомлення: ім'я пасажира приїхав за адресою 2 і генерує подію Event4.
- Клас Taxi
Методи:
- Метод обробник події Event1 жовтим кольором друкує повідомлення: «таксі прибуло» і генерує подію Event2.
- Метод обробник події Event2 жовтим кольором друкує повідомлення: «Їдемо» та генерує подію Event3.
- Метод обробник події Event3 жовтим кольором друкує повідомлення: «Приїхали».
- Метод обробник події Event4 жовтим кольором друкує повідомлення: «Таксі вільно».
Тестування проекту

ВАРІАНТ 7
Проект «Квітка-Семиквітка»
Класи: Flower (квітка), Boy (хлопчик), Girl(дівчинка) та Program (тестуючий).
У класі Flower виникає дві події:
- Event1 - відірвана чергова пелюстка
- Event2 – відірвана остання пелюстка
У класі Program:
Створити об'єкти квітка, дівчинка та хлопчик.
У циклі, поки не закінчаться пелюстки викликати метод, який зменшує кількість пелюсток на 1 і генерує або подію Event1 або подію Event2.
- Клас Flower (квітка).
Поля- Відкрите статичне поле - скільки залишилося пелюсток на квітці. На початку – кількість пелюсток – 7.
Методи
- Метод, що генерує події: якщо кількість пелюсток більша за одну, то кількість пелюсток зменшується на 1 і виникає подія Event1. В іншому випадку виникає подія Event2.
- Клас Girl(дівчинка)
Поле - масив рядків, що містить 6 бажань дівчинки.
Методи
- Метод – обробник події Event1: виводить на екран чергове бажання дівчинки.
- Метод – обробник події Event2: виводить на екран бажання дівчинки, щоб хлопчик одужав.
- Клас Boy (хлопчик)
Методи
- Метод – обробник події Event1: виводить на екран повідомлення: «Я не можу, я хворий».
- Метод – обробник події Event2: виводить на екран повідомлення: «Ура! Я здоровий".
Тестування проекту

ВАРІАНТ 8
Проект «Магазин»
Класи: Shop (магазин), Buyer(Покупець) та Program (тестуючий).
У класі Buyer виникає дві події:
- Event1 – Покупець купив товар.
- Event2 – Покупець не зміг купити товар, оскільки товар у магазині скінчився чи його мало.
У класі Program:
- Створюється об'єкт магазин
- Випадково створюється початкова кількість товару в магазині.
- У циклі, доки не скінчиться товар (поки не виникла подія Event2), покупці виконують покупки. А саме:
- Випадковим чином створюється кількість одиниць товару, яку хоче купити черговий покупець.
- Створюється об'єкт класу Buyer (покупець) з одержаним числом одиниць товару як значенням поля.
- До цього об'єкта класу Buyer застосовується метод, який генерує або подію Event1 або подію Event2. Обробники цих подій із класу Buyer та Shop реагують на них.
Класи
- Buyer (Покупець)
- Числове поле – кількість одиниць товару, яку потрібно купити покупцю.
- Конструктор з параметром, який надає значення цьому полю
- Логічне поле, що має початкове значення false, і що змінюється на true, коли виникне подія Event2.
- властивість для читання значення логічного поля
- Метод, що генерує події. Якщо магазині є потрібна покупцю кількість товару, кількість товару в магазині відповідно зменшується і виникає подія Event1. Якщо товару в магазині недостатньо, то логічному полю надається значення true і виникає подія Event2.
- Метод, обробник події Event1. Виводить повідомлення: «Купил товару = кількість»
- Метод, обробник події Event2. Виводить повідомлення: «Не зміг купити товару = кількість»
- Shop (Магазин)
- Відкрите статичне поле – кількість одиниць товару у магазині.
- Метод, обробник події Event1. Показує скільки товару залишилося. Виводить повідомлення: «Товара в магазині кількість»
- Метод, обробник події Event2. Виводить повідомлення: «Замовити товар на базі»
Тестування проекту


ВАРІАНТ 9
Проект «Змагання зі стрільби»
Класи: Sportsman (спортсмен), Judge (Суддя) та Program (тестуючий).
У класі Sportsman виникає дві події:
- Event1 – Спортсмен влучив у ціль.
- Event2 – Спортсмен не влучив у ціль.
У класі Judge виникає дві події:
- Event3 – Подія виникає, якщо більше половини спортсменів влучили в ціль.
- Event4 – Подія виникає, якщо в ціль влучили менше половини спортсменів
У класі Program:
- Визначається кількість спортсменів, які беруть участь у змаганні.
- Створюється об'єкт суддя.
- У циклі виконується таке:
- Створюється об'єкт класу Sportsman (спортсмен).
- До цього об'єкта застосовується метод, який генерує подію Event1 або подію Event2.
Обробники цих подій із класу Judge реагують на них: друкують повідомлення про те, чи влучив спортсмен у ціль.
- Після циклу до об'єкта класу Judge (суддя) застосовують метод, який генерує подію Event3 або подію Event4,
залежно від того, як виступила команда. Друкується повідомлення про результати.
Класи
- Sportsman (Спортсмен)
- Числове поле – номер спортсмена
- Конструктор з параметром, який надає значення цьому полю
- Логічне поле, якому присвоюється значення false, якщо спортсмен не влучив у ціль і true, якщо влучив.
- властивість для читання значення логічного поля
- Метод, що генерує події. Випадковим чином набувають значення логічної змінної. Якщо значення true, генерується подія Event1, якщо false, то подія Event2.
- Метод, що виводить на екран номер спортсмена.
- 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).
- Клас: Child (Дитина)
- Поле номер дитини
- Властивість для читання поля
- Конструктор з параметром
- Клас: PlaySchool (Дитячий садок)
- Поле кількість місць у дитячому садку.
- Конструктор – з параметром
- Метод PushChild. У параметрі методу є чергова дитина (об'єкт класу Child).
У методі відображається процес зарахування дитини до дитячого садка - виводиться повідомлення
"Дитина <Номер дитини> зарахована". Після того як всі місця будуть зайняті, генерується подія NotPlaces
- Клас: Manageress (Завідувач)
- Метод Queue - обробник події NotPlaces, видає повідомлення "Місць немає! Пропоную стати в чергу" і генерує подію Zapys
- 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) виводиться повідомлення - "Починається фільм".
- Клас: Viewer(Глядач)
- Поле – номер глядача
- Властивість для читання поля
- Конструктор із параметром
- Клас: Cinema(КІНОТЕАТР)
- Поле кількість місць у залі.
- Конструктор – з параметром
- Метод PushViewer. У параметрі методу глядач (об'єкт класу Viewer). У методі відображається процес заповнення зали -
виводиться повідомлення "Глядач <Номер глядача> зайняв своє місце" і після того, як останній глядач займе своє місце,
генерується подія NotPlaces
- Клас: Security (Дежурний)
- Метод CloseZal() - обробник події NotPlaces, видає повідомлення "Дежурний закрив зал" та генерує подію SwitchOff
- Клас:Light(Світло).
- Метод Turn() - обробник події SwitchOff, виводить повідомлення "Вимикаємо світло!" та генерує подію Begin.
- Клас: Hardware (АПАРАТНА)
- Поле - назва фільму
- Конструктор – з параметром
- Метод FilmOn() - обробник події Begin виводить повідомлення: "Починається фільм <Назва фільму>"
Тестування проекту

ВАРІАНТ 12
Проект «Сесія»
Класи:
StudZ (Студент, що складає залік), StudE (Студент, що складає іспит), Za4et (Залік), Exam (Іспит), Prepod (Викладач) та Program (тестуючий).
Студент допускається до екзаменаційної сесії, якщо склав усі заліки.
У класі Za4et виникає дві події:
- Event1 – студент здав усі заліки. Переходить до складання іспитів.
- Event2 – студент здав не всі заліки. До іспитів не допускається.
У класі Exam виникає дві події:
- Event3 – студент склав усі іспити. Переходить на наступний курс.
- Event4 – студент склав не всі іспити. На перескладання іспитів.
У класі Program:
- Випадково створюються значення трьох логічних змінних (результат здачі студентом заліку) і виводяться на екран.
- Створюється об'єкт класу StudZ (Студент, який здає залік) з отриманими результатами здачі заліку як значеннями полів.
- Створюється об'єкт класу Za4et (Залік) із створеним об'єктом класу StudZ як параметр.
- Створюється об'єкт класу Prepod (Викладач), у якому знаходяться обробники всіх подій.
- До об'єкта класу Za4et застосовується метод, який генерує або подію Event1 або подію Event2. Обробники цих подій із класу Prepod реагують на них. При цьому логічне поле в класі Za4et набуває значення true, якщо виникла подія Event1 (студент здав усі заліки).
- Якщо студент здав усі заліки, то:
- Випадково створюються значення трьох числових змінних (результат складання студентом іспиту) і виводяться на екран.
- Створюється об'єкт класу StudE (Студент, який складає іспит) з отриманими результатами складання іспиту як значеннями полів.
- Створюється об'єкт класу Exam (Екзмен) із створеним об'єктом класу StudE як параметр.
- До об'єкта класу Exam застосовується метод, який генерує подію Event3 або подію Event4. Обробники цих подій із класу Prepod реагують на них.
Класи
- StudZ (Студент, який здає залік)
- 3 логічні поля: результат здачі заліку (true здав, false не здав)
- 3 властивості для читання значень полів
- Конструктор з параметрами
- StudE (Студент, який складає іспит)
- 3 числові поля, що містять оцінки (2, 3, 4, 5).
- 3 властивості для читання значень полів
- Конструктор з параметрами
- Za4et (Залік)
- Поле класу StudZ (студент)
- Логічне поле – результат здачі студентом залікової сесії
- Конструктор із параметром класу StudZ
- Властивість для читання логічного поля
- Метод без параметрів. Якщо всі заліки здані, то логічному полю надається значення true і генерується подія Event1,
якщо заліки здані не в повному обсязі, то генерується подія Event2.
- Exam (Іспит)
- Поле класу StudE (студент)
- Конструктор із параметром класу StudE
- Метод без параметрів. Якщо студент не має двійок, то генерується подія Event3, якщо має, то генерується подія Event4.
- Prepod (Викладач)
- Метод без параметрів – обробник події Event1 виводить повідомлення: «Заліки здав. Допускається до іспитів»
- Метод без параметрів – обробник події Event2 виводить повідомлення: «Не всі заліки здав. До іспитів не допускається»
- Метод без параметрів – обробник події Event3 виводить повідомлення: «Іспити склав. Переведен на наступний курс»
- Метод без параметрів - обробник події Event4 виводить повідомлення: «Не всі іспити склав. На перездачу»
Тестування проекту



ВАРІАНТ 13
Проект "Золота рибка"
Класи: Gold (Золота рибка), Grandfather (дід), Grandmother (бабця), Desire (бажання)
та Program (тестуючий)
У класі Gold виникає подія: MyEvent – золота рибка не виконала третього прохання бабки.
Статичний Клас Desire (бажання)
Статичні поля: номер бажання, статичний масив бажань, статичний масив статусів бабки.
- Клас Gold (Золота рибка)
Методи:
- Обробник події MyEvent: Червоним кольором виводить повідомлення «Це бажання не може бути виконане».
- Метод «Виконання бажання». Метод виконує бажання: виводить повідомлення, що бажання виконане.
Параметрів, що повертаються немає. Виконуються всі бажання, окрім третього. При отриманні третього бажання ініціюється подія.
- Клас Grandfather (дід)
Методи:
- Обробник події: Виводить повідомлення: «Дід боїться. Бажання не виконано»
- Метод передачі бажання рибці: жовтим кольором виводиться текст бажання
- Клас Grandmother (бабця)
Методи:
- Обробник події: Виводить повідомлення: «Бабка залишилася з розбитим коритом»
- Метод зміни статусу: блакитним кольором виводиться статус, що відповідає бажанню
Тестування проекту:

ВАРІАНТ 14
Проект «Маршрутка»
Класи: Driver (водій), Route (маршрутка), Passenger (пасажир) та Program (тестуючий)
У класі Route виникає дві події:
- Event1. Маршрутка заповнена пасажирами. Подія виникає, коли кількість місць у маршрутці дорівнює кількості пасажирів.
- Event2. Маршрутка порожня. Подія виникає, коли кількість пасажирів дорівнює 0.
У класі Program:
- Вводиться кількість місць у маршрутці
- Створюються об'єкти класів Маршрутка та Водій.
- Виконується підписка на події
- У циклі, поки є місця у маршрутці
- Створити чергового пасажира
- Викликати метод, який моделює посадку пасажира в маршрутку, якщо є місця або генерує першу подію, якщо місць немає.
- У циклі, поки в маршрутці є пасажири
- Створити чергового пасажира
- Викликати метод, який моделює вихід пасажира з маршрутки, якщо у маршрутці ще є пасажири або генерує другу подію, якщо всі пасажири вийшли.
- Клас Passenger (пасажир)
Поля:
- Поле: номер пасажира.
- Клас Driver (водій)
Методи:
- Обробник події Event1: Виводить повідомлення: Ім'я водія, їду маршрутом.
- Обробник події Event2: Виводить повідомлення: Ім'я водія, їду до парку.
- Клас Route (маршрутка)
Поля:
- Поля: кількість місць, List< Passenger > - список пасажирів, логічна змінна: чи є місця в маршрутці
Методи:
- Metod1 - метод, що генерує подію Event1, заповнює маршрутку пасажирами. У параметрі об'єкт класу Passenger (пасажир). Під час заповнення виводить інформацію про заповнення.
- Metod2 - метод, що генерує подію Event2, висаджує пасажирів з маршрутки. У параметрі індекс пасажира, що виходить.
- Обробник події Event1 – видає повідомлення «Всі місця зайняті».
- Обробник події Event2 – видає повідомлення «Всі місця вільні».
Тестування проекту:

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

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