Клас ManagingCompany (Жек)
Поля:
- Поле об'єкт класу Lodger
Методи:
- Обробник події Event: Виводить повідомлення: Ваш борг Сума боргу
Тестування проекту:
ВАРІАНТ 5
Проект «Телефон»
Класи: Telephone (телефон), Subscriber (абонент), Answerphone (автовідповідач), Talk (розмова) і Program (тестує)
В класі Telephone виникає подія Event1 - Дзвонить телефон. На цю подію підписаний клас Subscriber.
В класі Subscriber виникає одна з двох подій:
- Event2 - Подія виникає, якщо трубку не зняли. На цю подію підписаний клас Answerphone.
- Event3 - Подія виникає, якщо трубку зняли. На цю подію підписаний клас Talk.
В класі Program:
Створюються об'єкти всіх класів. Виконується підписка на події.
До об'єкту класу Telephone (телефон) застосовують метод, який генерує подію Event1. Оброблювач цієї події з класу Subscriber видає повідомлення і генерує одне з двох подій: Event2 або Event3.
Класи
- Telephone (телефон)
- Метод, що генерує подія 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 - список пасажирів, логічна змінна: чи є місця в маршрутці
Методи:
- Metod1 - метод, що генерує подія Event1, заповнює маршрутку пасажирами. У параметрі об'єкт класу Passenger (пасажир). В процесі заповнення виводить інформацію про заповнення.
- Metod2 - метод, що генерує подія Event2, висаджує пасажирів з маршрутки. У параметрі індекс пасажира, який виходить.
- Обробник події Event1 - видає повідомлення «Все місця зайняті».
- Обробник події Event2- видає повідомлення «Все місця вільні».
Тестування проекту:
ВАРІАНТ 15
Проект «Вступні іспити»
Класи: Entrant (абітурієнт), Faculty (факультет) і Program (тестує)
В класі Faculty виникає дві події:
- Event1. Бюджетних місць на факультет немає. Подія виникає, коли кількість бюджетних місць на факультеті дорівнює кількості прийнятих абітурієнтів.
- Event2. Контрактних місць на факультет немає. Подія виникає, коли кількість контрактних місць на факультеті дорівнює кількості прийнятих абітурієнтів.
В класі Program:
- Вводиться кількість місць на бюджет
- Вводиться кількість місць на контракт
- Створюються об'єкт класу Факультет.
- Виконується підписка на події
- У циклі, поки є місця на бюджет:
- Створити чергового абітурієнта
- Дзвонити метод, який моделює вступ абітурієнта на бюджет, якщо є місця або генерує перша подія, якщо місць немає.
- У циклі, поки є місця на контракт:
- Створив чергового абітурієнта
- Дзвонити метод, який моделює вступ абітурієнта на контракт, якщо є місця або генерує друга подія, якщо місць немає.
- Клас Entrant (абітурієнт)
Поля:
- Прізвище
- Логічна змінна: згоден або не згоден на контракт. Заповнюється так: парні абітурієнти не згодні, непарні згодні.
- Клас Faculty (факультет)
Поля:
- назва факультету,
- кількість бюджетних місць,
- кількість контрактних місць,
- Список 1 -List - список абітурієнтів прийнятих на бюджет,
- логічна змінна 1: чи є місця на бюджет,
- Список 2 -List - список абітурієнтів прийнятих на контракт,
- логічна змінна 2: чи є місця на контракт.
Методи:
- Metod1 - метод, що генерує подія Event1, заповнює бюджетні місця.
- Metod2 - метод, що генерує подія Event2, заповнює контрактні місця, якщо абітурієнт згоден.
- Обробник події Event1 - видає повідомлення «На бюджет місць немає. пропонуємо контракт
- Обробник події Event2- видає повідомлення «На факультет місць немає».
Тестування проекту:
Назад
Уперед
Зміст