Файл: Создание системы тестирования с одним правильным ответом.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.03.2023

Просмотров: 300

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Формируется из журнала тестирования.

Проектирование ИС тестирования

Описание входных, нормативно-справочных и итоговых документов

Входная информация представлена в таблице 1.

Таблица 1

Описание входных данных

Данные

Атрибуты

Участник

ФИО, ДР, пол, админ, пароль, группа.

Тест

Название, порог, описание, предмет, отведено времени.

Вопрос

Название, номер, картинка, тест.

Ответ

Название, вопрос, свой вариант, баллы, правильный ответ.

Список предметов

Участник, предмет.

Журнал тестов

Тест, участник, дата сдачи, время прохождения, итоговое количество баллов, пройдено.

Журнал ответов

Журнал тестов, ответ, введённый ответ, результат.

Нормативно-справочная информация представлена в таблице 2.

Таблица 2

Нормативно-справочная информация

Справочник

Связанные таблицы

Группа

Участники

Предмет

Список предметов, тест

Результатная информация – это отчёты:

  • отчёт о тестировании по студенту;
  • отчёт о тестировании за период;
  • подробный отчёт о тестировании.

В таблице 3 представлено описание результатных документов

Таблица 3

Описание результатных документов

Отчёт

Поля

Условие

Отчёт о тестировании по студенту

название теста; порог прохождения; дата сдачи; набранные баллы; сдано или нет.

По студенту

Отчёт о тестировании за период

ФИО студента; группа; дата сдачи; название теста; порог сдачи; набрано баллов; сдано или нет.

За период

Подробный отчёт о тестировании

название теста; ФИО студента; затраченное время; вопрос; выбранные варианты ответа; верность ответа; общее количество баллов и порог прохождения.

Выбор записи из журнала тестирования

Проектирование логической модели БД

Выделены сущности предметной области:

  • группа;
  • предмет;
  • участники;
  • список предметов;
  • тест;
  • вопрос;
  • ответ;
  • журнал тестов;
  • журнал ответов.

В таблице 4 представлено описание связей между сущностями.


Таблица 4

Связи между сущностями

Сущность 1

Сущность 2

Тип связи

Разрешено Null

Группа

Участник

Один-ко-многим

Да

Участник

Список предметов

Один-ко-многим

Нет

Предмет

Список предметов

Один-ко-многим

Нет

Предмет

Тест

Один-ко-многим

Нет

Тест

Вопрос

Один-ко-многим

Нет

Вопрос

Ответ

Один-ко-многим

Нет

Тест

Журнал тестов

Один-ко-многим

Нет

Люди

Журнал тестов

Один-ко-многим

Нет

Журнал тестов

Журнал ответов

Один-ко-многим

Нет

Ответ

Журнал ответов

Один-ко-многим

Да

На рисунке 5 представлена логическая модель данных.

Рисунок 5 – Логическая модель

Проектирование интерфейса системы

В системе требуется допустить возможность двух типов пользователей:

  • преподаватель;
  • студент.

Преподавателю должны быть доступны следующие функции:

  • авторизация;
  • управление базой участников тестов;
  • ведение справочников;
  • создание тестов;
  • создание вопросов и ответов;
  • тестирование;
  • формирование отчётов.

Тестируемому учащемуся должно быть доступно:

  • авторизация;
  • пройти тестирование.

На рисунке 6 представлена Use Case диаграмма работы пользователя «преподаватель» в системе тестирования.

Рисунок 6 – Use Case диаграмма пользователя «преподаватель»

На рисунке 7 представлена диаграмма вариантов использования пользователя «студент».

Рисунок 7 – Use Case диаграмма пользователя «студент»

Для организации работы пользователей в системе потребуется реализовать графический интерфейс. На рисунке 8 представлен сценарий диалога с пользователем.

Рисунок 8 – Сценарий диалога

Разработка ИС тестирования

Каталог базы данных и запросы к ней

Потребуется реализовать базу данных со следующими таблицами:


  • «GroupStud» – группа;
  • «Subj» – предмет;
  • «SubjList» – список предметов;
  • «People» – участники;
  • «Test» – тест;
  • «Quest» – вопросы;
  • «Answer» – ответы;
  • «Journaltest» – журнал тестирования;
  • «Journalanswer» – журнал ответов.

На рисунке 9 представлена физическая модель базы данных.

Рисунок 9 – Физическая модель

В таблицах 5 – 13 представлено описание базы данных.

Таблица 5

«GroupStud»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

Name

Varchar

50

Not null

Таблица 6

«Subj»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

Name

Varchar

50

Not null

Таблица 7

«People»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

Name

Varchar

50

Not null

Sex

Char

1

Not null

Birthdate

Datetime

-

Not null

GroupStud

Int

-

FK

Admin

Bit

-

Pass

Varchar

50

Таблица 8

«SubjList»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

People

Int

-

FK, not null

Subj

Int

-

FK, not null

Таблица 9

«Test»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

Name

Varchar

50

Not null

Description

Varchar

200

Porog

Int

Not null

Subj

Int

-

FK, not null

TestTime

Int

-

Таблица 10

«Quest»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

Numb

Int

-

Name

Varchar

Max

Not null

Pic

Image

-

Test

Int

-

FK, not null


Таблица 11

«Answer»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

Quest

Int

-

FK, not null

Name

Varchar

100

Not null

Point

Int

-

Not null

