Java labs 2019

Lab 1 - ✅ Lab 2 - ✅ Lab 3 - ✅

Lab 4 - ✅ Lab 5 - ✅ Lab 6 - ✅

Lab 7 - ✅

Images of final lab work:

Main window:

alt text

Lab 1 interface:

alt text

Lab 2 interface:

alt text

Lab 3 interface:

alt text

Lab 4 interface:

alt text

Lab 5 interface:

alt text

Lab 6 interface:

alt text

Lab tasks:

Lab 1:

Задачи на основные языковые конструкции:

a. Сформировать матрицу, состоящую из нулей и единиц, причем количество единиц строго равно количеству строк.

b. Дана строка. Разделить строку на фрагменты по три подряд идущих символа. В каждом фрагменте средний символ заменить на случайный символ, не совпадающий ни с одним из символов этого фрагмента. Показать фрагменты, упорядоченные по алфавиту.

c. Дан каталог книг. Про книгу известно: уникальный номер, автор, название, год издания. Реализовать CRUD, показ всех книг на экран и поиск по каждому из полей. Сделать меню для работы с каталогом.

Lab 2:

Описать 4 класса (базовый и 3 потомка), описывающих некоторых хищных животных (один из потомков), всеядных (второй потомок) и травоядных (третий потомок). Определить в базовом классе абстрактный метод для расчета количества и типа пищи, необходимого для пропитания животного в зоопарке. Затем:

a. Упорядочить всю последовательность животных по убыванию количества пищи. При совпадении значений – упорядочивать данные по алфавиту по имени. Вывести идентификатор животного, имя, тип и количество потребляемой пищи для всех элементов списка.

b. Вывести первые 5 имен животных из полученного в пункте а) списка.

c. Вывести последние 3 идентификатора животных из полученного в пункте а) списка.

d. Организовать запись и чтение коллекции в/из файл.

e. Организовать обработку некорректного формата входного файла.

Lab 3:

Напишите свой класс StringBuilder с поддержкой операции undo. Для этого делегируйте все методы стандартному StringBuilder, а в собственном классе храните список всех операций для выполнения undo(). Это будет реализацией шаблона «Команда».

Lab 4:

Разработать приложение, позволяющее просматривать файлы и каталоги файловой системы, а также создавать и удалять текстовые файлы. Для работы с текстовыми файлами необходимо реализовать функциональность записи (дозаписи) в файл. Требуется определить исключения для каждого слоя приложения и корректно их обработать.

Lab 5:

Создать “универсальный” класс, позволяющий получить значение из любого properties-файла. Физическое чтение файла должно происходить только один раз. Результаты чтения храните в коллекции типа Map.

Lab 6:

В текстовом (или xml) файле содержится информация о переводах средств со счета на счет. Создайте приложение, позволяющее в параллельном режиме обработать эту информацию (счета в приложении представляются собой объекты). Синхронизируйте код приложения используя ключевое слово synchronized (1 вариант) и библиотеку java.util.concurrent (2 вариант).

Lab 7:

Используя Swing или JavaFX написать пользовательский интерфейс для взаимодействия со всеми предыдущими лабораторными.