Разработка электронной системы обучения и тестирования для новых и действующих сотрудников строительной организации ТД 'ЦентрСМ'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    553,18 Кб
  • Опубликовано:
    2017-01-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка электронной системы обучения и тестирования для новых и действующих сотрудников строительной организации ТД 'ЦентрСМ'

Содержание

Введение

. Анализ предметной области

.1 Описание предметной области

.2 Обоснование необходимости разработки нового программного обеспечения

. Постановка задачи

.1 Назначение разработки

.2 Требования к системе

.2.1 Требования к функциональным характеристикам

.2.2 Требования к надежности

.2.3 Требования к целостности данных

.2.4 Требования к информационной и программной совместимости

.2.5 Требования к аппаратно-программному комплексу

. Проектирование системы обучения и тестирования

.1 Подсистемы разрабатываемого приложения

.1.1 Подсистема ведения списка пользователей

.1.2 Подсистема редактирования лекций и учебных материалов

.1.3 Подсистема тестирования по выбранному материалу

.1.4 Подсистема получения статистики

.2 Взаимодействие подсистем. Входные и выходные данные

.3 Структура данных

. Описание разработки системы обучения и тестирования

.1 Обоснование выбора средств разработки

.2 Общие сведения о программной реализации системы

.3 Структура классов

.4 Визуальное представление данных

.5 Вызов и загрузка

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

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

.1 Общие положения

.2 Руководство автора материалов

.2.1 Ведение списка дисциплина-тема-лекция/тест

.2.2 Конструктор тестов

.2.3 Прикрепление учебного материала

.3 Руководство по прохождения обучения и тестирования

.3.1 Прохождение обучения

.3.2 Прохождение тестирования

.4 Руководство администратора

Заключение

Список цитируемой литературы

Введение


Темой дипломной работы является проектирование, разработка и внедрение электронной системы обучения и тестирования для новых и действующих сотрудников строительной организации ТД "ЦентрСМ". Электронная система обучения и тестирования позволит проходить курсы повышения квалификации сотрудников через изучение материала, а прохождение тестов позволит объективно оценить знания и навыки сотрудников. Допуск новых менеджеров-консультантов к работе будет происходить через разрабатываемую системы, что повысит объективность контроля знаний. Предполагается проводить аттестацию действующих и новых сотрудников на начальную и повышенную категорию. Контрольное тестирование и устный опрос являются одними из наиболее широко используемых и хорошо разработанных средств проверки знаний сотрудников.

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

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

Одним из наиболее актуальных направлений развития компьютерных технологий в образовании является разработка специализированных систем проверки знаний. Их активное использование помогает поддерживать нужный образовательный уровень по знанию своих обязанностей сотрудниками ТД "ЦентрСМ".

1.      Анализ предметной области

 

.1 Описание предметной области


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

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

Объектом изучения в дипломном проекте является компания ООО «ЦентрСМ» занимающаяся торговлей строительными и отделочными материалами и выполнением строительных и монтажных работ.

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

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

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

Опишем предметную область задачи дипломного проектирования.

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

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

-       «Дисциплина» - данный объект отражает данные обо всех имеющихся дисциплинах или учебных предметах, по которым может проводиться тестирование;

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

-       «Вопрос» - это объект, несущий в себе данные вопросительного характера, предполагающие ответ на эти данные и фиксирующий его. Этот объект является первичным «кирпичиком» выявления знаний тестируемого;

-       «Ответ» - это объект, несущий в себе утвердительные данные различного характера. Это утвердительное предложение, представляющее из себя некоторое утверждение;

-       «Сложность» - объект, характеризующий сложность теста и вопросов в нем;

-       «Тест» - это объект выявления знаний тестируемого, он представляет из себя набор данных, позволяющих провести процесс тестирования при помощи вопросов и получения на них ответов;

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

-       «Пользователь» - это объект, характеризующий человека, тем или иным образом работающего с системой тестирования: составляющего тесты, проходящего тестирование или изменяющего список пользователей.

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

-       «Учебный материал» - это объект, представляющий из себя ссылку на файлы с учебными материалами и описаниями.

Все объекты предметной области связаны между собой. Связь осуществляется путем определения отношения нескольких сущностей одного объекта к одной сущности другого объекта. Так, например, объект «Ответ» связан по такой схеме с объектом «Вопрос», другими словами несколько ответов принадлежат одному вопросу или один вопрос содержит в себе несколько ответов. Также один тест содержит в себе несколько вопросов.

Характеристики объекта определятся его атрибутами. Каждый объект имеет свой уникальный набор атрибутов.

Объект «Дисциплина» характеризуется следующими атрибутами:

-       идентификатор;

-       наименование дисциплины.

Объект «Тема» характеризуется следующими атрибутами:

-       идентификатор;

-       наименование темы;

Объект «Ответ» имеет следующий набор атрибутов:

-       идентификатор;

-       идентификатор вопроса;

-       наименование (текст) ответа;

-       вес ответа.

Объект «Вопрос» характеризуется следующим набором атрибутов:

-       идентификатор;

-       идентификатор теста;

-       наименование (текст) вопроса;

-       картинка или графическое представление вопроса.

Объект «Сложность» имеет следующий набор атрибутов:

-       идентификатор;

-       наименование сложности;

-       коэффициент сложности.

Объект «Тест» имеет следующий набор атрибутов:

-       идентификатор;

-       наименование теста;

-       лимит времени на прохождение теста;

-       параметры теста, влияющие на его прохождение и интерпретацию.

Объект «Результат теста» характеризуется следующим набором атрибутов:

-       идентификатор;

-       идентификатор теста;

-       идентификатор пользователя, проходившего тест;

-       количество вопросов;

-       количество данных ответов;

-       числовой результат теста;

-       дата прохождения теста;

-       время начала прохождения теста;

-       время окончания прохождения теста.

Объект «Пользователь» характеризуется следующим набором атрибутов:

-       идентификатор;

-       логин;

-       пароль;

-       фамилия, имя отчество;

-       категория пользователя.

Объект «Интерпретация» характеризуется следующим набором атрибутов:

-       идентификатор;

-       идентификатор теста;

-       нижняя граница диапазона количественного результата теста;

-       верхняя граница диапазона количественного результата теста;

-       тестовое представление интерпретации теста, соответствующее диапазону количественного результата.

Объект «Учебный материал» характеризуется следующим набором атрибутов:

-       идентификатор;

-       наименование;

-       подробное описание;

-       список тегов;

-       тип материала

-       путь к файлу.

Как видно из описания, объект «Ответ» связан с объектом «Вопрос» по идентификатору вопроса, объект «Вопрос» с объектом «Тест» по идентификатору теста, объект «Тест» с объектом «Сложность» по идентификатору сложности, объект «Результат теста» с объектом «Тест» по идентификатору теста, а с объектом «Пользователь» по идентификатору пользователя, объект тема с объектом дисциплина по идентификатору дисциплины, объект «Тест» с объектом «Тема» по идентификатору темы.

.2 Обоснование необходимости разработки нового программного обеспечения

В данном дипломном проекте решается задача проектирования, разработки и внедрения ИС обучения и последующего тестирования знаний сотрудников с целью выявления уровня их подготовки. Актуальность задачи обусловлена тем, что объем данных этой процедуры таков, что ее нормальная работа без использования средств автоматизации и программного обеспечения невозможно. Это обусловлено, прежде всего, тем, что объем операций и данных для подготовки обучения и тестирования настолько велик, что их выполнение в традиционном ручном режиме на бумажных носителях объективно невозможно. Второй важной причиной разработки ИС является увеличение надежности и целостности хранения данных. Немало важным аспектом является и то, что удобство работы с ИС обучения и тестирования знаний в разы больше чем при работе без такой системы. Обеспечение многопользовательского режима работы системы также является важным и неоспоримым преимуществом использования ИС.

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

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

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

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

-   Повышение удобства поиска и отбора;

-   Повышение скорости поиска и отбора информации, а также оформления операций тестирования;

-   Обеспечение безопасности хранения информации;

-   Обеспечение многопользовательской работы.

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

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

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

2.      Постановка задачи

 

.1 Назначение разработки


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

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

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

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

