Калькулятор доставки: от массы коробки к расчётному весу
Калькулятор для одной упаковки: пять исходных параметров, промежуточные вычисления и понятная причина выбора итогового веса.
Задача
Коробка 60 × 40 × 40 см весит 8 кг, а расчёт по объёму даёт 19,2 кг. Если показать только итог, человек не поймёт, ошибся ли он при вводе или сработало другое правило. В этом прототипе я сделал основание расчёта видимым рядом с результатом.
Нужно показать, какое правило дало итог, и не смешать расчёт веса со стоимостью перевозки.
Фактическая масса и объемный вес
Измените значения: результат и промежуточные строки пересчитываются сразу.
Показал основание рядом с итогом
У формы пять полей: длина, ширина, высота, масса и делитель. Рядом с итогом видны объём коробки, объёмный вес и фактическая масса. Поэтому проверку можно начать с конкретного места: неверный объём — проверить размеры; другой объёмный вес — проверить делитель.
На исходных данных получается 60 × 40 × 40 = 96 000 см³, затем 96 000 / 5000 = 19,2 кг. Масса 8 кг участвует в сравнении, но оказывается меньше. Если изменить только массу на 25 кг, объёмный вес останется прежним, а итог станет 25 кг.
Оставил делитель в форме
Спрятать 5000 внутри формулы было бы проще, но тогда пользователь не увидел бы одно из условий расчёта. При делителе 4000 та же коробка даёт уже 24 кг. Поэтому коэффициент редактируется отдельно, с единицей см³/кг. Калькулятор применяет введённое правило; сам тариф он не подбирает.
Связал ошибку с конкретным полем
Размеры вводятся в сантиметрах, масса — в килограммах. Пустое поле, нулевой делитель или значение вне допустимого диапазона убирают итог и показывают причину ошибки. После исправления расчёт возвращается без повторного заполнения формы.
Размеры в этой версии задаются целыми сантиметрами. Ввод 0,6 вместо 60 отклоняется: переключения единиц здесь нет. Сообщение об ошибке связано с полем и доступно при чтении интерфейса экранной программой.
Что проверено на одной коробке
Габариты во всех пяти примерах — 60 × 40 × 40 см. Изменяется только масса или делитель.
| Что изменили | Объёмный вес | Итог модели |
|---|---|---|
| Исходные: 8 кг, делитель 5000 | 96 000 / 5000 = 19,2 кг | 19,2 кг — по объёму |
| Масса 25 кг; делитель прежний | 19,2 кг | 25 кг — фактическая масса больше |
| Масса 8 кг; делитель 4000 | 24 кг | 24 кг — по объёму |
| Масса 19,2 кг; делитель 5000 | 19,2 кг | 19,2 кг — величины равны |
| Делитель 0 | Не вычисляется | Ошибка, связанная с полем делителя |
Что сделано
Спроектировал форму и разработал расчёт: пять связанных полей, промежуточные значения, явно заданные единицы и проверка допустимого ввода. Собрал контрольные примеры, в которых меняется основание результата.
Готовый прототип пересчитывает вес при изменении вводных, показывает ход расчёта и останавливается на некорректном поле. На одной коробке можно проверить оба исхода: 19,2 кг по объёму и 25 кг по фактической массе.
- Форма с пересчётом веса и промежуточными вычислениями.
- Ошибки ввода, связанные с соответствующими полями.
- Пять контрольных примеров с порядком повторения.
Контрольные примеры CSV · Повторить проверку · Модель и исходные условия