5.6 KiB
Raw Blame History

Практическая работа. Tricky Hexahedron

В данном практическом задании предлагается дописать существующий проект-заготовку Android приложения для вычисления суммы длин сторон, длины диагонали, площади полной поверхности и объема прямоугольного параллелепипеда.

Советуем сначала скачать шаблон-заготовку проекта и импортировать проект в Android Studio или IntelliJ IDEA, так как процесс импорта может занимать продолжительное время. Для импорта проекта выберите пункт «Import project (Gradle, Eclipse ADT, etc.)» в окне приветствия.

Измените код существующих классов и интерфейсов, дополните разметку, ресурсы и манифест, чтобы приложение отвечало следущим требованиям:

  1. Интерфейс приложения должен содержать элементы, перечисленные в табл. 1. Все указанные элементы интерфейса должны быть видны полностью даже при открытой виртуальной клавиатуре.
  2. Элементы EditText должны поддерживать ввод чисел с плавающей точкой. Элемент EditText с большим номером по порядку располагается ниже EditText с меньшим номером.
  3. Ограничения на вводимые значения указаны в табл. 1. Точность проверки: 1e-5.
  4. Элемент @id/spinner позволяет выбрать одну из четырех опций для проведения расчетов в порядке, определенном в данном задании.
  5. При нажатии на элемент @id/calculate в текстовое поле @id/solution устанавливается текст с результатом проведенных расчетов в соответствии с выбранной в @id/spinner опцией. Гарантируется, что в момент нажатия все три EditText имеют непустой текст.
  6. При нажатии на TextView с @id/solution текущее значение копируется в буфер обмена.
View type id Максимальное значение
0 TextView side_a_label
1 EditText side_a 10^{12}
2 TextView side_b_label
3 EditText side_b 10^{12}
4 TextView side_c_label
5 EditText side_c 10^{12}
6 Spinner spinner
7 View calculate
8 TextView solution

Таблица 1. Элементы пользовательского интерфейса

Ресурс Допустимое значение
1 @string/side_a_text a
2 @string/side_b_text b
3 @string/side_c_text c

Таблица 2. strings.xml

Рекомендуется использовать Android Studio Bumblebee 2021.1.1. В проекте gradle version 7.4, gradle plugin version 7.1.2.

Сдать в систему тестирования необходимо zip архив, в корневом каталоге которого располагается дополненный проект Android Studio/IntelliJ IDEA. После загрузки zip архива приложение будет запущено в системе автоматического тестирования для проверки на соответствие техническому заданию.

Допускается использовать язык Java и/или Kotlin. При сборке проекта вcе изменения в файле build.gradle будут проигнорированы будут использованы зависимости только из шаблона-заготовки; не изменяйте пакет приложения.

Тестирование одной посылки может длиться до 5 минут, после завершения тестирования будет доступна информация об общем числе тестов и числе пройденных тестов. Количество посылок в систему не ограничено. Штраф за повторные попытки не начисляется.

Тест Балл Проверка
1 stringsTest 1 Строковые ресурсы
2 checkLength 1+1 Сумма длин сторон параллелепипеда
3 checkDiagonal 2+2 Длина диагонали параллелепипеда
4 checkArea 1+1 Площадь полной поверхности параллелепипеда
5 checkVolume 1+1 Объем параллелепипеда
6 interfaceTest 1 Разметка приложения

Таблица 3. Критерии оценивания и тесты

Рис. 1. Эталонный интерфейс