EnterAnswer

Bit

-

RightAnswer

Varchar

100

Таблица 12

«JournalTest»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

People

Int

-

FK, not null

Test

Int

-

FK

Totla

Int

-

Passed

Bit

-

DateTest

Datetime

-

Not null

TestTime

Таблица 13

«JournalAnwer»

Поле

Тип данных

Длина

Ограничения

ID

Int

-

PK

JournalTest

Int

-

FK, not null

Answer

Int

-

FK

Score

Int

-

EnterAnswer

varchar

100

На рисунке 10 представлена схема данных полученной базы данных в MS SQL Server 2017.

Рисунок 10 – Физическая модель (схема данных в MS SQL Server Management Studio)

Потребуется реализовать хранимую процедуру расчёта общего балла тестирования. Код процедуры:

CREATE PROCEDURE [dbo].[CalcTotalTest]

-- Add the parameters for the stored procedure here

@JournalTestID int

AS

BEGIN

DECLARE @Total int;

DECLARE @Porog int;

SELECT @Porog=t.Porog

FROM Test t

INNER JOIN JournalTest jt ON t.ID=jt.Test

WHERE jt.ID=@JournalTestID;

SELECT @Total=SUM(Score) FROM JournalAnswer WHERE JournalTest=@JournalTestID;

UPDATE JournalTest

SET

Total=@Total

,Passed=CASE WHEN @Total>=@Porog THEN 1 ELSE 0 END

WHERE ID=@JournalTestID

END

Помимо этого, создана вспомогательная процедура нумерации вопросов:

CREATE PROCEDURE [dbo].[sp_RankQuestion]

-- Add the parameters for the stored procedure here

@TestID int

AS

BEGIN

DECLARE @TableVar TABLE(idt int, Nm int);

insert into @TableVar (idt, Nm)

select ID, ROW_NUMBER() over (order by ID) from Quest where Test=@TestID

update Quest

set Numb=(select NM from @TableVar where idt=Quest.ID)

where Test = @TestID

END

Потребуется реализовать запросы для формирования:

  • отчёт о тестировании по студенту;
  • отчёт о тестировании за период;
  • подробного результата тестирования.

SQL-коды запроса для отчёта о тестировании по студенту:

Select t.Name AS [Тест]

, t.Porog AS [Порог]

, CONVERT(nvarchar(10), jt.DateTest, 104) AS [Дата сдачи]

, jt.Total AS [Набрано]

, case jt.Passed when 1 then 'Да' else 'Нет' end AS [Сдано]

From JournalTest jt

left join Test t on t.ID=jt.Test

Where jt.People=:pr

Order by [Тест], [Дата сдачи]

SQL-коды запроса для отчёта о тестировании за период:

Select p.Name AS [Студент]

, d.Name AS [Группа]

, CONVERT(nvarchar(10), jt.DateTest, 104) AS [Дата сдачи]

, t.Name AS [Тест]

, t.Porog AS [Порог]

, jt.Total AS [Набрано]

, case jt.Passed when 1 then 'Да' else 'Нет' end AS [Сдано]

From JournalTest jt

left join Test t on t.ID=jt.Test

left join People p on p.ID=jt.People

left join GroupStud d on d.ID=p.GroupStud

Where jt.DateTest between :sd and :ed

Order by [Студент], [Дата сдачи]

SQL-коды запроса для отчёта о подробном результате тестирования:

select

(convert(varchar(10),jt.DateTest,104) + ' ' + t.Name) as [Тест]

, p.Name as [Студент]

, cast(q.Numb as varchar(5))+'. '+q.Name as [Вопрос]

, case when isnull(a.EnterAnswer,0)=0 then a.Name else ja.EnterAnswer end as [Ответ]

, case when isnull(ja.Score,0)=0 then 'Нет' else 'Да' end as [Верно]

, 'Порог прохождения '+cast(t.Porog as varchar(5))+'. Набрано '+cast(jt.Total as varchar(5)) as [Результат]

from JournalTest jt

inner join People p on p.ID=jt.People

inner join Test t on t.ID=jt.Test

inner join JournalAnswer ja on ja.JournalTest=jt.ID

inner join Answer a on a.ID=ja.Answer

inner join Quest q on q.ID=a.Quest

where jt.ID=:idJT

Состав системы

Потребуется реализовать систему, которая включает в себя следующие классы:

  • TfrmLogin;
  • TfrmMain;
  • TfrmGrid;
  • TfrmQuestAnswer;
  • TfrmTest;
  • TfrmReport;
  • TDM.

В таблице 14 представлено описание классов.

Таблица 14

Описание классов системы

Класс

Описание

TfrmLogin

Описывает форму авторизации в системе

TfrmMain

Описывает главную форму приложения

TfrmGrid

Описывает форму обработки табличных данных

TfrmQuestAnswer

Описывает форму создания вопросов и ответов по тесту

TfrmTest

Описывает форму тестирования

TfrmReport

Описывает форму формирования отчётов

TDM

Описывает контейнер данных

На рисунке 11 представлена диаграмма классов.

Рисунок 11 – Диаграмма классов

Были разработаны алгоритмы работы в системе преподавателя и тестирование студента.

Алгоритм работы преподавателя в системе представлен ниже:

1. Начало.

2. Вход в систему.

3. Указать справочную информацию? Если нет, то к пункту 6, если да, то к следующему.

4. Выбрать справочник и внести данные.