-   Вести список дисциплин и тем и тестов;

-   Обеспечить удобную навигацию дисциплина-тема-тест;

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

-   Обеспечить поиск учебных материалов по тегам;

-   Предоставлять возможность редактирования теста, т.е. давать возможность вводить параметры теста, влияющие на поведение теста, вопросы, варианты ответов, правильный (правильные) ответы и их веса;

-   Задавать интерпретацию результатов теста;

-   Проводить тестирование пользователя по одному из выбранных тестов с получением результатов и интерпретации;

-   Сохранять результаты теста в базе данных для последующего анализа и составления статистики;

-   Позволять получать статистику по различным параметрам и их совокупности;

-   Выдавать печатные формы результатов прохождения тестов и статистики;

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

 


2.2 Требования к системе

 

.2.1 Требования к функциональным характеристикам

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

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

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

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

.2.2 Требования к надежности

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

электронный обучение тестирование сотрудник

2.2.3 Требования к целостности данных

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

.2.4 Требования к информационной и программной совместимости

Программа должна работать в операционной системе Windows 2000, XP, Seven. Программа должна удовлетворять требованиям интерфейса для этих операционных систем.

Программа использует для работы базу данных формата Paradox и систему работы с базами данных BDE фирмы Borland версии не ниже 5.0. Данная система должна быть установлена на компьютере, на котором функционирует приложение. Данная система поставляется и устанавливается на компьютер совместно с системой разработки С++ Builder/Delphi. Также в пакет поставки системы разработки входит утилита управления псевдонимами баз данных BDEAdministrator и программы работы с базами данных Database Desctop и SQLExplorer.

.2.5 Требования к аппаратно-программному комплексу

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

Минимальные характеристики компьютера, на котором может функционировать программа следующие:

-   Процессор - Intel I3;

-   Оперативная память: 1024 Mb;

-   SVGA 256 Mb;

-   24-x CD-ROM;

-   Жесткий диск объемом минимум 320 Гб.

-   Операционная система Windows 2000, XP, Seven;

-   Система работы с базами данных BDE 5.0 фирмы Borland.

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

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

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

3. Проектирование системы обучения и тестирования

.1 Подсистемы разрабатываемого приложения

В разрабатываемой системе можно выделить следующие основные подсистемы:

-   Ведение списка пользователей;

-   Редактирование лекций и учебных материалов;

-   Прохождение тестирования по выбранному материалу;

-   Получение статистики.

Рассмотрим подробнее каждую подсистему.

.1.1 Подсистема ведения списка пользователей

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

В процессе работы приложения пользователи должны делиться на три категории:

-   Администраторы;

-   Авторы материала;

-   Сотрудники.

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

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

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

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

.1.2 Подсистема редактирования лекций и учебных материалов

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

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

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

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

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

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

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

Редактирование лекции подразумевает редактирование ее наименования и задание для нее списка учебных материалов.

Редактирование тестов подразумевает редактирование данных теста и редактирование структуры теста.

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

Наименование теста - это строка символов, представляющая тест в списке тестов.

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

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

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

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

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

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

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

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

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

Если тесту установлен признак «тест-опрос», то в этом случае его результаты рассчитываются не так, как для обычных тестов на знания.

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

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

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

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

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

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

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

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

3.1.3 Подсистема тестирования по выбранному материалу

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

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

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

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

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

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

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

(1)

где Vi - вес ответа, данного пользователем на вопрос номер i, - количество вопросов теста, - балл теста.

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

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

-   Параметры теста: название дисциплины, тема, название теста, коэффициент сложности теста, лимит времени;

-   Пользователь проходивший тест;

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

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

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

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

В случае, если тест является опросом (в параметрах теста установлен признак «тест-опрос») изменяется подсчет и интерпретация результатов теста. Результатом теста в этом случае является не количественный бал теста и сравнение его с максимально возможным баллом, а количество ответов попадающих в тот или ной диапазон интерпретации. В этом случае тесту задается несколько диапазонов интерпретации. Причем диапазоны эти задаются целыми числами. Веса ответов тоже задаются целыми числами. Совпадение веса ответа с диапазоном интерпретации означает принадлежность этого ответа к этому диапазону интерпретации. По результатам прохождения теста подсчитывается количество и процент попаданий данных пользователем ответов в каждый диапазон интерпретации.

.1.4 Подсистема получения статистики

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

Средний результат выборки рассчитывается по формуле:

 (2)

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

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

 (3)

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

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

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

.2 Взаимодействие подсистем. Входные и выходные данные

Автоматизированная система обучения и тестирования создается не на пустом месте. В основу методики ее работы положены системы обучения и тестирования, многие годы, применявшиеся на практике, но не выполненные в виде компьютерных программ. Учебные материалы для лекций также давно подготовлены авторами. Поэтому входными данными для системы будут являться те же данные, которые использовались при разработке неавтоматизированных систем обучения и тестирования. Каждая из подсистем разрабатываемой системы имеет свой набор входных и выходных данных. Причем выходные данные одной подсистемы могут рассматриваться и как результат работы системы в целом, но одновременно могут рассматриваться и как входные данные для другой подсистемы. Так, например, результат прохождения теста является выходным результатом подсистемы тестирования и с точки зрения пользователя, проходившего тест является, результатом работы системы, но с другой стороны этот результат выступает в качестве входных данных для подсистемы составления статистики.

Опишем входные и выходные данные каждой подсистемы.

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

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

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

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

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

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

Схема взаимодействия подсистем, их входных и выходных данных представлена на рисунке 3.1.

Рисунок 3.1. Укрупненная схема программы.

.3 Структура данных

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

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

Таблица 1. Структура базы данных

Наименование поля

Тип

Разрешить пустое

Ключ

Описание

1. users - список пользователей (справочник администраторов, проверяющих и тестируемых)

ID

Integer


PK

Идентификатор записи

NAME

String(30)



Логин пользователя

FIO

String(30)

+


ФИО пользователя

PASSW

String(10)

+


Пароль пользователя

Admin

Short Integer



Категория пользователя

2. disc -список дисциплин

ID

Integer


PK

Идентификатор записи

NAME

String(30)

+


Наименование дисциплины

3. tema - список тем тестов

ID

Integer


PK

Идентификатор записи

ID_DISC

Integer


FK

Идентификатор дисциплины

NAME

String(30)

+


Наименование темы

4. hard - список сложностей тестов

ID

Integer


PK

Идентификатор записи

NAME

String(10)

+


Наименование сложности

K

Number



Коэффициент сложности

5. tests - список лекций и тестов

ID

Integer


PK

Идентификатор записи

ID_TESTS

Integer


FK

Идентификатор теста

NAME

String(254)

+


Текст вопроса

NAVIGATION

Logical

+


Признак разрешения навигации

RANDOM

Logical

+


Признак случайной выдачи вопросов

SHOWRESULT

Logical

+


Признак отображения результата теста по окончании его прохождения

ONLYANSW

+


Признак учета в подсчете результатов теста только тех вопросов, на которые даны ответы

ALWAYSJ

Logical

+


Признак обязательной записи результатов теста в журнал

ALLRIGHT

Logical

+


Признак правильности всех ответов

OPROS

Logical

+


Признак теста-опроса

6. quest - список вопросов

ID

Integer


PK

Идентификатор записи

ID_TESTS

Integer


FK

Идентификатор теста

PICT

Blob

+


Картинка вопроса

7. answer - список ответов

ID

Integer


PK

Идентификатор записи

ID_QUEST

Integer


FK

Идентификатор вопроса

NAME

String(254)

+


Текст ответа

VES

Number

+


Вес ответа

1. jornal - журнал результатов прохождения тестов

ID

Integer


PK

Идентификатор записи

IDUSER

Integer


FK

Идентификатор пользователя

IDTEST

Integer


FK

Идентификатор теста

COUNTQ

Integer

+


Количество вопросов в тесте

TEND

Time

+


Время окончания прохождения теста

2. inter - интерпретация результатов прохождения тестов

ID

Integer


PK

Идентификатор записи

IDUSER

Integer


FK

Идентификатор пользователя

IDTEST

Integer


FK

Идентификатор теста

MINRES

Double



Нижняя граница диапазона результатов

