From f7cd03614f0af0ac0be51e829be9004b9b35a8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BB=D0=B0=D0=B4=D0=B8=D0=BC=D0=B8=D1=80=20=D0=A8?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=BB=D0=B8=D0=BD=D0=B3?= Date: Thu, 28 Dec 2023 16:35:58 +0000 Subject: [PATCH] add readme --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..2715feb --- /dev/null +++ b/README.md @@ -0,0 +1,59 @@ +# Практическая работа. 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. Критерии оценивания и тесты* + +![](/doc/screenshot.png) + +*Рис. 1. Эталонный интерфейс* \ No newline at end of file