Перейти к содержимому


Вводные вычисляемые поля



Сообщений в теме: 3

#1 Omikuro

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 09 Январь 2023 - 19:12

Добрый день! Приобрели лицензию и столкнулись со следующим тестом, хотели бы узнать можно ли подобное реализовать в программе?
В тесте нужно распределять количество баллов между ответами.
С Уважением mipgroup.

Прикрепленные файлы



#2 Administrator

    Менеджер проекта

  • Администраторы
  • 1 366 сообщений

Отправлено 11 Январь 2023 - 00:08

Здравствуйте!

Это проблемный тест, но его можно сделать в INDIGO как полностью стандартными средствами, но с некоторыми компромиссами с точки зрения внешнего вида, так и сделать его в любом, даже самом лучше виде, но это требует программирования в шкалах и программирование JavaScript для оформления и контроля над ответами. Если делать самым простым образом, то можно под каждый вопрос из теста создать группу вопросов с совместной выдачей вопросов в виде списка, и разместить в каждый такой группе сообщение с текстом утверждения и 4 подвопросами (по каждому для a b c d). Далее нужно определиться с типом этих подвопросов. Если делать как по приведенной Вами ссылке с ручным вписыванием баллов на клавиатуре, то будет сложность с доставанием этих ответов при подсчете баллов в шкалах (это решаемая задача, но в индивидуальном порядке как доп. работы, т.к. придется программировать чтение через SQL-запросы данных из базы). Поэтому можно применить другой способ и сделать подвопросы типа Выбор одного варианта ответа из нескольких, что визуально получится размашисто, но с подсчетом баллов вообще никаких проблем не будет и все решится стандартными средствами. Нужно будет добавить 12 шкал, в каждой из которых просуммровать баллы по нужным вопросам из таблицы. Прикладываю пример реализации из двух первых вопросов СКАЧАТЬ. Дальше можно по аналогии продолжить. Также нужно прописать в инструкции понятное объяснение пользователю как распределять баллы. Если нужен какой-то автоматический контроль правильности распределения баллов, то это тоже решаемая задача, но опять таки затрагивает программирование, т.к. требует написание скрипта на JavaScript. Если у Вас есть веб-мастер, то он сможет сделать такой скрипт, т.к. внутрь сообщения или вопроса можно будет встроить скрипт через теги:

[HTML]<script>Пример кода контроля</script>[/HTML]


#3 Гость_Terliys_*

  • Гости

Отправлено 12 Январь 2023 - 09:32

Однако предложенный способ не совсем подходит под требование теста. Нужно иметь ограничение на доступное значение баллов, т.е. есть всего 11 баллов которые можно распределять на каждом вопросе. В вашей системе нет ограничений и в таком виде можно ставить все 11 вариантов на каждом из вопросе. На js в целом тоже не самый лучший способ такое делать, т.к. валидации на сервере количества баллов не будет, можно отправлять запросы с нужными значениями и опять взломать тест в свою пользу. В идеале сделать валидацию на сервере под каждый вопрос.
Можно ли так сделать в вашей системе? В целом не проблема сделать этот тест на нашем ресурсе. Просто хотелось бы использовать вашу систему как единую точку входа для тестирования. Я имею в виду решение например через iframe или еще как-то выдавать значения. вопросов. Проблема с подсчетом, тут тоже нужен iframe или еще что-то. Вы говорили про sql запросы. Интересно бы почитать как их можно использовать из системы при подсчете значений. И вообще документацию бы почитать такую расширенную, та что есть на сайте эти проблемы не охватывает. Спасибо

#4 Administrator

    Менеджер проекта

  • Администраторы
  • 1 366 сообщений

Отправлено 12 Январь 2023 - 11:39

Цитата

Однако предложенный способ не совсем подходит под требование теста. Нужно иметь ограничение на доступное значение баллов, т.е. есть всего 11 баллов которые можно распределять на каждом вопросе. В вашей системе нет ограничений и в таком виде можно ставить все 11 вариантов на каждом из вопросе. На js в целом тоже не самый лучший способ такое делать, т.к. валидации на сервере количества баллов не будет, можно отправлять запросы с нужными значениями и опять взломать тест в свою пользу. В идеале сделать валидацию на сервере под каждый вопрос.

- Можно сделать валидацию в шкалах. Создать проверочную шкалу. Если будет взломан JavaScript, то проверочная шкала увидит превышение значений и выдаст сообщение, что результат невалидный. Для этого в функции шкалы можно использовать условный оператор (условие ? истина : ложь) или прямо программировать функции и писать в них if и else if (и любой другой код на PHP):

A();
function A()
{
  if(Сумма_баллов_за_вопрос_1 > 11) return 1;
  else if(Сумма_баллов_за_вопрос_2 > 11) return 2;
  и т.д.
  return 0;
}

Можно прописать одно общее условие или на каждый вопрос отдельное условие и при превышении суммы баллов за 11, выдать положительное значение, а если все нормально, то 0. И в делениях прописать если 0, то ничего не выводить (пустая строка), а если положительное значение, то вывести ошибку, и можно даже конкретно указать на номер вопроса (если функция будет возвращать 33 значения и прописать 33 деления для каждого вопроса).

Поэтому не вижу никаких проблем со взломом JavaScript, т.к. шкалы вычисляются на сервере и это обойти не получится.

Цитата

Вы говорили про sql запросы. Интересно бы почитать как их можно использовать из системы при подсчете значений. И вообще документацию бы почитать такую расширенную, та что есть на сайте эти проблемы не охватывает.

- Такой документации нет, т.к. там задач может быть огромное множество, а писать книги по программированию это не наш профиль, мы предоставляем готовый продукт, а если кому-то что-то нужно узкоспециализированное, то консультируем в индивидуальном порядке.




Ответить



  

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных