Создание тренажерно-тестирующей системы
Рефераты >> Программирование и компьютеры >> Создание тренажерно-тестирующей системы

Для загрузки данных в таблицу UserLog и изменения записи в таблице UserReg будем использовать форму выдачи пользователю логина и пароля (форма 6). Эта форма связана с предыдущей формой по ключевому полю Id. После выдачи логина и пароля пользователю необходимо изменить поле Registered записи о нем в таблице UserReg с 0 на 1.

Макет формы выдачи пользователю логина и пароля. Форма 6.

Список пользователей, которые ожидают завершения регистрации.

(Претенденты на получение логина и пароля)

Выберите пользователя, которому выдать логин и пароль:

Фамилия (LName)

Имя (FName)

Отчество (MName)

E-mail (Email)

Иванов

Иван

Иванович

ivan@com.ru

… … …

Петров

Петр

Петрович

petr@ru.com

Логин

 

(Login)

Пароль

 

(Pwd)

Выдать

Для входа в систему нужна форма, принимающая логин и пароль пользователя для проверки их в базе данных (форма 7). Это простая форма, связанная с таблицей UserLog полями Login и Pwd.

Макет формы идентификации. Форма 7.

Логин:

 

(Login)

Пароль:

 

(Pwd)

Войти

Очистить

Для добавления нового теста в базу данных используется форма 8. Ей необходимо указать только имя файла с добавляемым тестом. Формат файла определен выше. Эта форма наполняет и связывает таблицы TestCom, Tests, Tasks, Answ.

Макет формы добавления нового теста. Форма 7.

Имя файла с тестом

С:\…\test23.txt

Создать тест

Очистить

5.3. Обобщенный алгоритм решения задачи и его декомпозиция на модули (функции).

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

Функционально-технологическая схема и алгоритм тестирования.

Рис. 3. Общая функционально-технологическая схема подсистемы тестирования.

Подсистема тестирования может быть разбита на несколько основных этапов - модулей, реализуемых средствами СУБД (запросы, отчеты). Блок-схема алгоритма подсистемы тестирования приведена на рис. 4.

Рис. 4. Блок-схема алгоритма подсистемы тестирования

5.4. Детальные алгоритмы реализации отдельных модулей задачи.

Модуль 1.1. Проверка логина и пароля.

На входе имеем: login – логин пользователя, password – пароль пользователя.

Посылам запрос к SQL серверу:

SELECT * FROM UserReg, UserLog WHERE Login = ‘login’ AND Pwd = ‘password’ AND UserReg.Id = UserLog.Id Если результат запроса не пустой, то считаем, что пользователь авторизовался успешно, также в результате запроса имеем все его данные – ФИО, адрес, …

Модуль 1.2 Формирование теста.

На входе имеем: Test_Un – номер теста, который выбрал пользователь для прохождения.

Посылам запрос к SQL серверу:

SELECT Task_Un FROM Tests WHERE Test_Un = Test_Un

В результате получаем набор (массив) номеров задач, которые соответствуют этому тесту.

Модуль 1.3. Установка случайного порядка следования задач.

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

Посылам запрос к SQL серверу:

SELECT Test_Portion FROM TestCom WHERE Test_Un = Test_Un

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

Модуль 1.4. Установка случайного порядка следования ответов.

На входе: Task_Un – номер задачи, для которой выбираем ответы.

Посылам запрос к SQL серверу:

SELECT * FROM Answ WHERE Task_Un = Task_Un

Результат – массив ответов, который также «перемешиваем».

Модуль 1.5. Отображение задачи и вариантов ответов.

На входе: Task_Un – номер задачи, текст которой нужно вывести. Answers – массив вариантов ответов для этой задачи.

Посылам запрос к SQL серверу:

SELECT Task_Cont FROM Tasks WHERE Task_Un = Task_Un

Результат – тело задачи в формате HTML, его и выводим.

Для каждого варианта ответа посылам запрос к SQL серверу:

SELECT Answ_Cont FROM Answ WHERE Answ_Un = Answers[i]

Результат – тело варианта ответа в формате HTML, его и выводим.

Модуль 1.6. Проверка правильности ответов и вывод результата теста.

На входе: Answer – номер ответа, который выбрал пользователь.

Посылам запрос к SQL серверу:

SELECT Answ_True FROM Answ WHERE Answ_Un = Answer

Результат – 0 (не правильный) или 1 (правильный) ответ. Этот результат заносим в таблицу History и храним до конца теста.


Страница: