docs: add project assignment
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
# Задание
|
||||
|
||||
## Требуемые условия завершения
|
||||
|
||||
### Основное задание
|
||||
|
||||
Написать приложение, которое будет реализовывать алгоритм сортировки выбранных классов. Приложение должно быть выложено на гитхаб/гитлаб, количество веток с кодом должно соответствовать количеству участников (минимум), все ветки в итоге должны быть смерджены в master/main ветку. Вся архитектура и код стайл должны соответствовать конвенциям языка Java. Программа должна выполняться в цикле. Выход из цикла возможен только путем соответствующего выбора пользователя. Пользователь должен иметь возможность выбирать варианты заполнения исходного массива данных (из файла, рандом, вручную) и его длину.
|
||||
|
||||
В программе должен использовать паттерн стратегия. Сортировать необходимо кастомные классы - класс должен иметь реализованный паттерн Builder. Для вводимых данных (в тч из файла) должна производиться валидация данных.
|
||||
|
||||
Сортировка должна быть базово реализована по всем 3 полям.
|
||||
|
||||
### Примеры классов
|
||||
|
||||
1. Автобус (Номер, Модель, Пробег)
|
||||
2. Пользователь (Имя, Пароль, Почта),
|
||||
3. Студент (Номер группы, Средний балл, Номер зачетной книжки)
|
||||
4. Автомобиль (Мощность, Модель, Год производства)
|
||||
5. Бочка (Объем, Хранимый материал, Материал из которого изготовлена)
|
||||
|
||||
Классы могут быть любыми, в том числе те, что перечислены здесь. Выбрать необходимо 1 класс.
|
||||
|
||||
### Дополнительное задание 1
|
||||
|
||||
Дополнительно к основным сортировкам реализовать эти же алгоритмы сортировки таким образом, что объекты классов будут сортироваться по какому-либо числовому полю: объекты с четными значениями этого поля должны быть отсортированы в натуральном порядке, а с нечетными – оставаться на исходных позициях.
|
||||
|
||||
### Дополнительное задание 2
|
||||
|
||||
Реализовать функционал для записи отсортированных коллекций/ найденных значений в файл в режиме добавления данных.
|
||||
|
||||
### Дополнительное задание 3
|
||||
|
||||
Заполнение коллекций должно осуществляться посредством стримов.
|
||||
|
||||
**3*** Коллекции для заполнения должны быть кастомными.
|
||||
|
||||
### Дополнительное задание 4
|
||||
|
||||
Реализовать многопоточный метод, подсчитывающий количество вхождений элемента N в коллекцию и выводящий результат в консоль.
|
||||
|
||||
### Общее требование
|
||||
|
||||
Все классы должны базово реализовывать сортировку по всем 3 полям. Для кастомной сортировки разрешено использовать компаратор. Запрещено применять готовые реализации сортировки, поиска и паттернов.
|
||||
|
||||
В программе также должны быть реализованы тесты к написанному коду. Классические тестовые библиотеки использовать не обязательно (но можно), так как мы их не изучали, достаточно просто тестов в отдельных классах, реализованных руками.
|
||||
|
||||
Результат прикрепить в виде ссылки на Github/Gitlab.
|
||||
Reference in New Issue
Block a user