MAXRES

Double



Верхняя граница диапазона результатов

INTER

Memo



Текстовая интерпретация результата теста, попавшего в диапазон

10. Materials - список учебных материалов

ID

Integer


PK

Идентификатор записи

Name

String (254)



Наименование материала

Comment

String (254)

+


Описание материала

TypeMaterial

String (25)

+


Тип учебного материала

FilePath

String (254)



Путь к файлу с содержимым учебного материала

TEG

String (254)

+


Список тэгов учебного материала

11. LinkMaterial - связь учебных материалов с лекциями

ID

Integer


PK

Идентификатор записи

ID_Test

Integer


FK

Идентификатор лекции

ID_Material

Integer


FK

Идентификатор материала


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

Рисунок 3.2. Связи между таблицами базы данных.

Доступ к таблицам базы данных производится из программы при помощи системы работы с базами данных фирмы Borland BDE. Непосредственное обращение производится при помощи псевдонима базы данных (алиаса) с именем TEST. Данный алиас должен быть создан перед первым запуском программы утилитой BDE Administrator и иметь следующие характеристики:

Type - STANDART;DRIVER - PARADOX; BCD - FALSE;

PATH - полный путь к каталогу базы данных. Данный путь устанавливается пользователем.

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

4. Описание разработки системы обучения и тестирования

.1 Обоснование выбора средств разработки

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

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

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

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

Язык программирования C++ позволяет объявлять классы - структуры данных, представляющие понятие в программе. Класс определяет, каким образом ведут себя объекты этого типа, как они создаются и как они уничтожаются. При написании программы с помощью классов программа становятся более понятной и четкой, а значит и более корректной, а язык программирования C++ позволяет и создавать классы и организовывать между ними сложные взаимодействия.

В качестве системы программирования выбрана визуальная система Borland С++ Builder. Предоставляемые ею возможности, интерфейс, встроенные средства отладки, вспомогательные программы и многое другое обусловили этот выбор. Она позволяет быстро создать графический интерфейс пользователя, удовлетворяющий требованиям интерфейса пользователя для приложений Windows. Все это существенно сокращает время разработки, сводит к минимуму необходимую отладку и увеличивает надежность приложения.

Для C++ Builder существует множество разработанных средств и библиотек, позволяющих решать широкий набор задач, кроме того, эта система обладает хорошими показателями по скорости и объему рабочей программы, и позволяет программисту регулировать эти показатели, выбирая тот или иной тип оптимизации.

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

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

C++ Builder относится к средствам быстрой разработки приложений основанной на усовершенствованной RAD-технологии, что позволило ему стать одним из лучших современных компиляторов. По сравнению с другими реализациями языка C++ разработка приложений с помощью C++ Builder выполняется быстрее, причем приложения проще переносятся на другие платформы.

C++ Builder использует библиотеку визуальных компонентов VCL (Visual Component Library - VCL), которая состоит из готовых к употреблению визуальных и не визуальных объектов и оболочек. Она позволяет с минимальными затратами создавать приложения, в то же время предоставляя определенную степень независимости от библиотеки VCL.

Язык программирования C++ и его реализация в виде среды разработки C++ Builder имеют широкие возможности по повторному использованию кода. Именно этот подход мы и собираемся использовать в данном дипломном проекте.

Работа с базами данных в программе построена при помощи системы работы с базами данных фирмы Borland BDE. Эта система позволяет обращаться к данным независимо от их физической организации при помощи псевдонимов баз данных. Непосредственная работа с таблицами базы данных в программе ведется при помощи универсального языка запросов SQL. Использование этого языка, совместно с системой алиасов BDE, позволяет разработчику полностью абстрагироваться от физического расположения базы данных и от типа базы данных (Paradox, MS SQL Server, MySQL, …). Универсальность этого языка, независимость от типа базы данных и ее расположения, позволяют использовать для разрабатываемой системы любую базу данных, в том числе и серверную без каких-либо изменений исходного кода приложения.

Для создания структуры таблиц базы данных была использована программа Database Desktop, входящая в комплект поставки C++ Builder. Эта программа позволяет в удобной форме создавать и редактировать как структуру таблиц, так и данные.

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

Для бесперебойной работы операционной системы могут понадобиться дополнительные сервисные пакеты программного обеспечения, такие как The Norton Utilities - диагностика компьютера ипакет антивирусных программ AVP (или любой другой).

4.2 Общие сведения о программной реализации системы

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

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

В разрабатываемом приложении можно выделить два типа созданных классов: классы, моделирующие поведение объектов реального мира, предметной области, разработанные автором приложения и классы-наследники от класса TForm, предоставляющие из себя экранные формы разрабатываемого приложения. Кроме наследников от TForm используется еще множество классов визуального представления данных, таких как радио кнопки, поля ввода и т.д.

.3 Структура классов

Для реализации задачи разработки приложения обучения и тестирования знаний студентов была разработана структура классов, аккумулирующая в себе все необходимые свойства и функции для выполнения задачи. Разработанная структура классов соответствует их аналогам в предметной области: лекции-тесту, вопросу и ответу. Объявление и реализация классов выполнены в модуле Ctest.сpp.

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

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

class TQuestion

{

public:

//характеристики вопросаID; // ID вопроса из БДName; // имя вопроса* Pic; // кртинка вопросаTip;// тип ответов на вопросы 0-неизвестно 1-текст 2- радиокнопка 3 - флажок

// ответы* Answers; // список ответовCountA; // количество ответов вопросаResult; // результат вопросаUserAnswer; // данный пользователем ответ в поле ввода

__fastcall TQuestion(int, AnsiString, TPicture*, int);

__fastcall ~TQuestion();__fastcall LoadAnswers(TQuery*); // загрузить ответы из БД* __fastcall GetAnswer(int); // вернуть ответ с порядковым номером* __fastcall GetCorrectAnswer(); // вернуть правильный ответ__fastcall HasAnswer(); // был дан ответ__fastcall Type(); // тип вопроса: 1 - строка, 2 - радиокнопки, 3 - флажки

}; // TQuestion

Отдельно остановимся на списке ответов. Список ответов в классе TQuestion представлен свойством Answers, имеющем тип динамический список (класс TList). При заполнении этого списка в него помещаются динамически созданные объекты класса TAnswer. В дальнейшем обращение к свойству Answers происходит как к списку объектов класса TAnswer, используя его свойства.

Для реализации работы с объектом вопроса в классе TQuestion предусмотрены методы:

l   конструктор TQuestion - предназначен для выделения памяти под динамически создаваемые объекты и первоначальное заполнение параметров объекта класса;

l   деструктор ~TQuestion - предназначен для освобождения памяти из под динамически созданных объектов, прежде всего из под списка ответов;

l   LoadAnswers - предназначен для выполнения процедуры загрузки списка ответов и их параметров из базы данных;

l   GetAnswer - предназначен для получения доступа к объекту типа TAnswer по его порядковому номеру в списке;

l   GetCorrectAnswer - предназначен для получения доступа к объекту типа TAnswer с максимальным весом.

Класс TTest представляет из себя совокупность свойств и методов для программной реализации объекта предметной области «Тест». Тест в предметной области характеризуется такими параметрами как идентификатор в базе данных, наименование теста, сложность теста, ограничение по времени и параметры теста. В программной реализации к представлению данного объекта добавлены такие свойства как полное наименование теста, дата и время начала прохождения теста (свойство BeginDate), дата и время окончания прохождения теста (свойство EndDate), порядковый номер текущего вопроса в тесте (свойство CurrentQ), количество вопросов, на которые пользователь дал ответ (свойство CountQA), количетсво вопросов, на которые пользователь дал правильный ответ, т.е. ответ с весом, отличным от нуля (свойство CorrectA), вычисленный результат прохождения теста (свойство Res). Отдельно остановимся на свойстве Questions, представляющий из себя динамический список типа TList. При заполнении значений этого списка в него помещаются динамически созданные объекты класса TQuestion. В дальнейшем при обращении к объектам динамического списка Questions используются свойства и методы класса TQuestion. Таким образом, объекты динамического списка представляют из себя вопросы теста, а сам список - список вопросов теста.

