Delphi::Система тестирования. Часть 7
В предыдущей части цикла статей была выполнена подготовительная часть для написания программы-теста. Сегодня мы приступим, непосредственно, к разработке самого теста.
Для начала, нужно создать новый проект в папке тест, и подключить к нему все файлы из lib.
Интерфейс программы
Рассмотрим внешний вид приложения-теста. В отличие, от программы для создания теста, интерфейс будет здесь более простым. Нужны лишь две метки для отображения названия теста и вопроса, так же нужен блок вариантов ответа и три кнопки: «Назад», «Далее» и «Закончить».
Исходя из вышесказанного, приложение может выглядеть так (скачать dfm):
Основные компоненты:...
delphi, тестDelphi::Система тестирования. Часть 6
Ранее, в цикле статей, посвященных написанию системы тестирования, была разработана программа составления теста. Сейчас мы начнем создание самого теста. Для начала определим основные требования к программе:
- Вопросы из файла достаются в случайном порядке
- Тестируемый может перескакивать через вопросы и возвращаться назад
- Правильных ответов может быть несколько
- Варианты ответа к вопросу также выстраиваются случайно
- Имя файла можно передать как параметр командной строки, и программа должна его открыть
- Возможность начать тестирование сначала без перезапуска программы
Алгоритм проверки
После того, как с требованиями разобрались можно перейти к одной из самых важных частей любого теста – проверки. Поскольку у вопроса может быть несколько вариантов ответа, то алгоритм проверки будет несколько нетривиальным.
Смысл его в том, что получается, как бы, что неправильный ответ «бьет» правильный. То есть, если, к примеру, тестируемый выбрал, один верный вариант ответа и один неверный, то вопрос не засчитывается. Если же, он выбрал лишь один верный ответ, к примеру, из двух, то вопрос засчитывается наполовину.
Для того, что бы лучше понять, давайте рассмотрим пример. Пусть есть вопрос с шестью вариантами ответа, и три варианта правильные. Рассмотрим первый вариант: тестируемый отметил все правильные ответы – в таком случае за вопрос он получит 100%. Другой вариант: отметил только два варианта ответа из трех. Тогда получается, что вопрос верен лишь на 66%. Если же выбрать, к примеру, два правильных ответа и один неправильный, то 33%.
Подобный алгоритм с процентами является все же более справедливым, нежели просто «верно» или «неверно».
Расширенная работа с данными
Прежде чем приступить к непосредственно разработке программы-теста, нужно сначала расширить классы, созданные нами во второй части цикла статей (ссылка). То есть классы, описывающие данные из xml файла.
Самым очевидным способом расширения уже существующего класса, является наследование. Его и будем использовать.
Добавим в папку lib еще один unit – StDataTest. Начнем с класса варианта ответа: TStAnswer. Единственное, что нам нужно добавить этому классу – это поле Selected, определяющее, выбран ли вариант ответа или нет...
delphi, тестDelphi::Система тестирования. Часть 5
Ранее, в данном цикле статей, посвященных написанию программы для тестирования на Delphi, мы начали создание системы управления тестом. Сейчас мы ее, наконец, закончим.
Управление вариантами ответа
При клике на кнопку или метку «Редактировать», должно открывать окно управления вариантами ответа.
Создадим для этого новую форму, назовем ее EditUnit (скачать dfm).
Внешний вид:
Как видно, она чем-то похожа на главную форму. Рассмотрим основные компоненты...
delphi, тест

