- Seminar_1
- Реализовать клиент-серверное приложение. Начало его можно увидеть в презентации к первому уроку, а можно ориентироваться на скриншоты. Результат можно увидеть на скриншотах, которые также можно найти в материалах к уроку
- Клиентское приложение должно отправлять сообщения из текстового поля сообщения в серверное приложение по нажатию кнопки или по нажатию клавиши Enter на поле ввода сообщения;
- Продублировать импровизированный лог (историю) чата в файле;
- При запуске клиента чата заполнять поле истории из файла, если он существует. Обратите внимание, что чаще всего история сообщений хранится на сервере и заполнение истории чата лучше делать при соединении с сервером, а не при открытии окна клиента. Ссылка на задание 1
- Seminar_2
На семинаре мы разделили класс отвечающий за клиентское приложение на класс, отвечающий за логику приложения и за графическую часть приложения. А также создали слабую связь между ними с помощью интерфейса.
Аналогичным образом вам надо преобразовать серверную часть приложения. Схема, которую требуется реализовать, также есть в материалах к уроку.
Вы можете работать со своим проектом из первой домашки, а можете работать с проектом с семинара (ссылка в материалах к уроку).
Требуется разделить класс серверного приложения на контроллер, GUI и репозиторий.
Если вы работаете со своим проектом, то клиентскую часть также надо разделить на контроллер и GUI.
Связь между составляющими проекта реализовать с помощью интерфейсов
Ссылка на задание 2
- Seminar_3
- Написать класс Калькулятор (необобщенный), который содержит обобщенные статические методы: sum(), multiply(), divide(), subtract(). Параметры этих методов – два числа разного типа, над которыми должна быть произведена операция. Методы должны возвращать результат своей работы. Ссылка на калькулятор
- Напишите обобщенный метод compareArrays(), который принимает два массива и возвращает true, если они одинаковые, и false в противном случае. Массивы могут быть любого типа данных, но должны иметь одинаковую длину и содержать элементы одного типа по парно по индексам. Ссылка на сравнение массивов
- Напишите обобщенный класс Pair, который представляет собой пару значений разного типа. Класс должен иметь методы getFirst(), getSecond() для получения значений каждого из составляющих пары, а также переопределение метода toString(), возвращающее строковое представление пары. Работу сдать в виде ссылки на гит репозиторий. Ссылка на Pair
- Seminar_4
Создать справочник сотрудников Необходимо: Создать класс справочник сотрудников, который содержит внутри коллекцию сотрудников - каждый сотрудник должен иметь следующие атрибуты:
- Табельный номер
- Номер телефона
- Имя
- Стаж
- Добавить метод, который ищет сотрудника по стажу (может быть список)
- Добавить метод, который возвращает номер телефона сотрудника по имени (может быть список)
- Добавить метод, который ищет сотрудника по табельному номеру
- Добавить метод добавления нового сотрудника в справочник Ссылка на Справочник
- Seminar_5
- Пять безмолвных философов сидят вокруг круглого стола, перед каждым философом стоит тарелка спагетти.
- Вилки лежат на столе между каждой парой ближайших философов.
- Каждый философ может либо есть, либо размышлять.
- Философ может есть только тогда, когда держит две вилки — взятую справа и слева.
- Философ не может есть два раза подряд, не прервавшись на размышления (можно не учитывать)
- Описать в виде кода такую ситуацию. Каждый философ должен поесть три раза Ссылка на мышление философов
Реализовать простой графический интерфейс из прошлого семинара с использованием Javafx или Swing. Ссылка на графический интерфейс справочника сотрудников
- Seminar_6 В качестве задачи предлагаю вам реализовать код для демонстрации парадокса Монти Холла (Парадокс Монти Холла — Википедия ) и наглядно убедиться в верности парадокса (запустить игру в цикле на 1000 и вывести итоговый счет). Необходимо: Создать свой Java Maven или Gradle проект; Подключить зависимость lombok. Можно подумать о подключении какой-нибудь математической библиотеки для работы со статистикой Самостоятельно реализовать прикладную задачу; Сохранить результат в HashMap<шаг теста, результат> Вывести на экран статистику по победам и поражениям Ссылка на Монти Холла