Для реализации работы с объектом предметной области «Тест» в программной реализации класса TTest предусмотрены следующие методы:

l   конструктор TTest - предназначен для выделения памяти для динамически создаваемых объектов, прежде всего для списка вопросов, а также для первоначального заполнения значений свойств объекта;

l   деструктор ~TTest - предназначен для освобождения памяти из под динамически создаваемых объектов;

l   LoadFromBD - предназначен для загрузки из базы данных свойств теста;

l   LoadQuests - предназначен для загрузки из базы данных списка вопросов;

l   GetQuest - предназначен для получения из списка вопросов объекта класса TQuestion по его порядковому номеру.

Отметим отдельно, что класс TTest инкапсулирует в себе все необходимые свойства и методы для загрузки теста вместе со списком вопросов и ответов из базы данных. Таким образом, объекту класса TTest не требуется визуального представления ни для своего отображения, ни для обращения к базе данных. Для обращения к базе данных предназначены свойства раздела private QueryTmp и QueryTmp1 типа TQuery из библиотеки VCL, которые и реализуют обращение к базе данных при помощи SQL-запросов.

Ниже приведен фрагмент кода, содержащий в себе объявление класса Ttest.TTest

{:* QueryTmp; // рабочая лошадка* QueryTmp1; // рабочая лошадка__fastcall CheckTextAnswer(AnsiString, AnsiString); // сравнить две текстовых строки:

// характеристики тестаID; // ID из базы данныхTimeLimit; // лимит времени в минутахNavigation; // разрешить навигациюAllRight; // все ответы теста правильныеRandom; // случайный выбор вопросовShowResult; // отображать результатыOpros; // признак тест-опросOnlyAnswered; // учитывать при подсчете результата только отвеченные вопросыAlwaysJ; // в любом случае записать результаты тестаName; // имя тестаFullName; // полное имя тестаBegin; // дата и время начала тестаEnd; // дата и время окончания

// вопросы* Questions; // список вопросов тестаCountQ; // количество вопросов тестаCurrentQ; // порядковый номер текущего вопросаCorrectA; // кол-во правильных ответовCountQA; // кол-во ответов на которые даны ответыResult; // балл теста* RandomList; // список порядковых номеров случайно заданных вопросов

__fastcall TTest(int); // конструктор

__fastcall ~TTest(); // деструктор - очистка памяти__fastcall LoadFromBD(); // загрузить тест из базы данных__fastcall LoadQuests(); // загрузить вопросы теста из БД* __fastcall GetQuest(int); // вернуть вопрос__fastcall IncCurrentQ(int); // увеличить номер текущего вопроса__fastcall AddRandom(); // занести в список уже заданных случайно вопросов__fastcall LastQuest(); // проверить что текущйи вопрос в тесте - последний__fastcall Compute(); // рассчитать результаты теста

// экспорт__fastcall Export(AnsiString); // экспотрировать тест и все что с ним связано__fastcall DropTable(AnsiString); // удалить таблицу__fastcall CreatTableTest(AnsiString); // создать структуру таблицы тестов__fastcall CreatTableTema(AnsiString); // создать структуру таблицы тем__fastcall CreatTableDisc(AnsiString); // создать структуру таблицы дисциплин__fastcall CreatTableQuest(AnsiString); // создать структуру таблицы вопросов__fastcall CreatTableAnswer(AnsiString); // создать структуру таблицы ответов__fastcall CreatTableInter(AnsiString); // создать структуру таблицы интрепритации__fastcall ExportTableTest(AnsiString, int*); // выгрузить таблицу тестов__fastcall ExportTableTema(AnsiString, int); // выгрузить таблицу тем__fastcall ExportTableDisc(AnsiString, int); // выгрузить таблицу дисциплин__fastcall ExportTableQuest(AnsiString, int); // выгрузить таблицу вопросов__fastcall ExportTableAnswer(AnsiString, int); // выгрузить таблицу ответов__fastcall ExportTableInter(AnsiString, int, int, int); // выгрузить таблицу интрепритации__fastcall Import(AnsiString, int); // импорт содержимого теста - вопросов и ответов__fastcall ImportAnswers(AnsiString, int, int); // импорт ответов__fastcall Delete(); // удалить тест

}; // TTest

.4 Визуальное представление данных

В визуальной интегрированной среде разработки C++ Builder основной составной частью программы является форма. Форма инкапсулирует в себе элементы интерфейса пользователя и программный код, заключающий в себе реакцию на действия пользователя. Это полностью отвечает принципам объектно-ориентированного программирования. C++ Builder автоматически создает для формы класс формы, который содержит компоненты, размещенные на форме, свойства и методы формы как автоматически создаваемые C++ Builder, так и определяемые пользователем. В разработанном приложении определены следующие формы:

l   FMain - главная форма приложения;

l   FReg - форма регистрации пользователя;

l   FAdm - форма администрирования списка лекций-тестов;

l   FDisc - форма ведения списка дисциплин;

l   FTema - форма ведения списка тем;

l   FTests - форма ведения списка лекций-тестов;

l   FormMatr - форма ведения списка учебных материалов;

l   FQuestAnswer - форма ведения списка вопросов и ответов на них;

l   FormTest - форма прохождения теста;

l   FormResult - форма отображения результата прохождения теста;

l   FormStatistic - форма отображения статистики прохождения тестов;

l   FormPrintResult - форма печати результатов прохождения одного теста;

l   FormPrintStatistic - форма печати результатов анализа статистики прохождения тестов;

l   FUsers - форма ведения списка пользователей;

l   FInter - форма назначения интерпретации для теста.

Опишем каждую форму, ее назначение и программную реализацию более подробно.

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

l   заголовок;

l   строка главного меню;

l   панель кнопок быстрого доступа;

l   рабочая область;

l   строка состояния.

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

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

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

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

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

Форма FReg предназначена для регистрации пользователя в системе. Она вызывается при загрузке приложения еще до отображения главной формы. Форма имеет поля ввода, в которые предлагается ввести логин и пароль. После нажатия кнопки «Ок» выполняется поиск в базе данных пользователя с таким логином и считывание его категории, далее вызывается главная форма приложения, которой передается идентификатор зарегистрировавшегося пользователя и его категория доступа. Если пользователь с заданным логином не найден в базе данных, либо пароль не совпадает с паролем в базе данных, то пользователю будет отказано в регистрации с выдачей соответствующего сообщения. На рисунке 4.1 представлен внешний вид формы FReg.

Рисунок 4.1 Форма регистрации пользователя

Форма FAdm предназначена для реализации такого интерфейсного решения, когда список дисциплин, тем и лекций-тестов отображаются в одном окне. Это обеспечивает очень удобную навигацию по спискам и соотнесение списков к элементам другого списка. Для реализации этой идеи в форме размещаются три компонента класса TDBGrid в каждом из которых отображается список дисциплин, тем и лекций-тестов соответственно. Данные в компонентах DBGrid загружаются из соответствующих таблиц базы данных при помощи SQL-запросов. Причем эти SQL-запросы составлены таким образом, что отображают только ту выборку данных, которые удовлетворяют текущему элементу в списке-родителе. Т.е. в списке тем отображаются только темы, принадлежащие дисциплине, выбранной в данный момент пользователем в списке дисциплин, а в списке лекций-тестов - только те лекции-тесты, которые принадлежат выбранной в данной момент теме. Такая структура обеспечивает кроме удобства отображения и однозначное сопоставление темы дисциплине, а лекции-теста теме. Обращение к таблицам базы данных производится при помощи компонентов TQuery.

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

Рисунок 4.2 Форма администрирования тестов.

Форма FDisc вызывается из формы FAdm и предоставляет пользователю возможность редактирования списка дисциплин. Форма имеет компонент DBGrid в который при помощи SQL-запроса, выполненного в компоненте Tquery, выводится список дисциплин. Органы управления формы предоставляют пользователю возможность добавления и удаления записей в список дисциплин. Дисциплина для пользователя характеризуется только наименованием, поэтому для редактирования предлагается только это поле. При удалении записи из списка дисциплин осуществляется контроль ссылочной целостности на уровне связей базы данных. Внешний вид формы приведен на рисунке 4.3.

Рисунок 4.3 Форма редактирования дисциплин

