Тесты в MS PowerPoint

Элементы слайда

Виды слайдов

Алгоритмы реализации

Демонстрационный тест

Автоматизация тестирования

На главную

Алгоритмы реализации

При нажатии на кнопку «Начать тестирование» запускается подпрограмма обработки нажатия на эту кнопку, которая читает заданные при создании теста параметры его выполнения и вызывает процедуру Pusk. Та в свою очередь обращается к подпрограммам начальной инициализации и очистки результатов, запоминает фамилию и имя пользователя, переводит заданное время тестирования в секунды, фиксирует момент начала тестирования, выдает команду перехода на следующий слайд и, если это предусмотрено в настройках, запускает таймер обратного отсчета.

Подпрограмма начальной инициализации:

  • инициирует класс событий приложения для возможности реагирования на смену слайдов и выход из режима просмотра;

  • определяет количество слайдов в презентации;

  • создает и заполняет массив меток видов слайдов;

  • определяет цвета заливки и заголовка в используемой цветовой схеме и окрашивает в них кнопку «Далее»;

  • выводит на слайды с заданиями их порядковые номера, скрывая эти атрибуты на информационных слайдах;

  • очищает поле вывода времени тестирования, и если это задано в настройках, то скрывает его;

  • на предпоследнем слайде, для предупреждения пользователя, надпись «Далее» на кнопке меняет на «Итоги».

Вслед за этим создается массив, куда будут заноситься результаты выбора, и вызывается подпрограмма обработки первого слайда. Ее назначение – скрыть или отобразить элементы вывода времени и установить цвет кнопки «Начать тестирование» и текста на ней в соответствии с выбранной цветовой схемой. Затем вступает в действие процедура скрытия меток на флажках и переключателях, очистки массива результатов выбора и информации из текстовых полей вывода на последнем слайде.

Событийная процедура, реагирующая на смену слайдов, записана в модуле класса. Ее основное назначение – запуск таймера, а также вызов подпрограммы для определения переменных окружающей среды: номера слайда и номера задания, а при переходе на последний слайд, вывода результатов. Здесь же находится еще одна процедура, реагирующая на прерывание режима просмотра вызовом подпрограммы очистки результатов.

Так как в режиме отладки теста нередко выполняется запуск презентации на просмотр с произвольного слайда, то для этого случая предусмотрена подпрограмма проверки инициализации при начале просмотра. Она вызывается всякий раз, как только выполняется щелчок на флажке, переключателе или кнопке «Далее» и в случае, если инициализация теста не осуществлялась, вызывает необходимые для этого процедуры.

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

Нажатие на кнопку «Далее» приводит к чтению данных в массив регистрации правильных ответов текущего слайда и вызову процедуры проверки выбранного ответа. На основании сравнения данных в массивах правильных и выбранных ответов определяется количество совпадений и в массив учета результатов выбора заносится отношение числа совпадений к числу вариантов правильных ответов с точностью до сотых долей. Затем выполняется переход на следующий слайд.

Процедура обработки результатов тестирования:

  • находит сумму набранных баллов в соответствии с установленным параметром учета долей множественного выбора и количество полностью правильных ответов;

  • формирует отчет о номерах заданий, в которых допущены ошибки;

  • формирует отчет о номерах заданий, в которых не заданы правильные ответы;

  • вычисляет процент верных ответов;

  • определяет итоговую оценку по пятибалльной шкале;

  • находит время, фактически затраченное на прохождение теста и

  • выводит всю эту информацию на последний слайд;

При обнаружении заданий с незаданными правильными ответами выводит окно сообщения с перечнем их номеров.

Если установлен флаг вывода результатов тестирования в текстовый файл, то вызывается соответствующая подпрограмма.

Эта подпрограмма:

  • определяет адрес файла выполняемого теста и его имя;

  • конструирует на его основе имя тестового файла;

  • открывает файл для вывода в той же папке, где и файл теста;

  • выводит в него фамилию и имя тестировавшегося, затраченное время, количество заданий, результаты ответов на каждое задание, число и процент верных ответов, оценку, отчет об ошибках с указанием номеров заданий, в которых допущены ошибки;

  • определяет и выводит дату и время создания файла;

  • устанавливает на файл атрибуты «Скрытый» и «Только чтение».

Таймер обратного отсчета времени можно было бы кратко представить в виде следующего макроса:

 Public Sub Countdown()

    Stop_t = Timer + ost_t

    Do While Stop_t > Timer

        DoEvents

        If Timer = Int(Timer) Then

            Call Out_tim(Stop_t)

        End If

   Loop

End Sub

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

В действительности же эта процедура получилась наиболее объемной, так как она обременена множеством условий, начиная от режима работы, вида текущего слайда и кончая проверкой текущей версии приложения PowerPoint, в которой выполняется тестирование. Последнее условие также пришлось учитывать при разработке конструктора.

Совместимость версий

Принцип обратной совместимости при разработке приложений обычно декларируется и исповедуется фирмами-разработчиками, в том числе и корпорацией Microsoft. Он означает способность новых версий программы работать с файлами, созданными в более ранних версиях этой же программы. При работе в MS Office 2007 с обычными документами, созданными в предыдущих версиях,  никаких проблем  с их открытием и использованием не возникает. Но не все так просто на уровне макросов. Если вызвать справку о версии VBA, встроенного в Office 2003 и Office 2007, то в обоих случаях получим один и тот же результат: «Microsoft Visual Basic 6.3 Version 1020 VBA: Retail 6.5.1020 Forms3: 12.0.4518.101».

Окно сообщения о версии VBA

Однако на деле выясняется, что в двенадцатой версии офисного пакета от Microsoft из VBA куда-то исчез класс объектов «FileSearch» для работы с внешними файлами, и это не единственная потеря. Оказывается, что иначе ведут себя и циклы. Если в версии 2003 года возможен досрочный выход из цикла по условию изменения значения глобальной переменной в период его исполнения, то в версии 2007 года циклы словно «слепнут», не реагируя на такое событие. Похожая странность возникает и при попытке обращения к элементу копии объекта с целью определения имени группы, в состав которой он входит с помощью указателя ParentGroup. Его использование не дает результатов и приводит к зависанию макросов. Но стоит файл документа сохранить, закрыть и открыть снова, как ситуация выправляется. Ничего подобного в предыдущих версиях MS Office не наблюдается. Еще одна ситуация: ранее к элементу группы можно было обратиться по его имени как напрямую, так и с указанием группы, в состав которой он входит. В последней версии допускается только последний вариант.

Трудно сказать, в чем причина таких внешне скрытых проблем совместимости: то ли это недоработки Microsoft, то ли смена идеологии, однако их наличие при создании конструктора потребовало отказаться от некоторых простых и красивых решений, нормально работающих в Office 2003, и искать более сложные алгоритмы на основе совместимых средств, для того, чтобы конструктором можно было пользоваться как обладателям  PowerPoint 2007, так и тем, у кого он с большим стажем.

Назад Вверх Далее

 

Тесты в MS PowerPoint Элементы слайда Виды слайдов Алгоритмы реализации
Демонстрационный тест Автоматизация тестирования

© 2009 Государственное областное образовательное учреждение
"Россошанская школа-интернат для детей-сирот и детей, оставшихся без попечения родителей"