Формулы расчёта у каждого материала свои. Краска считается через норму расхода на квадратный метр с учётом числа слоёв. Обои — через площадь рулона, раппорт рисунка и высоту стен, здесь легко ошибиться при нестандартной высоте потолков. Плитка — через размер плитки, толщину шва и раскладку: диагональная укладка обычно требует более высокого запаса, чем прямая. Сам процент запаса лучше вынести в настройки, а не прописывать константой в коде — ассортимент и упаковка меняются, и хочется менять коэффициенты без переработки логики.
Результат работы калькулятора — итоговый список позиций с округлением до упаковки или рулона, который покупатель может распечатать или сразу перейти по нему в нужный раздел каталога. Формат реализации — на усмотрение исполнителя.
Кратко по требованиям:
— три расчётных блока — краска, обои, плитка, каждый со своей формулой
— запас на подрезку задаётся числом в настройках, а не в коде
— округление итога до целой упаковки или рулона
— адаптивная вёрстка и печать результата
— аккуратный, прокомментированный код