Форма FTema аналогично форме FDisc вызывается из формы FAdm и предназначена для редактирования списка тем. При помощи SQL-запроса в компонент DBGrid выводится существующий список тем. Органы управления формы предлагают пользователю возможности для добавления, удаления и редактирования записей списка. Все операции с базой данных производятся при помощи SQL-запросов. Для редактирования предлагается только поле наименования темы - единственное информационное поле соответствующей таблицы базы данных. Отметим, что добавление и редактирование записей в таблице тем происходит в строгом подчинении текущей дисциплине в списке дисциплин формы FAdm т.е. поле ID_DISC записей таблицы tema всегда заполнено соответствующим значением. При удалении записи проверяется ссылочная целостность на уровне связей базы данных.

Форма FTests также вызывается из формы FAdm и предназначена для редактирования параметров теста. Как и в случае с формой редактирования списка тем FTema в компоненте DBGrid при помощи SQL-запроса отображается список тестов. В полях ввода отображаются параметры теста, запись которого является текущей в данный момент в списке тестов: наименование теста, сложность теста и лимит времени в минутах на прохождение теста. При помощи соответствующих кнопок выполняются SQL-запросы на добавление, удавление и редактирование записей в таблице базы данных. Как и в случае списка тем, список отображаемых и редактируемых тестов связан с темой-родителем в списке тем. При удалении теста из списка тестов проверяется ссылочная целостность на уровне связей базы данных.

Рисунок 4.4. Форма задания параметров теста

Форма FQuestAnswer предназначена для редактирования структуры теста и вызывается из формы FAdm при нажатии соответствующей кнопки командной панели списка тестов. Структура теста состоит из вопросов теста и ответов на каждый вопрос. Таким образом, редактирование структуры теста сводится к редактированию соответствующих списков. Форма имеет два компонента DBGrid, в первом из которых выводится список вопросов, связанный с текущим тестом, а во втором выводится список ответов, связанный с текущим вопросом. Чтение записей из таблиц базы данных, а также осуществление связей меду таблицами выполняется при помощи SQL-запросов. В форме для каждого списка предусмотрена панель для ввода и редактирования параметров текущей записи. Для вопроса это текст вопроса, а для ответа- текст ответа и его вес. Внесение изменений в базу данных производиться после нажатия пользователем кнопок «Добавить» или «Изменить». При этом создаются и выполняются соответствующие SQL-запросы. Также можно удалить ответ из списка ответов вопроса или вопрос из списка вопросов теста. При удалении проверяется ссылочная целостность базы данных. Кроме того, для вопроса на отдельной закладке предусмотрена возможность назначения для вопроса картинки. При нажатии на кнопку «Добавить картинку» вызывается стандартный диалог выбора и просмотра графического файла, после выбора в котором интересующего файла графическое изображение из него записывается в базу данных. По кнопке «Убрать картинку» из соответствующей записи базы данных удаляется графическое изображение. Для вывода изображения картинки вопроса предназначен компонент TImage размещенный на панели-контейнере TPanel. При выводе изображения форма рассчитывает размер и местоположение компонента TImage относительно компонента-контейнера TPanel таким образом, чтобы изображение в компоненте TImage было пропорциональным, но при этом занимало максимальную площадь компонента-контейнера. Алгоритм, реализующий расчет размеров и координат компонента TImage выполнен в методе ComputeImage формы. Схема алгоритма расчета размеров области приведена на рисунке 7. Внешний вид формы приведен на рисунке 4.5.

Рисунок 4.5 Форма вопросов и ответов

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

Форма FormMater предназначена как для редактирования списка учебных материалов, так и для их просмотра. Разграничение доступа определяется правами пользователя, вошедшего в систему. Разграничение выполняется путем установки доступности (Enabled) органов управления, отвечающих за редактирование списка учебных материалов.

Основным визуальным элементом формы является компонент DBGrid, в котором отображается список учебных материалов. Список извлекается из базы данных при помощи SQL-запроса к таблицам Materials и LinkMaterial. Дополнительным условием на запрос накладывается ограничение на вывод «только своих» учебных материалов для той лекции, для которой была открыта форма, или всех учебных материалов. Изменение данного условия производится нажатием кнопки «Только закрепленные». Если форма была изначально открыта для просмотра списка всех учебных материалов, то кнопка недоступна. Форма хранит идентификатор лекции, для которой она была вызвана и все операции закрепления/открепления производит именно с этой лекцией.

Еще одним отбором, который можно сделать в списке, является отбор по тегам. Для этого в SQL-запрос добавляется еще одно условие Where, накладывающее условие отбора по полю TEG таблицы Materials. Включение/отключение такого отбора выполняется кнопкой.

В нижней части формы находится группа органов управления для ввода и редактирования параметров материала: наименования, описания, пути к файлу, типа и списка тэгов. Все эти параметры отображаются и редактируются каждый в своем компоненте TEdit. Выбор файла материала производится при помощи компонента TOpenDialog. Эти компоненты связаны со списком материалов: при перемещении по списку компоненты заполняются значениями текущей записи списка. Происходит это в обработчике события AfterScroll компонента доступа к данным TQuery.

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

Первая подгруппа кнопок - это кнопки добавления, редактирования и удаления записей в таблице materials базы данных. Значения полей таблицы берутся из компонентов TEdit. Все операции выполняются при помощи SQL-запросов Insert, Update и Delete.

Вторая подгруппа кнопок - это кнопки связывания текущего материала в списке с лекцией-тестом, если форма была вызвана для конкретной лекции-теста. При нажатии этих кнопок выполняются SQL-запросы добавления и удаления записей в таблице LinkMaterial.

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

Второй уровень проверки недопустимых данных - это проверка непосредственно перед выполнением SQL-запросов. Перед выполнением запроса производится проверка на корректность и логичность выполняемого запроса в том числе путем выполнения проверочных SQL-запросов и если эта проверка отрицательная, то запрос не выполняется. При удалении данных, в том числе при откреплении материала от лекции производится проверка ссылочной целостности данных.

Форма предоставляет возможность предварительного просмотра, а также вызова приложения Windows для простора ( а если необходимо и редактирования) файла, связанного с текущим материалом в списке материалов. Для предварительного просмотра и вызова приложения используется механизм OLE версии 2. Этот механизм позволяет программисту разрабатывать особые приложения - составные документы, которые динамически связаны между собой.

Для реализации механизма OLE в форму вставлен компонент палитры компонентов Borland C++ Builder, который называется OLEContainer. При активизации этого компонента ему передается полный путь к файлу, в котором находится выбранный для просмотра файл учебного материала. OLEContainer загружает приложение, связанное с данным файлом. Далее пользователь имеет возможность работать в этом автономном приложении используя весь его функционал, в том числе для редактирования файла в случае необходимости. Права на редактирование файла задаются владельцем файла и настраиваются администратором файл-сервера, на котором предпочтительно должны храниться все файлы учебных материалов. Связь конкретного приложения с каким-либо файлом определяется настройками операционной системы. Информация об этой связи хранится в системном реестре Windows. Обычно приложение Windows записывает в реестр информацию о своей связи с конкретным типом файлов при своей инсталляции на данном компьютере, однако она может быть изменена путем редактирования в любой утилите редактирования реестра, например стандартной утилитой Windows regedit.exe. Естественно, что для запуска приложения связанного с типом файла оно должно быть корректно установлено на данном компьютере.

Внешний вид формы FormMater представлен на Рисунок 4.6.

Рисунок 4.6. Форма FormMater

Форма FormTest вызывается из формы FAdm при нажатии на кнопку «Начать прохождение теста» в командной панели списка тестов. Данная форма предназначена для прохождения выбранного теста сотрудником и фиксации результатов его прохождения в базе данных.

В первую очередь у формы FormTest переопределен метод ShowModal, унаследованный от родительского класса TForm. Теперь этот метод имеет два параметра, через которые в форму передаются идентификатор теста, прохождение которого будет обеспечено формой, и идентификатор пользователя, который проходит данный тест. В этом же методе происходит динамическое создание объекта класса TTest.

Рисунок 4.7 Схема алгоритма расчета параметров изображения.

