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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
78
2.4 Контрольный пример реализации проекта и его описание
На рисунке 2.8 представлен внешний вид формы FReg.
Рисунок 2.8 - Форма регистрации пользователя
Форма FAdm предназначена для реализации такого интерфейсного
решения, когда список дисциплин, тем и тестов отображаются в одном окне. Это
обеспечивает очень удобную навигацию по спискам и соотнесение списков к
элементам другого списка. Для реализации этой идеи в форме размещаются три
компонента класса TDBGrid в каждом из которых отображается список
дисциплин, тем и тестов соответственно. Данные в компонентах DBGrid
загружаются из соответствующих таблиц базы данных при помощи SQL-
запросов. Причем эти SQL-запросы составлены таким образом, что отображают
только ту выборку данных, которые удовлетворяют текущему элементу в списке-
родителе. Т.е. в списке тем отображаются только темы, принадлежащие
дисциплине, выбранной в данный момент пользователем в списке дисциплин, а
в списке тестов – только те тесты, которые принадлежат выбранной в данной
момент теме. Такая структура обеспечивает кроме удобства отображения и
однозначное сопоставление темы дисциплине, а теста теме. Обращение к
таблицам базы данных производится при помощи компонентов TQuery.
В командной панели каждого списка имеется кнопка, по которой
вызывается форма детального редактирования списка, а для списка тестов кроме
того, имеется кнопка редактирования структуры теста и кнопка запуска
выбранного теста. Внешний вид формы FAdm приведен на рисунке 2.9.
79
Рисунок 2.9 - Форма администрирования тестов.
Форма FDisc вызывается из формы FAdm и предоставляет пользователю
возможность редактирования списка дисциплин. Форма имеет компонент
DBGrid в который при помощи SQL-запроса, выполненного в компоненте
Tquery, выводится список дисциплин. Органы управления формы
предоставляют пользователю возможность добавления и удаления записей в
список дисциплин. Дисциплина для пользователя характеризуется только
наименованием, поэтому для редактирования предлагается только это поле. При
удалении записи из списка дисциплин осуществляется контроль ссылочной
целостности на уровне связей базы данных. Внешний вид формы приведен на
рисунке 2.10.
80
Рисунок 2.10 - Форма редактирования дисциплин
Форма FTema аналогично форме FDisc вызывается из формы FAdm и
предназначена для редактирования списка тем. При помощи SQL-запроса в
компонент DBGrid выводится существующий список тем. Органы управления
формы предлагают пользователю возможности для добавления, удаления и
редактирования записей списка. Все операции с базой данных производятся при
помощи SQL-запросов. Для редактирования предлагается только поле
наименования темы – единственное информационное поле соответствующей
таблицы базы данных. Отметим, что добавление и редактирование записей в
таблице тем происходит в строгом подчинении текущей дисциплине в списке
дисциплин формы FAdm т.е. поле ID_DISC записей таблицы tema всегда
заполнено соответствующим значением. При удалении записи проверяется
ссылочная целостность на уровне связей базы данных.
Форма FTests также вызывается из формы FAdm и предназначена для
редактирования параметров теста. Как и в случае с формой редактирования
списка тем FTema в компоненте DBGrid при помощи SQL-запроса отображается
список тестов. В полях ввода отображаются параметры теста, запись которого
81
является текущей в данный момент в списке тестов: наименование теста,
сложность теста и лимит времени в минутах на прохождение теста. При помощи
соответствующих кнопок выполняются SQL-запросы на добавление, удавление
и редактирование записей в таблице базы данных. Как и в случае списка тем,
список отображаемых и редактируемых тестов связан с темой-родителем в
списке тем. При удалении теста из списка тестов проверяется ссылочная
целостность на уровне связей базы данных.
Рисунок 2.11 - Форма задания параметров теста
Форма FQuestAnswer предназначена для редактирования структуры теста
и вызывается из формы FAdm при нажатии соответствующей кнопки командной
панели списка тестов. Структура теста состоит из вопросов теста и ответов на
каждый вопрос. Таким образом, редактирование структуры теста сводится к
редактированию соответствующих списков. Форма имеет два компонента
DBGrid, в первом из которых выводится список вопросов, связанный с текущим
тестом, а во втором выводится список ответов, связанный с текущим вопросом.
Чтение записей из таблиц базы данных, а также осуществление связей меду
82
таблицами выполняется при помощи SQL-запросов. В форме для каждого
списка предусмотрена панель для ввода и редактирования параметров текущей
записи. Для вопроса это текст вопроса, а для ответа- текст ответа и его вес.
Внесение изменений в базу данных производиться после нажатия пользователем
кнопок «Добавить» или «Изменить». При этом создаются и выполняются
соответствующие SQL-запросы. Также можно удалить ответ из списка ответов
вопроса или вопрос из списка вопросов теста. При удалении проверяется
ссылочная целостность базы данных. Кроме того, для вопроса на отдельной
закладке предусмотрена возможность назначения для вопроса картинки. При
нажатии на кнопку «Добавить картинку» вызывается стандартный диалог
выбора и просмотра графического файла, после выбора в котором
интересующего файла графическое изображение из него записывается в базу
данных. По кнопке «Убрать картинку» из соответствующей записи базы данных
удаляется графическое изображение. Для вывода изображения картинки вопроса
предназначен компонент TImage размещенный на панели-контейнере TPanel.
При выводе изображения форма рассчитывает размер и местоположение
компонента TImage относительно компонента-контейнера TPanel таким образом,
чтобы изображение в компоненте TImage было пропорциональным, но при этом
занимало максимальную площадь компонента-контейнера. Алгоритм,
реализующий расчет размеров и координат компонента TImage выполнен в
методе ComputeImage формы. Внешний вид формы приведен на рисунке 2.12 .
Источник: https://baza.diplomsite.ru/previewfile/2090