Дипломная работа: Автоматизация процесса контроля знаний учащихся ГБОУ города Москвы школы №656 А.С. Макаренко

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
68
NAME
String(25
4)
+
Текст ответа
VES
Number
+
Вес ответа
8. jornal – журнал результатов прохождения тестов
ID
Integer
PK
Идентификатор записи
IDUSER
Integer
FK
Идентификатор
пользователя
IDTEST
Integer
FK
Идентификатор теста
COUNTQ
Integer
+
Количество вопросов в
тесте
RESULT
Number
+
Результат теста
DATA
Date
+
Дата прохождения теста
TBEGIN
Time
+
Время начала прохождения
теста
TEND
Time
+
Время окончания
прохождения теста
9. inter – интерпритация результатов прохождения тестов
ID
Integer
PK
Идентификатор записи
IDUSER
Integer
FK
Идентификатор
пользователя
IDTEST
Integer
FK
Идентификатор теста
MINRES
Double
Нижняя граница диапазона
результатов
MAXRES
Double
Верхняя граница диапазона
результатов
INTER
Memo
Текстовая интерпретация
результата теста,
попавшего в диапазон
Таблица 1. Структура базы данных.
69
При разработке базы данных было уделено особое внимание обеспечению
ссылочной целостности или целостность на уровне ссылок. Это означает, что
если из одной таблицы есть ссылка на запись другой таблицы, то эта запись
обязательно должна существовать. Ссылочная целостность обеспечена
использованием механизма внешних ключей. Связи между таблицами
представлены на рисунке 2.5.
Рисунок 2.5 - Связи между таблицами базы данных.
Доступ к таблицам базы данных производится из программы при помощи
системы работы с базами данных фирмы Borland BDE. Непосредственное
обращение производится при помощи псевдонима базы данных (алиаса) с
именем TEST. Данный алиас должен быть создан перед первым запуском
программы утилитой BDE Administrator и иметь следующие характеристики:
Type – STANDART;
DEFAULT DRIVER – PARADOX;
ENABLED BCD – FALSE;
70
PATH – полный путь к каталогу базы данных. Данный путь
устанавливается пользователем в процессе инсталляции программы..
В программе для работы с таблицами, добавления, удаления,
редактирования записей используется универсальный язык запросов SQL.
Данный язык позволяет разработчику полностью абстрагироваться от формата и
месторасположения базы данных и одинаково обращаться к данным из баз
разного формата.
2.3.3 Структурная схема пакета (дерево вызова программных модулей)
Для реализации задачи разработки приложения тестирования знаний
учащихся была разработана структура классов, аккумулирующая в себе все
необходимые свойства и функции для выполнения задачи. Разработанная
структура классов соответствует их аналогам в предметной области: тесту,
вопросу и ответу. Объявление и реализация классов выполнены в модуле
Ctest.сpp.
Класс TAnswer представляет из себя сочетание свойств и методов, в
совокупности представляющих из себя объект предметной области «Ответ на
вопрос». Ответ на вопрос в предметной области представляет из себя
совокупность трех параметров: идентификатор ответа в базе данных, текст
ответа и вес ответа. Класс TAnswer эти параметры реализует внутри себя в виде
свойств. Кроме того, имеется конструктор, в котором происходит
первоначальное заполнение этих свойств [19].
Класс TQuestion представляет из себя объединение свойств и методов в
совокупности представляющих из себя объект предметной области «Вопрос
теста». Вопрос теста в предметной области представляет из себя совокупность
таких параметров как идентификатор вопроса в базе данных, текст вопроса,
картинка вопроса, список возможных ответов на вопрос, вычисленный
71
результат вопроса, данный или выбранный пользователем ответ на вопрос.
Каждому из этих параметров соответствует свойство класса TQuestion [20].
Отдельно остановимся на списке ответов. Список ответов в классе
TQuestion представлен свойством Answers, имеющем тип динамический список
(класс TList). При заполнении этого списка в него помещаются динамически
созданные объекты класса TAnswer. В дальнейшем обращение к свойству
Answers происходит как к списку объектов класса TAnswer, используя его
свойства.
Для реализации работы с объектом вопроса в классе TQuestion
предусмотрены методы:
конструктор TQuestion предназначен для выделения памяти под
динамически создаваемые объекты и первоначальное заполнение
параметров объекта класса;
деструктор ~TQuestion – предназначен для освобождения памяти из
под динамически созданных объектов, прежде всего из под списка
ответов;
LoadAnswers – предназначен для выполнения процедуры загрузки
списка ответов и их параметров из базы данных;
GetAnswer – предназначен для получения доступа к объекту типа
TAnswer по его порядковому номеру в списке;
GetCorrectAnswer – предназначен для получения доступа к объекту
типа TAnswer с максимальным весом.
Класс TTest представляет из себя совокупность свойств и методов для
программной реализации объекта предметной области «Тест». Тест в
предметной области характеризуется такими параметрами как идентификатор в
базе данных, наименование теста, сложность теста, ограничение по времени и
параметры теста. В программной реализации к представлению данного объекта
добавлены такие свойства как полное наименование теста, дата и время начала
прохождения теста (свойство BeginDate), дата и время окончания прохождения
72
теста (свойство EndDate), порядковый номер текущего вопроса в тесте
(свойство CurrentQ), количество вопросов, на которые пользователь дал ответ
(свойство CountQA), количетсво вопросов, на которые пользователь дал
правильный ответ, т.е. ответ с весом, отличным от нуля (свойство CorrectA),
вычисленный результат прохождения теста (свойство Res). Отдельно
остановимся на свойстве Questions, представляющий из себя динамический
список типа TList. При заполнении значений этого списка в него помещаются
динамически созданные объекты класса TQuestion. В дальнейшем при
обращении к объектам динамического списка Questions используются свойства
и методы класса TQuestion. Таким образом, объекты динамического списка
представляют из себя вопросы теста, а сам список – список вопросов теста.
Для реализации работы с объектом предметной области «Тест» в
программной реализации класса TTest предусмотрены следующие методы:
конструктор TTest предназначен для выделения памяти для
динамически создаваемых объектов, прежде всего для списка вопросов, а
также для первоначального заполнения значений свойств объекта;
деструктор ~TTest – предназначен для освобождения памяти из под
динамически создаваемых объектов;
LoadFromBD – предназначен для загрузки из базы данных свойств
теста;
LoadQuests – предназначен для загрузки из базы данных списка
вопросов;
GetQuest – предназначен для получения из списка вопросов объекта
класса TQuestion по его порядковому номеру.
Отметим отдельно, что класс TTest инкапсулирует в себе все необходимые
свойства и методы для загрузки теста вместе со списком вопросов и ответов
из базы данных. Таким образом, объекту класса TTest не требуется
визуального представления ни для своего отображения, ни для обращения к
базе данных. Для обращения к базе данных предназначены свойства раздела
private QueryTmp и QueryTmp1 типа TQuery из библиотеки VCL, которые и
Источник: https://baza.diplomsite.ru/previewfile/2090