Система оценок теста предназначена для вывода оценки, соответствующей набранным пользователем баллам. Вывод оценки может 2-х типов (тип границ): Выставление оценки по данному типу происходит следующим образом. Каждый вопрос имеет свой вес в зависимости от сложности. Если пользователь верно ответил на несколько вопросов, то баллы за них складываются. Вычисляется максимальное количество балолов за вопросы его варианта и находится процентное соотношение баллов за верно отвеченные вопросы к максимальной сумме баллов. Затем выбирается первый подходящий интервал ( нижняя граница <= полученное процентное соотношение <= верхняя граница ) и выставляется оценка. Разбиение интервала 0% - 100% начинайте с 0% (нижняя граница) и заканчивайте 100% (верхняя граница) включительно. Допускается перекрытие интервалов, но рекомендуется разбиение "встык", чтобы между соседними интервалами между верхней и нижней границами не было промежутков: Рисунок 1 – Система оценок по процентному соотношению баллов Выставление оценки по данному типу происходит следующим образом. Каждый вопрос имеет свой вес в зависимости от сложности. Если пользователь верно ответил на несколько вопросов, то баллы за них складываются. Затем выбирается первый подходящий интервал ( нижняя граница <= полученные баллы <= верхняя граница ) и выставляется оценка. Разбиение интервала 0 - max_point (max_point - максимальное количество баллов, которое может набрать пользователь) начинайте с 0 (нижняя граница) и заканчивайте max_point (верхняя граница) включительно. Допускается перекрытие интервалов, но рекомендуется разбиение так, чтобы соседние интервалы имели верхние и нижние границы баллов, отличающиеся на 1. Для того, чтобы каждый раз для разных тестов не вводить шкалу заново, предусмотрена возможность загрузки и сохранения файла со шкалой оценок. Файл имеет расширение *.apt Некоторые тесты имеют сложный алгоритм подсчета конечного результата, который не всегда может быть настроен с помощью выше описанных диалогов. Для таких случаев предусмотрена реализация системы оценки посредством написания программного кода на языке pascal. Скрипт поддерживает основные функции языка для работы со строками, числами и т.п., а также содержит предопределенный объект Data для обмена входной / выходной информацией. Чтобы получить информацию о баллах пользователя для каждого вопроса используются методы объекта Data: function GetSectionCount(): Integer | количество секций, выданных пользователю | function GetQuestionCount(Section: Integer): Integer | количество вопросов секции, выданных пользователю | function GetUserPoints(Section, Question: Integer): Integer | балл пользователя за вопрос | function GetPoints(Section, Question: Integer): Integer | максимальный балл за вопрос | function GetGlobalQuestionCount(): Integer | общее количество вопросов, предложенных пользователю | function GetGlobalUserPoints(Question: Integer): Integer | балл пользователя за вопрос | function GetGlobalPoints(Question: Integer): Integer | максимальный балл за вопрос |
Методы упрощения подсчета параметров: function SumUserPoint(): Integer | сумма набранных баллов пользователем | function SumPoint(): Integer | максимальная сумма баллов | function GetPersent(): Double | процент правильных ответов, набранных пользователем |
Методы для вывода результата работы скрипта (указывается обязательно): procedure SetMark(const Value: string) | установка оценки за тест | procedure SetMessage(const Value: string) | установка описания результата теста (подробная оценка) |
Рисунок 2 – Скрипт системы оценок Проверить правильность написанного скрипта можно, нажав клавишу F9. По окончании выполнения выводится диалог с оценкой и сообщением. Изменить входные тестовые данные можно на вкладке "Тестовые данные", тем самым проверив работу скрипта при различных входных данных. |