4.3.2
Описание алгоритма
работы серверной
части
Схематически
алгоритм работы серверной части
программы приведен на ватмане 2 в
графической части дипломного проекта.
Работы сервера программного продукта
производится при вызове пользователем
определенной процедуры. Основными процедурами
сервера являются:
- соединение
с клиентами: компонент TIdUDPServer постоянно
«прослушивает» входящие UDP-пакеты, которые
поступают в порт 5555 из локальной сети
от клиентов программы тестирования. В
соответствии с поступившим сообщением
сервер может послать в сеть два сообщения
– <#ANSW> или <#STDB>. Первое сообщение
– это ответ клиентскому приложению о
том, что сервер находится в сети. Второе
сообщение – пересылает клиентскому приложению
путь к базе тестирования;
- добавление
дисциплины: включает в себя два действия
– выполнение SQL-запроса по созданию таблицы
дисциплины (см. пункт «4.1 Описание серверной
части») и запись информации о созданной
дисциплине в таблицы дисциплин (имя дисциплины,
имя таблицы дисциплины, время для ответа,
дата создания);
- редактирование
дисциплины: включает в себя следующие
процедуры:
- удаление
дисциплины: включает в себя два действия
– выполнение SQL-запроса по удалению таблицы
дисциплины (см. пункт «4.1 Описание серверной
части») и удаление информации об удаленной
дисциплине в таблице дисциплин;
- удаление
вопросов: используя цикл с постусловием
Repeat/Until, удаляются все вопросы из выбранной
дисциплины, условие для выхода из цикла
– конец таблицы дисциплины;
- установка
времени: если значение введенного времени
равно 0, то происходит прерывание выполнения
процедуры установки времени для ответа;
иначе таблица, содержащая информацию
и дисциплинах, переводится в режим редактирования,
имеющееся значение заменяется на введенное
пользователем, затем происходит принятие
изменений в таблице дисциплин;
- добавление
вопросов: в зависимости от выбранного
шаблона добавляемого вопроса в таблицу
выбранной дисциплины добавляется вопрос,
содержащий вопрос, ответ, неправильные
варианты ответов и объект;
- просмотр
вопросов: состоит из трех процедур –
редактирование вопроса (с помощью редактора
вопроса текущее значение (вопроса, ответа,
неправильных вариантов, объекта) изменяется
на введенное пользователем), навигация
по вопросам (переход к следующему, предыдущему,
первому и последнему вопросу) и удаление
вопроса (удаление выбранного пользователем
вопроса из таблицы дисциплины);
- результаты
тестирования: состоит из следующих процедур:
- фильтрация
списка студентов по дисциплине: из имеющихся
записей выбираются только те записи,
которые в поле PREDMET имеют значение, равное
выбранному пользователем в комбинированном
списке;
- фильтрация
списка студентов по группе: из имеющихся
записей выбираются только те записи,
которые в поле GRUPPA имеют значение, равное
выбранному пользователем в комбинированном
списке;
- удаление
записи: удаление выбранной записи из
таблицы студентов;
- очистка таблицы:
используя цикл с постусловием Repeat/Until,
удаляются все записи из таблицы студентов,
условие для выхода из цикла – конец таблицы
студентов;
- печать списка:
вывод на печать записей из таблицы студентов;
- просмотр
списка: предварительный просмотр выводимого
на печать списка студентов;
- справка:
получение помощи по работе с серверной
частью программы тестирования, при вызове
этой процедуры вызывается файл Help.hlp,
расположенный в одной директории с программным
продуктом (Приложение А, папка Test(Server));
- выход: при
вызове этой процедуры серверное
приложение посылает в локальную сеть
широковещательное сообщение о том, что
сервер в сети не зарегистрирован, серверное
приложение закрывается, а подключенные
клиенты не могут продолжать работу, так
как не известен путь к базе тестирования.
Схематически
описанная структура серверной
части программы тестирования приведена
в приложении Б данного дипломного проекта.
4.3.3
Описание алгоритма
работы клиентской
части
Схематически
алгоритм работы клиентской части программы
приведен на ватмане 2 в графической
части дипломного проекта. Работы клиента
программного продукта производится при
вызове пользователем определенной процедуры.
Основными процедурами сервера являются:
- установка
соединения с сервером: компонент TIdUDPServer
постоянно «прослушивает» входящие UDP-пакеты,
которые поступают в порт 5555 из локальной
сети от клиентской или серверной частей
программы тестирования. В соответствии
с поступившим сообщением клиент может
послать в сеть два сообщения – <#Helo>
(широковещательное сообщение о наличии
в сети запущенной клиентской части) или
<#GTDB> (запрос у сервера пути к базе тестирования).
При составлении пути к базе тестирования
клиентское приложение использует IP-адрес
компьютера с запущенной серверной частью;
- выбор предмета
из списка имеющихся предметов: пользователю
необходимо выбрать один из предметов
в списке имеющихся в базе тестирования
предметов;
- ввод информации
о пользователе: для дальнейшей обработки
результатов пользователь должен ввести
данные – фамилию, имя, группу, а также
выбрать вариант из комбинированного
списка;
- тестирование:
начиная с первого, пользователю выводятся
вопросы; варианты ответов выводятся случайным
образом (см. пункт «4.2 Описание клиентской
части»), при выборе варианта ответа проверяется
соответствие выбранного варианта ответу
– если выбран правильный вариант, то
количество правильных ответов увеличивается
на 1; затем проверяется условие конца
таблицы – если вопросы закончились, то
вызывается процедура Конец, если нет,
то выводится следующий вопрос;
- конец: после
завершения тестирования пользователю
выводятся результаты прохождения
тестирования. При этом вычисляется оценка
– если процент правильных ответов меньше
переменной ос1, то оценка 2; до переменной
ос2 – оценка 3; до переменной ос3– оценка
4; более переменной ос3 – оценка 5. полученные
результаты отсылаются серверу, который
записывает их в таблицу студентов.
Схематически
описанная структура клиентской
части программы тестирования приведена
в приложении Б данного дипломного проекта.