Как уже говорилось, класс TTest инкапсулирует в себе все необходимые свойства и методы для работы с объектом предметной области «Тест». Происходит считывание из базы данных параметров теста и формирование списка вопросов и ответов, которые представляют из себя списки объектов классов TQuestion и TAnswer. Далее вся работа с тестом происходит через объект класса TTest.

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

В панели наименования отображается подробное наименование теста, а также значение времени и номер вопроса. В значении времени отображается время в часах, минутах и секундах, оставшееся до окончания теста, если в параметрах теста задан лимит времени на его прохождение. Если лимит времени не задан, то отображается текущее системное время. Для реализации функции времени предназначены два объекта TTimer, размещенные на форме. Первый из них предназначен для контроля лимита времени (если он задан). В его интервал записывается значение в миллисекундах, соответствующее лимиту времени, заданному в минутах. При срабатывании этого таймера вызывается процедура завершения теста. Второй таймер имеет интервал в одну секунду и предназначен для изменения текста в компоненте TLabel, отображающем оставшееся или текущее время.

В панели текущего вопроса отображается текст и картинка текущего вопроса. Номер текущего вопроса - это свойство класса TTest, которое в методе ShowModal принимает значение ноль и далее меняется в зависимости от навигации по тесту. Текущий вопрос берется из объекта TTest при помощи метода GetQuest. Заметим, что если в текущем вопросе нет картинки, то поле для нее не отображается и вся панель текущего вопроса занята текстом вопроса. Для вывода изображения картинки вопроса предназначен компонент TImage размещенный на панеле-контейнере TPanel. При выводе изображения вызывается метод ComputeImage формы FQuestAnswer, который рассчитывает размер и местоположение компонента TImage относительно компонента-контейнера TPanel таким образом, чтобы изображение в компоненте TImage было пропорциональным, но при этом занимало максимальную площадь компонента-контейнера.

Панель ответов предназначена для вывода ответов на текущий вопрос. Она представляет из себя компонент TScrollBox в котором динамически создаются компоненты TradioButton или TCheckBox (в зависимости от типа ответа вопроса), текст которых заполняется текстом ответов. Таким образом, пользователю предоставляется возможность выбрать вариант ответа предложенный ему из нескольких возможных. Возможность вертикальной прокрутки объектов в компоненте TScrollBox обеспечивают отображение любого количества ответов. В создаваемых динамически компонентах TRadioButton и TCheckBox запоминается порядковый номер ответа и при ответе на вопрос именно этот номер фиксируется как выбранный пользователем вариант ответа. Если тип ответа вопроса установлен как «текст», то динамические объекты TRadioButton и TCheckBox не создаются, а вместо этого становится видимым поле ввода, в которое пользователю предлагается ввести свой вариант ответа. Введенный ответ фиксируется как данный пользователем ответ при нажатии на кнопку «Ответить».

Панель навигации предназначена для фиксации пользователем ответа на вопрос, для завершения теста по желанию пользователя и для передвижения по вопросам теста.

Для фиксации ответа на вопрос предназначена кнопка «Ответить». При ее нажатии в текущий вопрос теста (объект класса TQuestion списка вопросов Questions объекта класса TTest) записывается порядковый номер ответа, выбранный пользователем при помощи радиокнопок, либо сам текст ответа, введенный пользователем в поле ввода. Результат ответа на вопрос не вычисляется.

Для навигации по тесту предназначена кнопки «Вперед» и «Назад», при нажатии на которые увеличивается или уменьшается на единицу номер текущего вопроса и вызывается функция его отображения. Кроме того, на панели навигации динамически создаются кнопки-объекты класса TSpeedButton, каждая из которых соответствует вопросу. При нажатии на какую-либо из кнопок порядковый номер вопроса объекта TTest принимает соответствующее значение, происходит отображение текущего вопроса, а свойство Down кнопки становится равное True, что визуально представляется как «вдавленная» кнопка.

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

Завершение теста происходит либо по желанию пользователя при нажатии на кнопку «Завершить», либо по срабатыванию таймера лимита времени. В любом случае вызывается метод Close формы. Пользователь может и любым другим способом, принятым в Windows-приложениях закрыть окно формы FormTest. Фиксация результатов теста происходит в обработчике события закрытия формы.

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

Рисунок 4.8 Форма прохождения теста.

Форма FormTest предназначена также и для отображения результатов прохождения теста пользователем после фиксации результатов теста в базе данных перед окончательным закрытием формы. Органы управления, в которых отображаются параметры теста и результаты теста становятся видимыми после прохождения теста в них отображается вся необходимая информация. При нажатии на кнопку «Подробно» становится виден компонент TMemo, в котором отображается история прохождения теста в текстовом виде: выводятся строка с тестом вопроса, строка с текстом выбранного или введенного ответа, рассчитанный балл вопроса, строка с текстом правильного ответа. При повторном нажатии на кнопку «Подробно» компонент TMemo становится не видимым. Если для теста задана интерпретация, то при на панели просмотра результатов становится видимой кнопка «Расшифровать», при нажатии на которую в поле TMemo выводится вариант интерпретации теста, который соответcтвует рассчитанному количественному результату теста.

В программе предусмотрена возможность печати результатов теста. Если в главном меню программы выбрать пункт «Печать» при активном окне прохождения теста (форма FormTest), то если в данный момент в ней отображаются результаты теста, то будет вызвана форма FormPrintResult, в которой размещен компонент TQuickReport. Перед вызовом этой формы происходит заполнение его органов отображения значениями параметров теста и его результатами, после чего вызывается метод PreView компонента TQuickReport, отображающем предварительный просмотр печатной формы результатов теста.

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

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

l   диапазон дат прохождения тестов;

l   пользователь;

l   тест;

После нажатия кнопки «Сформировать» формируется SQL-запрос на выборку записей из базы данных результатов прохождения тестов, соответствующих заданным условиям. Записи результирующей выборки выводятся в компонент DBGrid в панели результатов для анализа пользователем пройденных тестов.

На панели команд располагаются кнопки «Сформировать», «Расшифровать» и «Закрыть», а также общий результат выборки тестов.

При выборе в главном меню пункта «Печать» из формы FormStatistic вызывается форма FormPrintStatistic. Она имеет в себе компонент TQuickReport, в котором формируется печатная форма статистики. Перед вызовом формы все компоненты, располагающиеся на компоненте TQuickReport заполняются соответствующими значениями и происходит вызов метода PreView, вызывающему окно предварительного просмотра печатной формы. Внешний вид формы приведен на рисунке 10.

Рисунок 4.9 Форма статистики.

Форма FUsers предназначена для ведения списка пользователей. В компоненте DBGrid данной формы при помощи SQL-запроса формируется список пользователей системы, а в органах управления отображаются свойства пользователя: логин, пароль, фамилия, имя отчество и категория пользователя. Категория пользователя отображается радиокнопками. При нажатии на кнопки управления выполняется SQL-запрос по добавлению, редактированию данных и удалению пользователя. При удалении пользователя контролируется ссылочная целостность базы данных. Внешний вид формы приведен на рисунке 11.

Рисунок 4.10 Форма списка пользователей.

4.5 Вызов и загрузка

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

Перед первым запуском программы необходимо создать алиас базы данных с именем TEST при помощи программы BDEAdministrator. Данная программа находится в панели управления Windows и устанавливается вместе с системой BDE. Сама же система BDE входит в комплект поставки системы разработки C++ Builder/Delphi и ставится с этой системой по умолчанию. Если же программа устанавливается на компьютер, на котором отсутствует система разработки, необходимо установить систему BDE отдельно, либо с диска установки Borland C++ Builder/Delphi, выбрав в списке устанавливаемых компонент только систему BDE. Сама база данных (файлы таблиц и индексов) также должны быть скопированы на жесткий диск компьютера перед первым запуском программы в отдельный каталог с установочного диска программы. На этот и должен быть настроен алиас TEST.

5. Руководство системного программиста

Для функционирования программы необходима установка на компьютере системы работы с базами данных фирмы Inprise BDE версии не менее 5.0. Данная система необходима для доступа из программы к таблицам базы данных. После установки системы BDE в панели управления появляется программа BDE Administrator, служащая для конфигурирования системы BDE и создания источников данных - алиасов. Необходимо запустить данную программу и создать с ее помощью алиас с именем TEST, который должен иметь следующие свойства:

