Класс 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 (Cвет), 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– выдает сообщение «На факультет мест нет».
Тестирование проекта:
Назад
Вперед
Содержание