Московский автомобильно-дорожный институт (государственный технический университет) XVII Научно-практическая конференция школьников МЦАДО Компьютерная программа: “Тестирующая система” (секция «Информатика») Автор: Демин Глеб лицей №1550, 11 класс Руководитель: Воробьева В.В., Дружерукова Л.В. Москва 2011 2 Содержание Содержание ................................................................................................. 2 I. Введение и постановка цели ............................................................... 3 II. Часть 1. Подпрограмма для учеников ................................................ 4 Вход в программу .................................................................................... 4 Устройство и управление файлами теста ............................................. 5 Таймер ..................................................................................................... 10 Подведение итогов тестирования. ....................................................... 12 III. Часть 2. Подпрограмма для учителя .............................................. 13 Вход в программу .................................................................................. 13 Подсчет результатов .............................................................................. 14 Создание тестов “с нуля” и их редактирование ................................. 16 Программа для шифрования и дешифровки текста ........................... 18 IV. Заключение....................................................................................... 19 3 I. Введение и постановка цели В наш развитой век компьютерных технологий всё больше и больше привычных для нас вещей, которые ранее никак не были связаны с компьютерами, становятся их частью. Это происходит в первую очередь потому, что компьютерные технологии сами по себе стали частью нашей повседневной жизни, и мы уже не можем представить без них свое существование. Целью моей работы являлось компьютеризировать такую неотъемлемую часть нашей жизни, как тесты, а так же научиться программировать на языке Microsoft Visual Basic .NET. Моя программа позволяет максимально упростить и автоматизировать процесс создания тестов, их редактирования и, конечно же, проверку знаний с их помощью. Созданная мной программа очень проста в освоении, и не требует никаких специальных знаний. Данный пакет программ разрабатывался в среде программирования Microsoft Visual Studio 2008 на языке Visual Basic .NET. Этот язык использует возможности Microsoft .NET Framework и является объектно-ориентированным, что открывает широчайшие возможности для программирования. Сама среда обладает мощным комплексом инструментов для отладки программы, что существенно облегчает работу. В разработанный мной пакет приложений входят три программы. Первая – это та программа, которая будет установлена на компьютеры учеников, и в которой они будут проходить тестирование. Вторая – вариант приложения, которым будет пользоваться учитель, при подведении итогов, создании и редактировании тестов. В дополнение к этим программам идет приложения для шифрования и дешифровки текста. Её назначение я раскрою позже. 4 II. Часть 1. Подпрограмма для учеников Вход в программу При входе требуется ввести имя и фамилию учащегося, для чего появляется специальное окно ввода (рис 1.1). Далее, введя необходимую информацию, и нажав кнопку ОК, мы попадаем на форму теста(рис 1.2). РИС 1.1 РИС 1.2 В момент инициализации формы, из текстового файла, который находится в папке с приложением, извлекается пароль, без знания которого мы не можем выйти из приложения. Пароль в файле 5 зашифрован, и расшифровать его можно лишь при помощи программы, входящей в состав пакета. Таким образом достигается приемлемый уровень безопасности для реального тестирования учащихся. При попытке нам показывается окно ввода пароля. Нажимаем кнопку Начать тест. После нажатия высветится стандартное диалоговое окно для открытия файла, в котором необходимо выбрать интересующий нас тест. Устройство и управление файлами теста Хотелось бы рассказать немного об устройстве файлов теста. Файлы тестов – это обыкновенные текстовые файлы формата txt. На первой строчке файла располагается число – количество вопросов в тесте. Затем по строчкам идут: “Вопрос номер 1” “Вариант ответа (А) к вопросу номер 1” “Вариант ответа (Б) к вопросу номер 1” “Вариант ответа (В) к вопросу номер 1” “Вариант ответа (Г) к вопросу номер 1” “Вариант ответа (Д) к вопросу номер 1” “Буква правильного ответа (А,Б,В,Г или Д) ” “Вопрос номер 2” И так далее… (рис 0.1) Когда мы открываем тесты, на экране нашего приложения мы видим подобную картину (рис 1.3). РИС 0.1 6 РИС 1.3 Как мы видим, на форме теста появились кнопки Следующий вопрос и Предыдущий вопрос, с помощью которых осуществляется перемещение по списку вопросов, а так же кнопка Зафиксировать ответ, при нажатии которой программа заносит выбранный вариант ответа (большие разноцветные кнопки слева) в список ответов. Ответ на вопрос можно зафиксировать только один раз. Кнопка Зафиксировать ответ работает только для вопросов, ответ на которые ещё не был дан. Важно заметить, что порядок вопросов, который формирует программа – хаотический. Это позволяет снизить риск списывания, при прохождении тестов несколькими людьми, сидящими за соседними компьютерами. Но это самый простейший из возможных вариантов теста. В жизни мы частенько сталкиваемся с необходимостью преподнести вопрос или один из вариантов ответа в виде изображения. И это предусмотрено в программе. Стоит лишь поставить в файле теста в то место, где мы хотим, чтобы у нас было изображение, путь к нему, как показано на рисунке 0.2. На форме это будет выглядеть так (рис 1.4), или так (рис 1.5). 7 РИС 0.2 РИС 1.4 8 РИС 1.5 Как мы видим, картинки отображаются в виде миниатюр. Чтобы увидеть полную версию картинки, мы просто щелкаем по ней левой кнопкой мыши, и нам открывается дополнительное окно, с полным вариантом данной картинки (рис 1.6). Окно, впоследствии, мы можем закрыть. 9 РИС 1.6 Также, предусмотрен режим для прохождения так называемой “Части Б” тестов, то есть части, где необходимо вводить ответы в ручную. Для того чтобы вместо вариантов ответа на форме теста появилось поле, для заполнения (рис 1.7) необходимо прописать в файле теста на месте Варианта ответа 2 команду %ENTER% (рис 0.3), при этом оставляя все остальные поля для вариантов ответа пустыми. РИС 0.3 10 РИС 1.7 Естественно, мы можем комбинировать все эти варианты, и получать тесты части «Б» с картинками вместо вопросов (к примеру) и так далее. Таймер Ещё одно достаточно важное добавление к обычному тесту – это таймер. Если вам необходимо строго ограничить время выполнения вашего теста, вы должны прописать последней строчкой, после правильного варианта ответа к последнему вопросу теста, ключевое слово TIMER, что будет сигналом для программы, о наличии таймера. На следующей строчке мы должны указать цифру, уже без кавычек. Это будет количество минут, отведенных на выполнение теста (рис 0.4). На самой форме теста таймер будет отображаться так, как показано на рис. 1.10. Отображается время до истечения лимита. 11 РИС 0.4 РИС 1.10 По истечении времени, отведенного для выполнения теста, программа автоматически заблокирует все кнопки и подведет итог вашей работе. Ещё одна небольшая деталь – если на месте одного из вариантов ответа в файле теста стоит пропуск, то текстовое поле этого варианта 12 скрывается, вместе с соответствующей ему кнопкой выбора (рис. 1.10). Подведение итогов тестирования. Как только мы зафиксировали ответ к последнему вопросу, появляется кнопка Подвести итоги. Подводя итоги, программа выводит количество полученных балов не только на форму вопроса, но и записывает результаты в файл. Для указания пути, по которому требуется сохранить файл с результатами, в папке с программой находиться текстовой файл под названием Path.txt. Если файл отсутствует, или директория, указанная в нем не существует, приложение откроет окно предупреждения (рис 1.11) и предложит указать путь в соответствующей форме ввода. РИС 1.11 В папке, которую мы указали, будет находиться созданная приложением папка, с названием теста, в которой и будут располагаться текстовые файлы с результатами учащихся. Каждый файл называется по имени ученика, чьи результаты он содержит. Сами результаты будут составлены по такому шаблону (рис 0.5). Как мы видим, в конце файла, после ключевого слова RESULTS выводится количество баллов, набранных учеником. 13 РИС 0.5 проверяющему вообще не придется взаимодействовать с файлами результатов. Всю работу за него сделает программа. О том как я напишу в Части 2 своего реферата. На этом я хотел бы закончить рассказ о подпрограмме для учеников, и перейти непосредственно к основной программе своего пакета – подпрограмме для учителя. III.Часть 2. Подпрограмма для учителя Вход в программу Сразу после загрузки формы, мы не увидим принципиальных отличий от варианта тестируемого, но, на самом деле, их очень много. Здесь наши действия никак не ограничиваются, мы можем открывать и закрывать тесты, анализировать результаты, начинать новые, создавать, и, конечно же, редактировать их. (рис 2.1 и 2.2). РИС 2.1 14 РИС 2.2 Кнопка Открыть тест вызывает то же самое окно открытия, что и кнопка Начать тест. С помощью кнопки Начать заново мы заново загрузить данную форму. Подсчет результатов Теперь хотелось бы рассказать немного о подсчете результатов тестов. Как уже упоминалось ранее, проверяющий избавлен от рутинной работы, за него все проделает программа. Все что необходимо сделать – это указать папку, в которой располагаются файлы результатов в диалоговом окне, появляющимся при нажатии кнопки Подсчитать результаты тестов. Далее программа сама произведет все необходимые подсчеты, и выведет на экран две таблицы (рис 2.3, 2.4). РИС 2.3 15 РИС 2.4 Первая, как мы видим, содержит простой подсчет балов. Вторая же более интересна. Там содержаться данные о том, сколько человек, из всех проходивших, дали правильные ответы на тот или иной вопрос. Данная таблица позволяет нам понять, что из материала было усвоено лучше, а что хуже, и составить план дальнейшего обучения. Обе таблицы можно отсортировать, простым нажатием на заголовок одного из столбцов. Так же, данные таблицы можно сохранить в текстовой файл нажатием кнопки Сохранить в меню. Как видно из рисунка 2.4, пути к изображениям так же выводятся в таблицу, и не отображают реальной сути вопроса. Что бы избежать затруднений, при щелчке на ячейку, в которой прописан такой путь, появляется окно с необходимым изображением (рис 2.5). 16 РИС 2.5 Создание тестов “с нуля” и их редактирование Начнем с кнопки Создать тест. Нажав ее, мы увидим диалоговое окно, в котором мы должны будем либо ввести имя будущего теста, либо выбрать из уже существующих файлов тот, который следует перезаписать. Далее нам необходимо ввести количество вопросов, на которое рассчитан наш будущий тест. Введя это число, нам по очереди станут открываться окна, для ввода вопросов, затем вариантов ответа, а затем правильных вариантов (рис 2.6). Также в данных окнах присутствует кнопка «Обзор», при нажатии на которую нам открывается диалоговое окно выбора файла. Данная кнопка упрощает процесс указания пути к изображению. Выбрав нужную нам картинку в диалоговом окне, мы получаем в поле ввода полный путь до нее. 17 РИС 2.6 После окончания ввода вопросов, необходимо указать, ли мы добавить таймер в наш тест. Выбрав положительный вариант ответа, мы попадем на форму ввода, где мы сможем ввести время для таймера в минутах (рис 2.7). РИС 2.7 На этом заканчивается процесс создания теста. Теперь данный тест можно предлагать ученикам. Для того, чтобы отредактировать один из уже имеющихся тестов нам нужно нажать кнопку Редактировать тест., и в появившемся окне выбрать тот файл, который мы хотели бы отредактировать. Сделав это, мы попадем на форму редактирования. В левой части формы располагается окно, в котором, в виде списка, отображены все строчки, находившиеся в исходном файле. Выбирать элементы из списка можно либо стрелками клавиатуры, либо просто кликая по ним левой кнопкой мыши. Выбрав элемент, вы увидите, что его содержание теперь отобразилось в правом окне (рис 2.8). РИС 2.8 18 РИС 2.9 Мы можем отредактировать текст элемента по своему усмотрению, а затем нажать кнопку Подтвердить редактирование (рис 2.9 (7)). После этого элемент списка измениться в соответствии с вашей корректировкой. Чтобы отменить подтверждение, нужно нажать клавишу Отмена (рис 2.9 (4)). Клавиша Вперед (рис 2.9 (5)) производит обратное действие. Нажав клавишу Удалить (рис 2.9 (9)) вы удалите ячейку. При удалении, выбирать можно как одну, так и несколько ячеек. Для этого можно использовать сочетания левой кнопки мыши с клавишей <Shift> и <Ctrl>. Чтобы восстановить ее, нажмите клавишу Восстановить (рис 2.9 (6)). Чтобы добавить ячейку в список используйте клавишу Добавить (рис 2.9 (8)). Чтобы открыть новый тест, необходимо нажать клавишу Открыть (рис 2.9 (2)), так же продублированную в меню Файл. Чтобы сохранить отредактированный тест, нажмите клавишу Сохранить (рис 2.9 (3)) (тоже продублирована в меню Файл). Наконец, кнопка Новый лист (рис 2.9 (1)) позволяет очистить текущий список. В будущем, я планирую развить проект, и добавить возможность создания формул и сохранения их как частей вопроса, или же варианта ответа. Программа для шифрования и дешифровки текста Используя данный комплекс программ у себя в лицее, я столкнулся с определенными трудностями. Их вызвала невозможность (по техническим причинам) полного скрытия файлов теста от учеников. А файлы теста, как мы уже знаем, содержат в себе правильные варианты ответа. Если каждый сможет их видеть, тестирование потеряет всякий смысл. Для решения этой проблемы, мной была разработан небольшой алгоритм шифрования и, соответственно, дешифровки текстовой 19 информации. Программа состоит из одной формы и двух кнопок, назначение которых очевидно (рис. 3.0). РИС 3.0 Данный алгоритм я так же встроил в подпрограмму для учеников, которая используется у меня в лицее. Таким образом достигается должный уровень защиты данных. IV. Заключение В заключении, я хотел бы подвести итог проделанной мной работе. Во первых, цель, которая была поставлена в начале, была полностью выполнена. Комплекс программ, созданный мной, отвечает всем необходимым требованиям по разработке и проведению тестов, а так же по их автоматизированной проверке. Во вторых, по ходу создания проекта, мне удалось самостоятельно освоить язык программирования Visual Basic .NET на достаточном уровне. Помимо прочего, я научился таким элементам объектно - ориентированного программирования, как работа с классами, объектами класса, создание собственных классов, что, как я считаю, поможет мне в дальнейшей работе по профессии. Лучшим подтверждением полезности проделанной мной работы я считаю то, что мой комплекс программ активно используется преподавателями моего лицея, и не вызывает у них нареканий. В дополнение к реферату я прилагаю диск с двумя подпрограммами, программой для шифрования данных и двумя пробными тестами. Также, на диске находится установщик Microsoft .NET Framework 3.5, который потребуется для корректной работы программы.