Type - STANDART;DRIVER - PARADOX; BCD - FALSE;

PATH - путь к каталогу с таблицами базы данных.

Программное обеспечение проекта состоит из одного файла CSM.exe. Проект скомпилирован и скомпонован в системе программирования Borland C++ Builder таким образом, что все необходимые компоненты и библиотеки включены в исполняемый exe-файл. Такой способ компоновки имеет существенный недостаток, заключающийся в том, что exe-файл получается большого размера, который в несколько раз превосходит exe-файл при раздельной компоновке. Но преимущество такого способа компоновки заключается в том, что для работы программы не требуется никаких дополнительных файлов, что значительно упрощает установку, поддержку программы и ее перенос на другой компьютер.

В процессе эксплуатации программа не требует от системного оператора или системного программиста каких-то особых действий для поддержки своего функционирования. Необходимо следить только за работоспособностью системы BDE и в случае сбоев в ее работе переустановить ее. Недопустимо удалять алиас TEST или менять его настройки.

В последние годы одной из самых больших проблем эксплуатирования информационных систем стала проблема борьбы с компьютерными вирусами. Особенно эта проблема актуальна для информационных систем, работающих в сети, тем более в сети имеющей выход в глобальную сеть Интернет. Компьютерные вирусы способны разрушать данные и программы, хранящиеся на жестком диске компьютера, вносить изменения в данные и даже вызывать физические повреждения аппаратной части компьютера. Для борьбы с вирусами созданы много программ, одной из самых известных и действенных является Antiviral Toolkit Pro фирмы Kaspersky Lab. Данная программа работает как в режиме монитора, выполняясь как фоновый процесс Windows и отслеживая возможные вирусные атаки в ходе работы других приложений, так и в режиме сканера, проверяя выбранные логические диски на предмет наличия на них тел вирусов и пораженных файлов. Для предотвращения возможных заражений базы данных или программ разработанной информационной системы, а также системных файлов и программ Windows рекомендуется постоянная работа антивирусной программы в режиме монитора. Также необходимо периодически, не реже одного раза в сутки (желательно в нерабочее время) запускать антивирусную программу в режиме сканера.

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

.1 Общие положения

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

-       Администратор:

-       редактирование списка пользователей, назначение им прав;

-       Автор материала:

-       Ведение списка «Дисциплина - тема - лекция/ тест»;

-       Ведение учебных материалов;

-       Конструирование тестов;

-       Задание интерпретаций для тестов, тем и дисциплин;

-       Просмотр статистики

-       Сотрудник:

-       Просмотр дерева дисциплина-тема-лекция/тест;

-       Просмотр учебных материалов по лекциям;

-       Прохождение тестов.

В зависимости от категории пользователя программа после регистрации открывает то окно, которое является для данной категории пользователей основным (или единственным).

.2 Руководство автора материалов

.2.1 Ведение списка дисциплина-тема-лекция/тест

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

Ведение списка дисциплин и тем - первая задача автора материала. Он должен создать структур дисциплины, тем и лекций/тестов.

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

Рисунок 6.1. Форма администрирования

Форма имеет три области:

−       Предметы, в которой отображается список дисциплин;

−       Темы, в которой отображается список тем текущего предмета;

−       Тесты-лекции, в которой отображается список тестов-лекций текущей темы.

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

Для редактирования списка дисциплин нужно сделать двойной щелчок мышью в любом месте области дисциплин. Откроется окно ведения списка дисциплин.

Рисунок 6.2. Форма редактирования списка дисциплин

Слева отображается список дисциплин, справа параметры дисциплины и функциональные кнопки. Параметры дисциплины состоят только из названия.

Для добавления новой дисциплины нужно ввести ее наименование и нажать кнопку «Добавить».

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

Для удаления текущей дисциплины нужно нажать кнопку «Удалить». При этом будут удалены все тему и тесты-лекции текущей дисциплины.

Для редактирования списка тем нужно выполнить двойной щелчок мышью в любом месте списка тем. Откроется окно редактирования списка тем.

Рисунок 6.3. Окно редактирования списка тем

Работа со списком тем аналогична работе со списком дисциплин. Отметим, что при удалении темы, удаляются все тесты-лекции этой темы.

Редактирование списка тестов-лекций происходит в окне редактирования параметров теста, которое описано ниже. Для изменения закрепления теста за темой нужно выбрать тест, нажать кнопку «Сменить владельца» на панели кнопок быстрого доступа списка тестов и в появившемся окне выбрать новую тему-владельца.

.2.2 Конструктор тестов

Конструктор тестов состоит из следующих частей:

-       задание параметров теста;

-       конструирование структуры теста - списка вопросов и ответов;

-       задание интерпретации результатов теста.

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

Рисунок 6.4. Задание параметров теста

В этом же окне происходит и редактирование списка тестов-лекций, который отображается в леммой части окна.

При нажатии кнопки «Добавить» происходит добавление вновь введенного теста с его параметрами в список тестов и закрепление его за темой.

При нажатии кнопки «Сохранить» происходит сохранение внесенных в наименование и параметры теста изменений.

При нажатии кнопки «Удалить» происходит удаление теста из списка тестов, при этом удаляются все его вопросы и ответы, интерпретация, а также все записи о прохождении этого теста из журнала.

Редактирование структуры теста заключается в редактировании списка вопросов теста и ответов к каждому вопросу. Окно редактирования структуры теста вызывается из формы администрирования для текущего теста при нажатии на кнопку «Редактировать вопросы и ответы теста».

Рисунок 6.5. Форма редактирования вопросов и ответов теста

Форма имеет четыре области.

В области «Список вопросов» отображается весь список вопросов, созданных в тесте.

В области «Текущий вопрос» отображаются данные вопроса, вы бранного в данный момент в списке вопросов. Для вопроса задаются:

-       Текст, который собственно составляет вопрос;

-       Картинка, которая дополняет вопрос или сама является вопросом (может отсутствовать);

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

Для изменения текущего вопроса необходимо изменить его текст, тип ответа, при необходимости картинку и нажать кнопку «Сохранить».

Для удаления текущего вопроса необходимо нажать кнопку «Удалить», при этом будут удалены и все ответы к этому вопросу.

Чтобы добавить к вопросу картинку нужно переключиться на закладку «Картинка» и нажать кнопку «Добавить картинку». Откроется стандартный диалог Windows по выбору файла. Необходимо выбрать файл с картинкой. Картинка отобразится в поле. После этого необходимо перейти обратно на закладку «Текст» и нажать кнопку «Сохранить». Для того чтобы удалить картинку нужно нажать кнопку «Удалить картинку».

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

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

-       Флажок - пользователю будут представлены все возможные варианты ответа на вопрос, из которых он должен выбрать несколько, правильных по его мнению;

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

В области «Список ответов на текущий вопрос» отображаются созданные автором материала ответы на вопрос, который в данный момент является текущим в списке вопросов.

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

Для ввода нового ответа нужно ввести его текст, задать оценку и нажать кнопку «Добавить».

Для редактирования существующего ответа необходимо изменить его текст, оценку и нажать кнопку «Сохранить».

Для удаления ответа нужно нажать кнопку «Удалить».

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

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

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

Окно интерпретации имеет три области.

В области «список диапазонов» отображаются все созданные строки интпретации.

В области «Текущий диапазон» отображаются текст и интервал балл выбранной в списке строки

В области «Кнопки управления» отображаются кнопки.

Для ввода новой строки интепретации необходимо ввести ее текст и диапазон баллов и нажать кнопку «Добавить».

Для изменения существующей строки необходимо изменить ее текст и/или диапазон и нажать кнопку «Сохранить».

Для удалении текущей строки нужно нажать кнопку «Удалить»;

Для удаления всех строк нужно нажать кнопку «Удалить Все».

Для отмены сделанных изменений в текущей строке нужно нажать кнопку «Отменить».

.2.3 Прикрепление учебного материала

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

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

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

Рисунок 6.6. Форма учебных материалов

Форма имеет несколько областей:

−       Область «Сёписок» материалов»;

