5.6 KiB
Практическая работа. Tricky Hexahedron
В данном практическом задании предлагается дописать существующий проект-заготовку Android приложения для вычисления суммы длин сторон, длины диагонали, площади полной поверхности и объема прямоугольного параллелепипеда.
Советуем сначала скачать шаблон-заготовку проекта и импортировать проект в Android Studio или IntelliJ IDEA, так как процесс импорта может занимать продолжительное время. Для импорта проекта выберите пункт «Import project (Gradle, Eclipse ADT, etc.)» в окне приветствия.
Измените код существующих классов и интерфейсов, дополните разметку, ресурсы и манифест, чтобы приложение отвечало следущим требованиям:
- Интерфейс приложения должен содержать элементы, перечисленные в табл. 1. Все указанные элементы интерфейса должны быть видны полностью даже при открытой виртуальной клавиатуре.
- Элементы EditText должны поддерживать ввод чисел с плавающей точкой. Элемент EditText с большим номером по порядку располагается ниже EditText с меньшим номером.
- Ограничения на вводимые значения указаны в табл. 1. Точность проверки: 1e-5.
- Элемент
@id/spinner
позволяет выбрать одну из четырех опций для проведения расчетов в порядке, определенном в данном задании. - При нажатии на элемент
@id/calculate
в текстовое поле@id/solution
устанавливается текст с результатом проведенных расчетов в соответствии с выбранной в@id/spinner
опцией. Гарантируется, что в момент нажатия все три EditText имеют непустой текст. - При нажатии на 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. Эталонный интерфейс