Task examples for students Java - ncedu-tlt/2018-dimi1-expense-manager GitHub Wiki

Задача: Работа с текстовыми файлами.

Условия задачи...

Дан английский текстовый файл любого размера. Приложение должно посчитать сколько там:

  • слов;
  • знаков препинания;
  • строчных и прописных букв;
  • букв в самом длинном слове;
  • числовых значений меньших 100;
  • слов, где больше заглавных букв чем строчных;
  • слов палиндромов.

Преобразовать и сохранить текст в новый файл:

  • заменить все буквы "о" и "O" на 0(ноль);
  • заменить числа от 1 до 9 на названия "one", "two" и т.д.;
  • заменить все ВХоЖДения 2х, 3х и т.д. поДРяд соГЛаСНых на 2 эти же буКВы в веРХНем региСТРе;
  • удалить все вхождения 2х, 3х и.т.д подряд гласных (длинношеее = ДЛиННош).

Практические навыки: Java IO/NIO, обработка строк в Java, Java RegExp.


Задача: Игра в шахматы

Условия задачи...

В игре участвует несколько черных фигур (любого вида) и одна белая – король. Спроектировать и реализовать иерархию классов для игры в шахматы. Реализовать:

  • конструктор с указанием координат на доске;
  • проверку возможности хода с указанием координат;
  • проверку попытки добавления лишней фигуры на доску (9я пешка, третий конь и т.д);
  • анализ положения белого короля в условии хода белых фигур - шах, пат, мат или белому королю ничего не угрожает.

Практические навыки: Основы ООП, структуры данных, коллекции Java.


Задача: "Большие гонки".

Условия задачи...

Случайным образом генерируется маршрут (Нью-Йорк-Париж), ландшафт которого представляет собой массив, переменно идущих подряд, целых чисел: 1 - асфальт; 2 - песок; 3 - снег; 4 - вода; 5 - лава; 6 - воздух; N - и т.п... Например: 00000005555552222222222122222220000000000000044444.... и т.д.

Создаются несколько вездеходных автомобилей, но в разной степени приспособленных для движения по разным ландшафтам. Например:

  • Car[1]: для пересечения 1км по асфальту тратит N секунд, а для пересечения 1км по воде - M секунд...
  • Car[2]: для пересечения 1км асфальта тратит X секунд, а для пересечения 1км по воде тратит Y секунд…
  • Car[n]: и т.д. для 4х, 6х, или 8 автомобилей.

Элементы массива маршрута, время для прохождения разных ландшафтов разными машинами – каждый запуск программы должны быть случайными положительными числами. (Число машин/потоков тоже можно сделать случайным.)

Задача заключается в том, чтобы «устроить гонку» и определить победителей.

  1. Основная программа создаёт для каждого автомобиля отдельный поток.
  2. Каждый автомобиль в своём потоке перебирает элементы маршрута один за другим, останавливая поток ( Thread.sleep() ) на то количество секунд, которое требуется для пересечения 1км текущего типа дороги.
  3. Основная программа выводит на экран результаты первых трёх автомобилей/потока, которые добрались до финиша (т.е. поток завершил своё выполнение).

Практические навыки: Java Multithreading, Java Random.


Задача: SQL CRUD любого типа данных.

Условия задачи...
  • а. Console.
  • б. Web.
  • в. Swing.

Практические навыки: Коллекции, H2/SQLite, SQL, JDBC, UI.


Задача: Обмен данными между процессами.

Условия задачи... Реализовать имитацию чата между двумя приложениями с использованием Java сокетов. Должно быть запущено 2 приложения и текст напечатанный в первом окне должен быть передан и отображаться во втором окне.

Практические навыки: Java IO/NIO, многопоточность, console/GUI.


Задача: Web приложение "Свежие Новости"

Условия задачи...
  1. Разработать Web-приложение состоящее из одной страницы.
  2. Страница содержит 3 элемента: текстовый блок, селектор из чисел от 1 до 50 и кнопку.
  3. В текстовом блоке отображается новостной заголовок и текст.
  4. Селектор представляет собой html элемент <select> который содержит 50 <option>.
  5. По нажатию кнопки "Next" страница перезагружается с GET/POST параметром number=[число выбранное в селекторе].
  6. После каждой перезагрузки число в селекторе должно меняться на случайное.
  7. Если параметр number не передан в запросе, новостной заголовок и текст пустые.
  8. Если параметр number передан в запросе, приложение загружает [number] по счёту новость с сайта http://olegmakarenko.ru/news/ и отображает на нашей странице.
  9. Заголовок новости берётся из элемента <h2 class="news_headline">.
  10. Текст новости берётся из <div> элемента, следующего за <h2 class="news_headline">.
  • Для изменения числа в селекторе на случайное, можно использовать JavaScript или Java Random
  • Для поднятия сервера на localhost можно использовать класс Simple Java Web Server at localhost
  • Для получения контента с сайта http://olegmakarenko.ru/news/ можно использовать класс Simple Java URL reader

Практические навыки: Java IO, HttpServer, URL; HTML <form>; JavaScript

⚠️ **GitHub.com Fallback** ⚠️