7.4 KiB
Raw Permalink Blame History

Практическая работа. IYFMM Converter

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

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

  1. Значения в полях EditText моментально пересчитываются при вводе пользователем некоторого числа в соответствии с единицами измерения.
  2. Конвертация производится во все единицы измерения длины с номерами lower upper включительно (см. табл. 1), значения границ интервала передаются в стартовую активность при запуске приложения.
  3. Все элементы разметки должны отображаться без прокрутки.
  4. Гарантируется, что всегда в интервал номеров для показа на экране попадает текстовое поле с меткой метра. Максимальное значение, вводимое в поле с метрами, указано в табл. 1. Точность проверки: 1e-5.
  5. Значения элементам TextView присваиваются согласно значениям массива строковых ресурсов (string-array) с названием text_view_captions.
  6. При нажатии на TextView текущее значение соответствующего поля EditText копируется в буфер обмена.

Приложение будет запускаться в системе тестирования с дополнительными данными, которые будут отправлены в основную активность приложения; они содержат наименьший и наибольший номера необходимых текстовых полей. TextView и EditText c другими идентификаторами и тегами не должны отображаться на экране. Прокрутка не предусмотрена; не устанавливайте большие значения верхних и нижних полей у элементов разметки. Приложение будет запущено в портретной ориентации, если в манифесте не указано иное.

Рекомендуется использовать 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 минут, после завершения тестирования будет доступна информация об общем числе тестов и числе пройденных тестов. Количество посылок в систему не ограничено. Штраф за повторные попытки не начисляется.

TextView text (default) TextView text (en) EditText tag Максимальное значение
0 Дюйм Inches et_inch 10^{15}
1 Ярд Yards et_yard 10^{14}
2 Фут Feet et_foot 10^{14}
3 Миля Miles et_mile 10^{10}
4 Иоттаметр Yottametres et_yottametre 10^{3}
5 Зеттаметр Zettametres et_zettametre 10^{4}
6 Эксаметр Exametres et_exametre 10^{5}
7 Петаметр Petametres et_petametre 10^{6}
8 Тераметр Terametres et_terametre 10^{7}
9 Гигаметр Gigametres et_gigametre 10^{8}
10 Мегаметр Megametres et_megametre 10^{9}
11 Километр Kilometres et_kilometre 10^{10}
12 Гектометр Hectometres et_hectometre 10^{11}
13 Декаметр Decametres et_decametre 10^{12}
14 Метр Metres et_metre 10^{13}
15 Дециметр Decimetres et_decimetre 10^{14}
16 Сантиметр Centimetres et_centimetre 10^{15}
17 Миллиметр Millimetres et_millimetre 10^{16}
18 Микрометр Micrometres et_micrometre 10^{17}
19 Нанометр Nanometres et_nanometre 10^{18}
20 Пикометр Picometres et_picometre 10^{19}
21 Фемтометр Femtometres et_femtometre 10^{20}
22 Аттометр Attometres et_attometre 10^{21}
23 Зептометр Zeptometres et_zeptometre 10^{22}
24 Иоктометр Yoctometres et_yoctometre 10^{23}

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

Тест Балл Проверка
1 languageTest 1 Строковые ресурсы на двух языках
2 checkClipboard 1 Буфер обмена
3 checkSmallValues 1 Конвертация метров
4 checkLargeValues 2 Граничные случаи
5 checkCrossValues 3 Внесистемные единицы измерения длины

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

Рис. 1. Пример итогового интерфейса (планшет)