|
Алгоритмы реализации При нажатии на кнопку «Начать тестирование» запускается подпрограмма обработки нажатия на эту кнопку, которая читает заданные при создании теста параметры его выполнения и вызывает процедуру 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 Государственное областное
образовательное учреждение |