−       Область «Просмотр» текущего материала;

−       Область «Параметры» текущего материала;

−       Область «Отбор по тэгам»;

−       Область «Функциональные кнопки».

Область «Список материалов» предназначена для отображения списка материалов. Состав списка зависит от режима отображения закрепленных материалов. Редактирование в списке не предусмотрено.

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

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

Область «Параметры» предназначена для отображения и редактирования параметров текущего учебного материала. В области списка отображаются не все параметры материала, а только основные. В области параметров отображаются все партеры материала:

−       Наименование;

−       Тип;

−       Список тэгов;

−       Путь к файлу;

−       Подробное описание.

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

Область «Функциональные кнопки» позволяет выполнять со списком материалов все основное действия.

Кнопка «Только закрепленные» предназначена для режима отображения списка:

−       Кнопка «вдавлена»: отображаются материалы только одной лекции (если форма вызвана для нее);

−       Кнопка «отжата»: отображаются все учебные материалы (закрепленные за любыми лекциями или вообще не закрепленные).

По умолчанию, если форма вызывается для конкретной лекции - кнопка отображается «вдавленной». Если форма вызывается не для конкретной лекции - кнопка недоступна.

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

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

Кнопки «Добавит» и «Сохранить» отображаются недоступными, если пользователь не делал никаких действий по редактированию параметров.

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

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

−       Форма вызвана для конкретной лекции;

−       Кнопка «Только закрепленные» «отжата».

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

−       Форма вызвана для конкретной лекции;

−       Кнопка «Только закрепленные» «вжата».

Для закрытия формы нужно зажать кнопку «Закрыть».

6.3 Руководство по прохождения обучения и тестирования

.3.1 Прохождение обучения

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

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

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

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

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

.3.2 Прохождение тестирования

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

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

В любом случае окно прохождения теста имеет следующие области:

-       Область «дисциплина-тема-тест»;

-       Область отображения времени прохождения теста;

-       Область вопроса;

-       Область поясняющей картинки;

-       Область ответа;

-       Панель навигации по вопросам теста;

-       Кнопка «Ответить»;

-       Кнопка «Завершить тест».

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

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

Область вопроса предназначена для отображения текста вопроса, как его задал автор теста.

Область картинки предназначена для отображения поясняющей картинки к вопросу.

Область ответа предназначена для дачи пользователем ответа.

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

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

Завершение теста происходит:

-       При ответе пользователем на последний неотмеченный вопрос;

-       При нажатии на кнопку «Завершить тест» (при этом выдается предупреждение, если есть неотвеченные вопросы);

-       При окончании лимита времени (если он задан).

Внешний вид окна прохождения теста представлена на Рисунок 6.7.

Рисунок 6.7. Окно прохождения теста

Если параметр теста «Всегда сохранять результаты теста» не установлен программа задаст пользователю вопрос: сохранять или нет результаты теста в журнале для последующего анализа и участия в сборе статистики.

После прохождения теста, если установлен параметр теста «Показывать результаты» пользователю отображается окно с результатами прохождения им теста. Окно имеет несколько областей. В первой области кА ки в окне теста отображается положение теста в дереве дисциплина-тема-тест. Во второй области отображаются: дата и время прохождения теста. Лимит времени и затраченное время на прохождение теста, количество вопросов теста, количество данных ответов в том числе правильных и балл, набранный пользователем за прохождение теста. В третьей области отображается интерпретация результатов прохождения теста, если она задана автором теста на этапе конструирования теста. Интерпретация нужна для более подробного осмысления результатов теста. При нажатии на кнопку «Подробнее» интерпретация сменяется трассировкой о прохождении теста, где для каждого вопроса отображается следующая информация:

-       Номер вопроса;

-       Текст вопроса;

-       Данный ответ;

-       Балл, полученный за ответ;

-       Правильный ответ.

Трассировка нужна для отслеживания хода выполнения теста.

Внешний вид окна результатов представлен на Рисунок 6.8.

Рисунок 6.8. Окно результатов прохождения теста

.4 Руководство администратора

Администратор системы выполняет только одну функцию - ведение списка пользователей системы. Каждому пользователю назначается логин, пароль и категория. В зависимости от категории пользователю доступны те или иные функции программы описанные в 6.1.

Для открытия окна ведения списка пользователей необходимо выполнить команду «Файл/пользователи» главного меню системы. Откроется окно представленное на Рисунок 6.9.

Рисунок 6.9. Окно редактирования списка пользователей

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

-       Логин для входа в систему;

-       Пароль для входа в систему;

-       ФИО для идентификации пользователя;

-       Логическая группа пользователей;

-       Категория прав пользователей:

-       Сотрудник;

-       Автор материала;

-       Администратор;

-       Все права.

Для ввода нового пользователя необходимо ввести его параметры и нажать кнопку «Добавить»;

Для редактирования пользователя необходимо изменить его параметры и нажать кнопку «Изменить»;

Для удаления пользователя необходимо нажать кнопку «Удалить». При этом будет удален не только пользователь но и все записи о прохождении им тестов из журнала.

Заключение


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

Отметим, что разрабатываемое приложение можно применять не только для узкой цели обучения и тестирования знаний сотрудников, но и в других областях. Например, данное приложение можно использовать в области психологических тестов. Все зависит от того как интерпретировать результат прохождения теста. В случае психологических тестов направленных, например, на выявление психологической направленности личности все ответы на все вопросы будут иметь веса, отличные от нуля и располагаться в диапазоне 0..N. Т.е. все ответы на вопросы будут «правильными». Результат же теста нужно интерпретировать по тому диапазону, в который он попал. Каждый из диапазонов в свою очередь соответствует тому или иному искомому типу личности.

Другой возможной областью применения разработанного приложения является тестирование пользователей с целью выявления их коэффициента интеллекта IQ. В этом случае по специальным методикам надлежит подобрать соответствующие вопросы, в том числе содержащие картинки и подобрать ответы на них. Для этого лучше использовать классические IQ-тесты, разработанные специалистами, например классические IQ тесты Г. Айзенка [13].

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

 

Список цитируемой литературы


1.      Бобровский С.И. Delphi 5 - М.: Питер, 2002.

.        Гаевский A. Разработка программных приложений на Delphi 6 - М.: Киев, 2000.

.        Зуев В. A. Turbo Pascal 6.0, 7.0. М.: Москва, 1998.

.        Коцюбинский А.О., Грошев С.В. Язык программирования Delphi 5 - М.: Москва, 1999.

.        Леонтьев В.И. Delphi 5 - М.: Москва, 1999.

.        Моисеев А.С. Object Pascal - М.: Москва, 2000.

7.      Немнюгин С.А. Программирование - М.: Питер, 2000.

.        Ремизов Н. C. Delphi - М.: Питер, 2000

.        Гришанова Н.А., Тестовый контроль знаний и умений студентов: методические рекомендации, М.

.        Ивашина А.С., Свиридова Т.С., Тестовый контроль знаний //Специалист, 1997, №12

.        Попов В.А., Размышление учителя над итогами тестирования //Математика в школе, 2000, №3

.        Титов С.В., Недоработки централизованного тестирования.//Математика в школе, 2000, №7

.        Айзенк Г. Классические IQ тесты. М., Эксмо, 2002

.        Архангельский П.А. Программирование в Delphi 5. M., Наука, 2000

.        Дарахвелидзе П.Г. Программирование в DELPHI 5. СПб., Бином, 2000

.        Тейксейра С. Т. DELPHI 5. Руководство разработчика. М., Вильямс, 2000

.        Угринович Н. Информатика и информационные технологии. Набор базовых знаний. М., Радио и связь, 2000

.        Фаронов В.В. Delphi 3. Учебный курс. М., Нолидж, 1998

.        Фаронов В.В. Delphi 4. Учебный курс. М., Нолидж, 1998

.        Харрингтон Дж. Проектирование реляционных баз данных. М., ЛОРИ, 2000

.        Шумаков В.П. Delphi 3 и создание приложений баз данных. М., Нолидж, 1998

Похожие работы на - Разработка электронной системы обучения и тестирования для новых и действующих сотрудников строительной организации ТД 'ЦентрСМ'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!