Цель проекта - разработка программы, позволяющей тестировать и улучшать знания по географии, как знания географической номенклатуры, так и теоретические знания. В ходе работы был спроектирован и реализован движок для тестирования с использованием географических карт, формат для хранения заданий и алгоритмы работы с ним, создан приятный интерфейс программы, редактор для работы с картами и заданиями, средства сетевого контроля тестирования.
Задания в программе были разделены на два типа: географические объекты и текстовые вопросы. Географические объекты представляются набором ключевых точек. Объект может иметь несколько названий: основное и альтернативные, и коэффициент сложности. Для некоторых объектов (например, реки) важно направление показа. Вопросы в программе сделаны в виде теста с вариантами ответа. Существует возможность привязать вопросы к конкретному объекту с помощью специального ссылочного механизма. Главной структурной единицей в программе является тема - набор заданий и вопросов на общую тематику. Тема имеет название и путь к файлу с картой. Карты в программе представляются растровыми изображениями, и к ним привязываются определенные темы.
Для хранения заданий в файлах был разработан специальный формат. Каждая тема хранится в отдельном файле. Она представлена набором определенных команд. Чтобы не дать ученику подглядеть ответы, файл подвергается шифрованию. При работе с базой тем программа с помощью системных функций получает список файлов в директории и ищет в них темы. Для этого файл читается построчно, строка декодируется и анализируется. Когда файл кончается, программа переходит к следующему файлу. Когда тема прочитана, она проходит проверку на пригодность для теста (тема должна содержать хотя бы одно задание, имеет путь к карте и т.д.), и добавляется ее в список, из которого будет осуществляться выбор тем для тестирования. По такому же принципу составляется список карт.
Довольно сложно было реализовать анализ действий ученика на карте, так как отмеченная им траектория должна быть пригодна для сравнения с исходными точками объекта. Для этого был разработан специальный алгоритм. Сначала программа определяет ключевую точку объекта, соответствующую первой точке, отмеченной учеником. Для этого сравниваются расстояния от первой точки ученика до всех ключевых точек объекта. Номера точек переставляются таким образом, чтобы ближайшая точка стала первой. Далее определяется направление показа. Для этого сравниваются расстояния от следующей точки ученика до двух соседей первой точки. Номера точек переставляются по направлению показа. Следующие точки ученика отмечаются так, чтобы расстояния между ними были равны расстояниям между соответствующими точками объекта. Когда все точки отмечены или отведенное на ответ время истекает, производится анализ. Если расстояние от точки ученика до соответствующей точки объекта меньше, чем заданная константа,то эта точка отмечена правильно.
Важным шагом при разработке проекта былосоздание удобного и привлекательного графического интерфейса. Так, например, список рекордов учеников сделан в виде классного журнала, а курсор мыши заменен указкой. Для удобства ориентирования на основной карте есть мини-карта. Процесс тестирования сопровождается звуковыми комментариями.
Презентация
Видеозапись с процесса тестирования
Сайт программы
Скачать программу
|