Исключительные ситуации на java

Выполнен
Заказ
6402279
Раздел
Программирование
Антиплагиат
Не указан
Срок сдачи
8 Дек 2024 в 22:55
Цена
Договорная
Блокировка
10 дней
Размещен
1 Дек 2024 в 13:13
Просмотров
45
Описание работы

Предположим, что мы программируем робота, который способен перемещаться по клеткам (условно бесконечного) поля. Мы хотим описывать перемещения робота с помощью текстовых команд. Эти команды должны иметь формат: символ пробел число

В качестве символа могут быть использованы заглавные буквы N (North), S (South), E (East), W (West), числа же предполагаются положительными и не превосходящими некоторого заранее заданного значения K.

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

Вам предлагается разработать несколько классов ИС. Некоторые из этих классов должны быть связаны между собой, ваша задача в том числе заключается в определении этих связей. Вполне возможно, вы захотите создать класс ИС, предназначенный именно для реакции на события, происходящие с роботом, а от него уже унаследовать более специфичные классы ИС.

Смысл в разработке именно иерархии состоит в том, чтобы иметь возможность выделять конкретную ИС не с помощью if (идея "что-то пошло не так, давайте прочитаем строку и поразбираемся"), а посредством catch (которые сначала обрабатывают более специфичные ситуации и только потом — общего вида).

Обоснуйте выбор класса-предка для каждой ИС (рекомендуется попробовать использовать как проверяемые (Exception), так и непроверяемые (Runtime Exception) исключения).

Также напишите код, который продемонстрирует использование разработанных классов ИС.

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

Далее — список событий, которые должны приводить к возбуждению исключительной ситуации.

1) ИС должна возбуждаться, если вместо разрешенного символа используется иной символ (не обязательно буквенный).

2) ИС должна возбуждаться, если в качестве символов используются другие заглавные буквы (кроме NSEW).

3) ИС должна возбуждаться, если в качестве символов используются маленькие буквы n, s, e, w вместо соответствующих заглавных (т.е. при преобразовании в заглавные получим правильный формат команды). В коде, который демонстрирует использование такой ИС, желательно предусмотреть обработку этой ИС, приводящую к преобразованию команды в правильный формат.

4) ИС должна возбуждаться, если вместо одного из разрешенных символов встретилась последовательность из двух и более разрешенных символов. В коде, который демонстрирует использование этой ИС, желательно предусмотреть обработку этой ИС, приводящую к преобразованию команды в последовательность команд, выполняющих смещение на заданную величину.

5) ИС должна возбуждаться, если вместо числа записана последовательность символов, которая не может быть интерпретирована как число (в десятичной системе счисления; при желании можно разрешить и иные системы счисления).

6) ИС должна возбуждаться, если записанное число меньше 0. В коде, который демонстрирует использование этой ИС, желательно предусмотреть обработку этой ИС, приводящую к преобразованию команды в её корректную форму: например, запись вида S -2 можно интерпретировать как N 2.

7) ИС должна возбуждаться, если записанное число является нулем. В коде, который демонстрирует использование этой ИС, желательно предусмотреть обработку этой ИС, приводящую к удалению такой команды из списка команд.

8) ИС должна возбуждаться, если записанное число по абсолютной величине больше, чем заранее заданное значение K.

9) ИС должна возбуждаться, если записанная команда не может быть интерпретирована как команда (иными словами, в строке текстового файла присутствует последовательность символов, не содержащая пробела — и, таким образом, в ней нельзя выделить две составляющие)

10) ИС должна возбуждаться, если строка файла может быть интерпретирована как корректная команда, в которой не хватает пробела. В коде, который демонстрирует использование этой ИС, желательно предусмотреть обработку этой ИС, приводящую к преобразованию команды в её корректную форму.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
8 дней 8 часов 4 минуты
Выполнен
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир