Проектирование и разработка сетевой системы тестирования студентов

Создание сетевой системы тестирования с целью автоматизации процесса контроля знаний, оценивания результатов и создания тестовых заданий. Файлы проекта и их назначение. Описание алгоритмов и модулей программы. Работа с сетью, руководство пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 23.12.2012
Размер файла 928,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Поле LogedIn класса формы frmServer представляет собой экземпляр класса TLIList. LogedIn реализует список тестируемых пользователей. Таймер Timer каждые TIMERSTEP миллисекунд вызывает метод Tick объекта LogedIn. В этом методе происходит уменьшение времени существования записей тестируемых пользователей и удаление записей пользователей, потерявших право на существование. Остальные методы LogedIn вызываются из RunRequest.

При запуске обеих программ сетевые настройки читаются из конфигурационных файлов.

4. Руководство пользователя

4.1 Сведения о файлах программ и способе их установки

Сетевая система автоматизированного тестирования включает 3 программы. Программа iTest осуществляет процесс тестирования и реализует функции клиента. iJournal позволяет оперировать с записями журнала, осуществляет централизованный сбор результатов тестирования по сети (сервер). iConstructor применяется для создания тестовых наборов, которые в готовом виде могут быть использованы для тестирования.

Программа iTest включает следующие файлы и папки:

Таблица 22 - Файлы и папки iTest

Название папки

или файла

Назначение

iTest. exe

Файл программы клиента iTest.

iTest. ini

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

iTest. log

Лог файл программы iTest, используется для анализа работы программы в сети.

Tests

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

Tests\*\*. tst

Тестовые файлы. В каждом подкаталоге каталога Tests должен располагаться ровно 1 тест со всеми файлами, относящимися к нему.

Программа iJournal включает файлы:

Таблица 23 - Файлы и папки iJournal

Название папки

или файла

Назначение

iJournal. exe

Файл программы журнала iJournal.

iJournal. ini

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

iTest. jnl

Файл, в котором хранятся все записи журнала.

iJournal. log

Лог файл программы iJournal, используется для анализа работы программы в сети.

Программа iConstructor состоит из файлов:

Таблица 24 - Файлы и папки iConstructor

Название папки

или файла

Назначение

iConstructor. exe

Файл программы конструктора тестов iConstructor.

Tests

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

Tests\Temp

Временная папка, в нее нельзя ничего сохранять.

Tests\*\*. tst

Тестовые файлы.

Требования к ресурсам компьютера, на который устанавливается любая из данных программ:

Наличие ОС Windows на основе технологии NT, начиная с версии Windows 2000 (возможна и другая ОС, но программа на ней не тестировалась).

- Наличие сети, стандартных сетевых библиотек, устанавливаемых вместе с ОС или сетью (для программы iConstructor это не требуется, остальные программы также могут работать на одном компьютере без сети).

- Разрешение экрана монитора минимум 800х600, 256 цветов.

- Стандартная мышь и клавиатура.

- Жесткий диск не менее 4000 rpm со свободным пространством на 20 Мб.

- Процессор с тактовой частотой от 500 МГц.

Программа iTest c настроенным конфигурационным файлом сети устанавливается на все компьютеры, на которых будет производиться тестирование студентов. Программы iJournal и iConstructor устанавливаются вместе на компьютер, за которым будет сидеть преподаватель, и доступ к нему должен быть ограничен. Также возможна установка последних двух программ порознь.

Порядок установки программ следующий:

1 Создать папку на любом логическом диске компьютера, на котором устанавливается программа, можно ей задать произвольное имя. Папка должна быть на логическом диске жесткого диска.

2 Скопировать в нее все файлы, относящиеся к устанавливаемой программе.

3 При установке клиента или сервера нужно также настроить его конфигурационный файл.

Лучше всего сначала установить программу iJournal, узнать IP адрес этой машины в сети (достаточно запустить окно сервера, и в нем на панели сверху отобразиться адрес). Дальше настроить конфигурационный файл сервера, затем отредактировать конфигурационный файл клиента, записав в него данные из конфигурационного файла сервера, сделать еще какие-нибудь настройки в этом файле, в зависимости от особенностей конкретной сети. Затем с новым конфигурационным файлом установить программу iTest на все нужные машины. Можно также использовать все три программы на одной машине.

Настройка конфигурационных файлов клиента и сервера проводится согласно таблицам 25 и 26.

Таблица 25 - Опции файла настроек сервера iJournal. ini

Опция

Назначение

Port=45101

Номер порта сервера (точно такой же должен стоять в конфигурационном файле клиента).

TIMEOUT=10

Время в секундах, через которое текущий пользователь будет удален из списка тестируемых пользователей, в случае не получения от его клиента запроса на обновление состояния (то же самое должно стоять в конфигурационном файле клиента).

TIMERSTEP=1000

Время шага таймера сервера в миллисекундах (это уже специфическая настройка только сервера).

Таблица 26 - Опции файла настроек клиента iTest. ini

Опция

Назначение

IP=127.0.0.1

IP адрес сервера, 127.0.0.1 - адрес этой же машины.

Port=45101

Номер порта сервера.

TIMEOUT=10

Время в секундах, через которое текущий пользователь будет удален из списка тестируемых пользователей на сервере, в случае не получения сервером от его клиента запроса на обновление состояния (то же самое должно стоять в конфигурационном файле сервера).

TIMEPERCENTTOCONNECT=40

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

MAX_CONNECT_TRIES=5

Максимальное число попыток клиента соединиться с сервером.

MAX_WAIT_TIME=5

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

MAX_CONNECT_NOANSWER=5

Максимальное число попыток клиента соединиться с сервером в случае не получения от него ответа.

Для установки теста в систему тестирования, нужно поместить все файлы, относящиеся к данному тесту в одну папку, если это не было сделано ранее. Cкопировать эту папку в директорию Tests программы iTest, чтобы та получила доступ к новому тесту. Зарегистрировать этот тест в списке тестов журнала iJournal.

4.2 Интерфейс и функциональность программы iTest

Запуск приложения осуществляется после двойного щелчка мышью по иконке приложения с названием iTest. exe. Сразу на экране появляется окно с названием "Вход в iTest", изображенное на рисунке 1. Чтобы начать работу с программой тестирования iTest пользователь должен произвести идентификацию, введя свои личные данные: фамилию в текстовое поле "Фамилия", имя в текстовое поле "Имя", а затем ввести название группы.

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

В случае нажатия по кнопке "Отмена" или по кнопке "Х" у заголовка окна происходит завершение работы приложения.

После ввода данных, пользователь нажимает на кнопку "Вход". В случае ввода неверных данных появляется информационное окно, информирующее пользователя об этом:

Рисунок 2 - Информирование об отсутствии регистрации пользователя

Далее пользователь может скорректировать введенные данные и повторить попытку входа.

Для локального входа можно зайти под фамилией "Тест" именем "Тест" и группой "04 Т-1". При этом программа не будет искать сервер, результаты тестирования не будут сохраняться в журнале.

Если клиентская программа не смогла соединиться с сервером, то выдается сообщение об этом (рисунок 3), оно также может появляться и по ходу работы с программой.

Рисунок 3 - Информирование о невозможности соединения с сервером

Если пользователь с этими данными уже вошел в систему, то также появляется соответствующее сообщение.

Пользователь успешно прошел идентификацию и перед ним появляется окно выбора теста (рисунок 4).

Рисунок 4 - Окно «Выбор теста»

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

После выбора теста начинается самая важная фаза работы программы iTest - процесс тестирования. Перед пользователем появляется окно с первым вопросом теста (рисунок 5).

Рисунок 5 - Главное окно iTest

В заголовке окна пользователю доступна информация об общем количестве вопросов теста, номере текущего вопроса и режиме тестирования. В верхней части окна располагается многострочное текстовое поле, содержащее текст текущего вопроса, справа от него может располагаться дополнительная картинка иллюстрация к вопросу (как это показано на рисунке 6).

Рисунок 6 - Главное окно iTest

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

Пользователь не ограничен во времени. Выбор необходимого варианта осуществляется щелчком по соответствующей картинке, многострочному текстовому полю или по букве. Выбранный ответ подсвечивается, и программа автоматически переходит к следующему вопросу теста, в случае наличия такого. Панель навигации, расположенная в нижней части окна позволяет пользователю переходить назад и вперед по списку вопросов, исправлять уже данные варианты ответа или пропускать некоторые вопросы. Исправление осуществляется также щелчком по нужному варианту, и подсветка автоматически сменится с выбранного раньше варианта на новый. После ответа пользователя на последний вопрос, если были пропущены некоторые вопросы (т.е. пользователь не давал на них никакого варианта ответа), то выдается соответствующее предупреждение (рисунок 7).

Рисунок 7 - Информирование о пропущенных вопросах

Если пользователь отвечает "Yes", то программа не проводит вычисление результата и пользователь еще может ответить на пропущенные вопросы, исправить варианты ответов на отвеченные вопросы при помощи панели навигации. Если же пользователь не пропустил ни одного вопроса или в диалоговом окне, изображенном на рисунке 7, ответил "No", то программа производит автоматическое вычисление результата, посылку его журналу-серверу и выдачу оценку пользователю, как это изображено на рисунке 8. В том же окне пользователю, если это необходимо, предлагается выйти из программы, нажав по кнопке выйти, или начать процесс тестирования, щелкнув по кнопке "Новый тест". При этом открывается диалоговое окно, изображенное на рисунке 4, и пользователь может вновь пройти процесс тестирования по кругу.

В любой момент времени тестируемый может прекратить работу с программой, нажав по конке "Х" в заголовке окна, при этом тестирование считается незаконченным и результат не отправляется серверу.

Рисунок 8 - Выдача результата тестирования

Если программа не смогла соединиться с сервером и передать результат, то выдается сообщение, изображенное на рисунке 9:

Рисунок 9 - Информирование о невозможности передачи результата

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

4.3 Интерфейс и функциональность программы iJournal

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

Сразу же после запуска появляется окно "Введите пароль", изображенное на рисунке 10. Необходимо ввести пароль "тест" - это пароль, принятый по умолчанию.

Рисунок 10 - Окно ввода пароля

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

После входа в программу появляется окно "Список групп" (рисунок 11). Перед глазами пользователя предстает список зарегистрированных в журнале групп.

Рисунок 11 - Окно «Список групп»

В данном диалоговом окне можно производить операции над группами. Нажатие по кнопке "Добавить" приводит к появлению на экране окна "Добавление группы" (рисунок 12). При работе с ним пользователь вводит название группы в соответствии с правилами, описанными в спецификации интерфейса программы iTest при входе в систему тестирования. При нажатии кнопки "ОК" производится добавление группы (группу с пустым названием специальности добавить нельзя) в список групп журнала. Также требуется уникальность названия группы в журнале, и, при попытке создание еще одной группы с существующим названием, выводит соответствующее сообщение. Нажав, по кнопке "Отмена", пользователь закроет данное окно без добавления группы и вернется к работе с окном "Список групп".

Рисунок 12 - Окно «Добавление группы»

После выбора в списке групп нужной (при этом происходит выделение группы в списке) и нажатия по кнопке "Изменить", появится окно "Изменение имени группы" (рисунок 13), операции с котором аналогичны, производимым с окном на рисунке 12.

Рисунок 13 - Окно «Изменение имени группы»

Пользователь также может удалить группу, выделив ее в списке и нажав по кнопке удалить, при этом открывается диалоговое окно подтверждения (рисунок 14).

Рисунок 14 - Подтверждение удаления группы

Нажав, по кнопке "No" пользователь может отменить команду удаления. Если же он нажмет по кнопке "Yes", то группа со всеми относящимися к ней студентами будет удалена.

Нажав кнопку "Закрыть" (окно рисунка 11) пользователь закроет окно приложения. Выбрав группу в списке и нажав на кнопку "Выбрать" пользователь преступает к работе с записями группы (также можно выбрать группу, сделав двойной щелчок по ее имени в списке).

Группы могут быть удалены, созданы, переименованы в программе только в этом диалоговом окне (рисунок 11). Пользователь может работать либо только с одной группой, либо одновременно со всеми (для этого пользователь выбирает "Все группы"). Данное диалоговое окно также может быть вызвано через меню из основного окна программы.

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

Следует предупредить, что все модификации групп производятся немедленно и безвозвратно в оперативной памяти (чтобы отменить модификацию, можно не сохранять журнал).

После выбора нужной группы пользователь преступает к работе с записями студентов данной группы (или с записями студентов всех групп одновременно в случае выбора "Все группы"). Перед пользователем появляется основное окно программы, изображенное на рисунке 15.

Рисунок 15 - Главное окно iJournal

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

Рассмотрим подробнее все функции главного окна.

Сохранение журнала должно производится после его модификации. Функция сохранения может быть вызвана через меню "Журнал\Сохранить", сочетанием клавиш Ctrl+S, либо щелчком по кнопке с дискетой на панели инструментов. Также при закрытии, программа предупредит о не сохраненном журнале и спросит, нужно ли сохранить (рисунок 16).

Рисунок 16 - Предупреждение о не сохраненном журнале

Процесс повторного прочтения журнала из файла применяется для обновления данных из файла журнала, отмены модификаций. Данная функция вызывается из меню "Журнал\Перечитать", сочетанием клавиш Ctrl+O или нажатием на кнопку со значком папки на панели инструментов.

Добавление студента в группу. Функция вызывается через меню "Студент\Добавить…", сочетанием клавиш Ctrl+A, нажатием клавиши Ins во время работы с таблицей-списком студентов, щелчком по кнопке с изображением плюса на панели инструментов. При этом появляется диалоговое окно, изображенное на рисунке 17.

Рисунок 17 - Окно «Добавление студента»

В текстовые поля "Фамилия", "Имя" вводятся соответственно фамилия и имя студента, из списка групп выбирается нужная группа, в которую осуществить добавление студента. Нажатие кнопки "Отмена" приводит к отказу от действий. Нажатие по кнопке "Добавить" ведет к появлению записи пользователя в журнале. При этом, если происходит добавление в текущую группу, то пользователь появляется в таблице-списке. При вводе имени и фамилии производится контроль букв (на принадлежность к русскому алфавиту, независимо от регистра + символ пробела, т.е. допускаются составные имена и фамилии). В том случае, если пользователь с этим именем и фамилией в указанной группе уже существует, выдается соответствующее сообщение. В случае не заполнения текстовых полей имени или фамилии также выдается сообщение.

Удаление студента. Сначала в списке студентов выделяется нужная запись, а затем вызывается функция удаления из меню "Студент\Удалить", сочетанием клавиш Ctrl+D, нажатием клавиши Del при работе с таблицей-списком или щелчком по кнопке с изображением минуса на панели инструментов. При этом открывается диалоговое окно подтверждения, в случае отказа действие отменяется, при соглашении запись пользователя стирается из списка студентов.

Редактирование записи о студенте. Выделяется запись студента в таблице-списке, а затем вызывается функция редактирования через меню "Студент\Редактировать", сочетанием клавиш Ctrl+E, нажатием клавиши Enter при работе с таблицей-списком, двойным щелчком по записи студента или щелчком по кнопке с изображением карандаша на панели инструментов. Открывается диалоговое окно (рисунок 18).

Рисунок 18 - Окно «Редактирование записи о студенте»

В текстовых полях фамилии, имени и в раскрывающемся списке отображаются данные студента, их можно редактировать. Нажатие по кнопке "ОК" приводит к сохранению изменений. Нажатие по кнопке "Отмена" отменяет изменения. Как и при добавлении студента осуществляется контроль уникальности фамилии и имени студента одновременно, в пределах группы, а также пустоты полей.

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

Редактирование списка тестов. Список тестов необходим для определения, к какому тесту относится та или иная оценка. Он предоставляет гибкость при определении оценок в столбцах таблицы. Диалоговое окно работы со списком тестов вызывается через меню "Тест\Список…", сочетанием клавиш Ctrl+L или щелчком по кнопке на панели инструментов с изображением списка. Открывается диалоговое окно "Список тестов", изображенное на рисунке 19. Большую часть окна занимает таблица имен тестов, первая строка содержит название теста, соответствующего первому столбу оценок, вторая - второму и т.д. В нижней части окна находится текстовое поле "Имя теста", с кнопкой "Применить" справа от него, оно предназначено для непосредственного редактирования имен тестов. Выделяется нужное имя теста, редактируется строка в однострочном текстовом поле и нажимается кнопка "Применить", в результате меняется имя теста в списке. Нажатие на кнопку "Вставить" приводит к вставки пустой строки в таблицу имен тестов в позицию выделенной строки. При нажатии на кнопку "Добавить" осуществляется добавление пустой строки в конец списка. Нажатие на кнопку "Удалить" приводит к удалению выделенной строки. Нажатие на кнопку "Очистить" приводит к очищению всего списка (перед этим выдается окно подтверждения). Кнопка "Файл…" открывает диалоговое окно открытия файла теста (чтение имени теста будет происходить непосредственно из него), после выбора файла появляется окно выбора способа вставки имени теста из файла (рисунок 20): в текущую позицию (позицию выделения), в конец списка или заменить весь список.

Рисунок 19 - Окно работы со списком тестов

Рисунок 20 - Окно выбора способа вставки

Аналогичные действия вызывает нажатие на кнопку "Папка…", открывается диалоговое окно выбора папки с тестами, после выбора осуществляется извлечение имен тестов из тестовых файлов указанной папки (учитываются только 2 уровня вложенности каталогов). Нажатие на кнопку "ОК" приводит к сохранению списка тестов, при этом в случае если в результате редактирования число имен тестов уменьшилось (может пропасть часть оценок студентов), то выдается предупреждение (рисунок 21). Также недопустимы пустые имена тестов и символ двойной кавычки в названии теста.

Рисунок 21 - Информирование об удалении оценок

Вызов диалогового окна "Список групп" осуществляется (рисунок 11) через меню "Группа\Изменить…", сочетанием клавиш Ctrl+G или щелчком по кнопки с изображением головы человека (необходимо для перехода к работе с другой группой, для выполнения операций над группами). Также можно добавить группу через пункт меню "Группа\Создать".

Вызов окна "Серверное окно процесса тестирования" (рисунок 22) осуществляется через меню "Сервер\Серверное окно", сочетанием клавиш Ctrl+W или щелчком по кнопке с буквой "S". Центральную часть окна занимает список тестирующихся пользователей, в нем отображаются записи всех пользователей, вошедших в систему тестирования.

Рисунок 22 - Серверное окно

В верхней части окна располагается панель. На ней располагается кнопка "Запуск/Стоп", запускающая или останавливающая сервер системы. Справа от нее находится кнопка, которая дублирует функции предыдущей, но еще отображает состояние сервера: красный кружок - сервер запущен, синий - сервер выключен. Еще правее располагается метка, информирующая об IP адресе сервера. В нижней части отображается лог серверной части приложения. Также можно запускать и останавливать сервер из главного окна приложения нажатием клавиши F9, нажатием кнопки с изображением в виде кружка или через меню "Сервер\ Запуск\Стоп". Окно, изображенное на рисунке 22, может в любой момент быть закрыто, не нарушая процесса тестирования. При попытке остановить сервер в процессе тестирования, выдается подтверждение на остановку. В случае соглашения список тестирующихся пользователей очищается.

4.4 Интерфейс и функциональность программы iConstructor

Данная программа предназначена для конструирования тестов. Каждый тест представляет собой совокупность файлов, главным из них является файл с расширением *. tst, он содержит ссылки на файлы с текстами вопросов, файлы вариантов ответа и дополнительных картинок. Также содержит такие параметры, как название теста, числа выбираемых программой iTest вопросов всех трех типов сложности из общего числа вопросов каждого типа.

Каждый вопрос теста представляет собой совокупность параметров вопроса и файлы, содержащие отображаемую информацию (файлы текста или картинок). Параметрами вопроса являются:

- Стиль расположения вариантов ответов (в одну или в две колонки).

- Форма представления вариантов ответов (картинки или текст).

- Тип вопроса A, B или C. A - тип легких вопросов (меньше баллов) C - тип трудных вопросов (больше баллов).

- Наличие дополнительной картинки.

- Вариант правильного ответа.

Конструктор создает набор (список) вопросов, который сохраняется в файл теста. Порядок вопросов в списке не играет роли для программы iTest, т.к. она, при составлении списка вопросов для сеанса тестирования, случайно выбирает вопросы каждого типа из набора вопросов тестового файла. Порядок же вопросов в списке конструктора нужен только при конструировании. Каждый вопрос списка имеет свой номер.

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

Для работы со списком вопросов реализованы следующие возможности:

- Переход к первому, предыдущему, следующему и последнему вопросу списка.

- Переход к вопросу с конкретным номером.

- Удаление текущего вопроса.

- Вставка пустого вопроса в текущую позицию списка.

- Добавление пустого вопроса в конец списка вопросов.

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

Сразу после запуска программы появляется ее главное окно, изображенное на рисунке 23.

Рисунок 23 - Главное окно программы iConstructor

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

Основную часть главного окна конструктора занимают компоненты, отображающие визуальные данные каждого вопроса. Поле ввода формулировки вопроса располагает сразу под панелями инструментов, под ним располагаются поля ввода текста вариантов ответа (если форма ответов текст, иначе - компоненты для загрузки и отображения картинок), справа от поля ввода формулировки может располагаться дополнительная картинка.

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

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

Под строкой меню располагается стандартная панель инструментов (рисунок 24).

Рисунок 24 - Стандартная панель инструментов

Перечислим назначение кнопок слева направо:

1 Кнопка создания нового пустого документа. Если текущий документ не был сохранен, то программа запрашивает пользователя о необходимости его сохранить (рисунок 25). Нажатием по кнопке "Yes" вызываем сохранения файла, нажатием по кнопке "Cancel" отменяем действие и продолжаем работать с текущим документом.

2 Кнопка сохранения документа. Если текущий документ не был ни разу сохранен, то открывается диалоговое окно сохранения файла (рисунок 26), пользователь должен указать отдельную папку для документа, предварительно создав ее, и имя файла теста. Также нельзя сохранять документ во временную папку Temp.

3 Кнопка открытия документа. Если текущий документ не был сохранен, то программа запрашивает пользователя о необходимости его сохранить (рисунок 25).

4 Кнопка вырезания текста из текущего текстового поля ввода текстовых данных вопроса.

5 Кнопка копирования текста из текущего текстового поля ввода текстовых данных вопроса.

6 Кнопка вставки текста в текущее текстовое поле ввода текстовых данных вопроса.

7 Кнопка отмены последнего действия в текущем поле ввода текстовых данных вопроса.

8 Раскрывающийся список выбора имени шрифта для текущего поля ввода текстовых данных вопроса.

9 Раскрывающийся список выбора размера шрифта для текущего поля ввода текстовых данных вопроса.

10 Кнопка назначения жирного начертания текущему полю ввода текстовых данных вопроса.

11 Кнопка назначения курсивного начертания текущему полю ввода текстовых данных вопроса.

12 Кнопка назначения подчеркнутого начертания текущему полю ввода текстовых данных вопроса.

13 Кнопка применения выравнивания по левому краю к текущему полю ввода текстовых данных вопроса.

14 Кнопка применения выравнивания по центру к текущему полю ввода текстовых данных вопроса.

15 Кнопка применения выравнивания по правому краю к текущему полю ввода текстовых данных вопроса.

16 Кнопка изменения цвета текста в текущем поле ввода текстовых данных вопроса.

Рисунок 25 - Предупреждение о необходимости сохранения документа

Рисунок 26 - Сохранение документа

Под стандартной панелью инструментов располагается дополнительная панель, изображенная на рисунке 27.

Рисунок 27 - Дополнительная панель инструментов

Перечислим назначение элементов управления слева направо:

1 Переключение между представлением вариантов ответа в одну/две колонки.

2 Поставленный флажок говорит о том, что вариантами ответов являются картинки, отсутствие флажка - варианты ответов - текст.

3 Раскрывающийся список выбора типа вопроса (A, B или C). Если пусто, то тип вопроса не был выбран.

4 Кнопка загрузки текста формулировки вопроса. Нажатие этой кнопки вызывает диалоговое окно открытия текстового файла (рисунок 28). Нужно указать файл, из которого должна быть загружена информация.

5 Кнопки загрузки вариантов ответов из файлов (текстовых или графических). При нажатии открывается диалоговое окно открытия текстового файла или файла картинки, в зависимости от состояния флажка 2.

6 Кнопка загрузки дополнительной картинки. При нажатии открывается диалоговое окно открытия файла картинки. Если же дополнительная картинка уже была загружена, то повторное нажатие приводим к тому, что она исчезает из текущего вопроса.

7 Кнопка вызова диалогового окна "Опции теста" (рисунок 29). В поле "Название теста" вводят название теста. В поля "Тип A", "Тип B" и "Тип C", вводят количества вопросов трех данных типов, которые будет выбирать программа iTest из общего числа вопросов каждого из данных типов. Здесь же можно увидеть общее число вопросов в тесте. Нажатием кнопки "ОК" мы применяем изменения.

8 Кнопка вызова окна отчета о готовности теста. При конструировании теста могут возникать несоответствия, которые не позволяют использовать его программой iTest. Например, в опциях теста указано число вопросов типа A, равное 10, а создано всего 3 вопроса типа A, или не указан вариант правильного ответа в некотором задании. При нажатии этой кнопки открывается диалоговое окно отчета готовности, изображенное на рисунке 30. В многострочном поле записаны все несоответствия в тесте, которые допустимы на этапе конструирования теста, но не на этапе использования. Если же написано "Тест готов!", то это означает, что несоответствий нет. Для того, чтобы перейти от этапа конструирования к этапу использования теста, пользователю нужно устранить все несоответствия. Нажатие кнопки "ОК" закрывает данное окно.

9 Кнопка перехода к первому вопросу списка вопросов конструктора.

10 Кнопка перехода к предыдущему вопросу списка вопросов конструктора.

11 Текстовое поле ввода номера конкретного вопроса, к которому нужно осуществить переход. При необходимости перехода к вопросу с конкретным номером в это поле вводится номер вопроса и нажимается кнопка Enter. В случае недопустимого ввода отображается прежний вопрос.

12 Кнопка перехода к следующему вопросу списка вопросов конструктора. Если следующего вопроса в списке нет, то автоматически создается новый пустой вопрос в конце списка и осуществляется переход на него.

13 Кнопка перехода к последнему вопросу списка вопросов конструктора.

14 Кнопка удаления текущего (отображаемого) вопроса из списка вопросов конструктора. При этом запрашивается подтверждение на удаление.

15 Кнопка вставки пустого вопроса на место текущего, бывший текущий вопрос будет идти сразу же после вставленного.

16 Кнопка добавления пустого вопроса в конец списка вопросов теста. Сразу же происходит отображение этого вопроса.

Общие принципы работы с конструктором:

1 Ввод и загрузка данных вопросов, установка параметров вопросов.

2 Установка опций теста: названия, количества генерируемых iTest вопросов каждого типа.

3 Просмотр отчета готовности теста к использованию программой iTest. В случае несоответствий, необходимо их устранить.

Заключение

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

Клиент-серверная сетевая архитектура приложения позволяет авторизовать студентов в iTest, хранить журналы с оценками в iJournal и создавать новые тесты в iConstructor.

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

Список использованных источников

1. Материалы рассылки сайта http://usatic. narod.ru/.

2. Материалы сайта http://internetest. narod.ru/.

3. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. - М.: Academa, 1999. - 816 с.

4. Гофман В.Э., Хомоненко А.Д. Delphi 5 в подлиннике. - СПб.: БХВ, 1999. - 800 с.

5. Архангельский А.Я. Delphi 6. Справочное пособие. - М.: БИНОМ, 2001. - 1023 с.

6. Delphi. Советы программистов. /Под ред.В.А. Озерова. - СПб.: Символ, 2002. - 912 с.

Приложения

Приложение А

Описание использованных форматов файлов

Для функционирования системы тестирования были реализованы форматы файлов. tst и. jnl.

Файлы формата. tst используются для описания набора вопросов, используемых для генерации теста. В нем содержатся параметры генерации списка вопросов, а также параметры каждого вопроса в отдельности. Тексты самих вопросов в форме картинок и текстовых файлов хранятся отдельно в папке вместе с тестовым файлом. Описание формата интуитивно понятно из таблиц 27 и 28.

Таблица 27 - Формат тестового файла. tst

Номер строки

Запись

1

Идентификатор файла теста (строка ITEST1.0)

2

Имя теста

3

Число вопросов типа A

4

Число вопросов типа B

5

Число вопросов типа C

6

Число вопросов в тестовом наборе

7…

Далее идут строки с описанием каждого вопроса теста, каждая запись имеет структуру, описанную в таблице 28

Таблица 28 - Структура записи каждого вопроса в файле формата. tst

Смещение строки

от начала записи о вопросе

Запись

0

Определение содержание дополнительной картинки (0 - есть, 1 - нет)

1

Способ представления вариантов ответа (0 - текст, 1 - картинки)

2

Стиль ответов (0 - 4 ответа в 2 колонки; 1 - 4 в 1 колонку)

3

Имя файла, в котором содержится сам вопрос

4-7

Имена 4-х файлов, в которых содержатся ответы на вопрос

8

Номер правильного варианта ответа (1-4)

9

Балл за правильный ответ на поставленный вопрос (1,2 или 3, соответственно типу сложности).

10

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

Файл формата. jnl используется для хранения информации журнала программы. В проекте предусмотрена работа только с одним файлом этого формата - iTest. jnl, содержащим данные журнала и хранящимся в одном каталоге вместе с программами iTest. exe и iJournal. exe. Описание также интуитивно понятно из таблиц 29 и 30.

Таблица 29 - Формат файла журнала. jnl

Номер строки

Запись

1

Идентификатор файла журнала (строка ITJ1.0)

2

Число групп (N)

3… 3+N-1

В каждой строке имя группы

3+N

Число тестов, поддерживаемых журналом (K)

3+N…3+N+K-1

В каждой строке имя теста

3+N+K

Число пользователей, зарегистрированных в журнале

3+N+K+1

Запись о каждом пользователе

Таблица 30 - Структура каждой записи о пользователе в файле формата. jnl

Смещение строки

от начала записи о пользователе

Поле записи

0

Фамилия

1

Имя

2

Код группы

3

Число пройденных тестов (P)

4…4+P-1

Запись о результате каждого тестирования в виде двух строк (первая - код теста, вторая - оценка)

Приложение Б

Текст программ

uiTestMain. pas

unit uiTestMain;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, ComCtrls,Core, NetCore, Buttons, Psock, NMMSG, AppEvnts,

ScktComp;

type

TfrmMain = class (TForm)

// Вспомогательные панели для отображения, группировки компонентов

pnlQuestion: TPanel;

pnlResult: TPanel;

pnlQueData: TPanel;

pnlAnswers: TPanel;

pnlMiddle: TPanel;

pnlBottom: TPanel;

pnlButtons: TPanel;

Label2: TLabel;

Label1: TLabel;

{Компонент, применяемый для отображения текста вопроса}

reMain: TRichEdit;

{Компонент, используемый для хранения и вывода

дополнительной картинки к текущему вопросу}

imgExt: TImage;

{Компоненты, которые используются для отображения

вариантов ответов на вопросы, в случае текстовых}

reAnsw1: TRichEdit;

reAnsw2: TRichEdit;

reAnsw4: TRichEdit;

reAnsw3: TRichEdit;

{Компоненты, которые используются для отображения

вариантов ответов на вопросы, в случае картинок}

imgAnsw1: TImage;

imgAnsw3: TImage;

imgAnsw2: TImage;

imgAnsw4: TImage;

{Компоненты, отображающие варианты ответов}

pnlAnsw1: TPanel;

pnlAnsw2: TPanel;

pnlAnsw4: TPanel;

pnlAnsw3: TPanel;

{Метка, отображающая оценку пользователя}

lbMark: TLabel;

{Кнопка выхода из тестирования}

btnExit: TButton;

{Кнопка для перехода к выбору следующего теста}

btnNewTest: TButton;

{Кнопка навигации - переход к предыдущему вопросу}

btnBack: TBitBtn;

{Кнопка навигации - переход к следующему вопросу}

btnNext: TBitBtn;

// Таймер, используется для того, чтобы вовремя посылать запрос

// об обновлении времени существования в списке тестирующихся

// пользователей сервера.

Timer: TTimer;

// Сокет клиента.

CSocket: TClientSocket;

// TMemo для ведения лога.

memLog: TMemo;

{Обработчик события деструкции формы}

procedure FormDestroy (Sender: TObject);

{Обработчик события создания формы}

procedure FormCreate (Sender: TObject);

{Обработчик события выделения текста в текстовых полях.

Используется для того, чтобы не позволять пользователю

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.