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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
73
реализуют обращение к базе данных при помощи SQL-запросов. На рисунке
2.6 представлена схема взаимосвязи программных модулей.
Рисунок 2.6 – Схема взаимосвязи программных модулей
FMain
FReg
FAdm
FDisk
FTema
FTest
FQuest
FormTest
FormResult
FormStatistic
FormPrintResult
FormPrintStatistic
FUsers
FInter
Модуль «Главная форма»
Модуль «Регистрация»
Модуль «Список пользователей»
Модуль «Назначения интерпретации
теста»
Модуль «Администрирования тестов те
Модуль «Список дисциплин»
Модуль «Список тем»
Модуль «Ведения списка тем»
Модуль «Ведения списка вопр/ответ»
Модуль «Прохождения теста»
Модуль «Результат»
Модуль «Статистика»
Модуль «Печать результатов»
Модуль «Печать анализа результатов»
74
2.3.4 Описание программных модулей
В визуальной интегрированной среде разработки C++ Builder основной
составной частью программы является форма. Форма инкапсулирует в себе
элементы интерфейса пользователя и программный код, заключающий в себе
реакцию на действия пользователя. Это полностью отвечает принципам
объектно-ориентированного программирования. C++ Builder автоматически
создает для формы класс формы, который содержит компоненты, размещенные
на форме, свойства и методы формы как автоматически создаваемые C++ Builder
, так и определяемые пользователем. В разработанном приложении определены
следующие формы:
FMain – главная форма приложения;
FReg – форма регистрации пользователя;
FAdm – форма администрирования списка тестов;
FDisc – форма ведения списка дисциплин;
FTema – форма ведения списка тем;
FTests – форма ведения списка тестов;
FQuestAnswer – форма ведения списка вопросов и ответов на них;
FormTest – форма прохождения теста;
FormResult – форма отображения результата прохождения теста;
FormStatistic – форма отображения статистики прохождения тестов;
FormPrintResult – форма печати результатов прохождения одного
теста;
FormPrintStatistic – форма печати результатов анализа статистики
прохождения тестов;
FUsers – форма ведения списка пользователей;
FInter – форма назначения интерпретации для теста.
Опишем каждую форму, ее назначение и программную реализацию более
75
подробно.
Главная форма приложения является основной рабочей областью для
пользователя. Главная форма появляется на экране сразу после регистрации
пользователя в системе. Как и любое окно Windows, она имеет следующие
элементы:
заголовок;
строка главного меню;
панель кнопок быстрого доступа;
рабочая область;
строка состояния.
Строка заголовка служит для отображения заголовка приложения. Кроме
того, в ней находятся кнопки максимизации, минимизации, закрытия главного
окна приложения, а также кнопка системного меню.
Главное меню является основным элементом управления приложением
для пользователя. Посредством выбора пунктов и подпунктов главного меню
пользователь выполняет все функции, заложенные в приложении.
Панель кнопок быстрого доступа служит для дублирования пунктов
главного меню, которые наиболее часто приходится выполнять. Выполнения
этих пунктов пользователь производит путем нажатия кнопки с
соответствующей пиктограммой.
Строка состояния служит для отображения расширенной подсказки для
тех органов управления, которые сейчас активны.
Рабочая область главного окна приложения предназначена для размещения
в себе других форм, которые выводятся в зависимости от режима работы
системы. Режим работы определяется статусом пользователя и его правами,
которые были определены в процессе регистрации пользователя в системе. Так
если зарегистрировавшийся пользователь обладает правами администратора, то
в рабочую область главного окна приложения будет загружена форма ведения
списка пользователей, если пользователь обладает правами проверяющего, то в
76
рабочую область загружается форма создания тестов, а если правами
тестируемого – то форма выбора теста для его прохождения. Открывшиеся по
умолчанию в рабочей области главного окна приложения формы пользователь
может заменить, выбрав в главном меню или на панели кнопок быстрого
доступа соответствующую команду, если она доступна пользователю. Таким
образом, главная форма приложения выполняет и функцию разграничения прав
доступа пользователя к функциям программы, в зависимости от категории
пользователя.
Форма FReg предназначена для регистрации пользователя в системе. Она
вызывается при загрузке приложения еще до отображения главной формы.
Форма имеет поля ввода, в которые предлагается ввести логин и пароль.
После нажатия кнопки «Ок» выполняется поиск в базе данных пользователя с
таким логином и считывание его категории, далее вызывается главная форма
приложения, которой передается идентификатор зарегистрировавшегося
пользователя и его категория доступа. Если пользователь с заданным логином
не найден в базе данных, либо пароль не совпадает с паролем в базе данных, то
пользователю будет отказано в регистрации с выдачей соответствующего
сообщения. Блок схема алгоритма программы представлена на рисунке 2.7.
77
Начало
Получить
область rc
Получить размер
изображения
bSize
w = rc.Width;
h = rc.Height
w < h
h = w;
rc.bottom = rc.top
+ h
w = h;
rc.right = rc.left +
w
bSize.cx >
bSize.cy
ratio = bSize.cy/
bSize.cx
ratio = bSize.cx/
bSize.cy
dW = rc1.Width -
rc.Width
d = min(dW, dH) ;
rc.right = rc.right
+ d;
rc.bottom =
rc.bottom + d
rc.right = rc.right -
rc.left;
rc.left=0
rc.bottom =
rc.bottom -rc.top;
rc.top=0
rc.Width <
rc1.Width
rc.left =
(rc1.Width -
rc.Width) / 2
rc.right = rc.left +
rc.Width
rc.top =
(rc1.Height -
rc.Heught) / 2 ;
rc.Height <
rc1.Height
rc.bottom = rc.top
+ rc.Height
Скопировать
область rc в
область rc1
rc.bottom =
rc.top + w*ratio
rc.right = rc.left +
h*ratio
Окончание
dH = rc1.Height -
rc.Height
ДаНет
ДаНет
Да
Да
Нет
Нет
Схема алгоритма рассчета области
Рисунок 2.7 – Блок-схема алгоритма программы
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 .

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)