Сетевая программа тестирования по дисциплинам

Автор: Пользователь скрыл имя, 13 Ноября 2011 в 11:24, дипломная работа

Краткое описание

В настоящее время использование компьютера во всех сферах деятельности человека привело к необходимости создания программных продуктов для решения поставленных задач. С помощью компьютера можно выполнять наиболее трудоемкие операции, выполнение которых непосредственно вручную занимает долгое время.
С развитием информационных технологий возникла необходимость внедрения компьютера не только в профессиональную область деятельности человека, но и в учебный процесс. Компьютер позволил людям облегчить работу с однотипной документацией, требующей одинакового оформления.

Оглавление

Введение
1 Анализ технического задания и возможные способы реализации поставленной задачи
2 Выбор инструментальных программных средств для решения поставленной задачи
3 Выбор аппаратных средств
4 Описание программы
5 Методика работы пользователя с программой
6 Экспериментальная часть
7 Защита данных
8 Организационно-экономическая часть
9 Санитарные нормы и правила при работе с ПЭВМ
Заключение
Литература
Приложение

Файлы: 15 файлов

2 Выбор инструментальных программных средств.doc

— 47.00 Кб (Открыть, Скачать)

3 Выбор аппаратных средств.doc

— 42.00 Кб (Открыть, Скачать)

4 Описание программы.doc

— 320.00 Кб (Скачать)

       4 Описание программы

       В соответствии с техническим заданием была создана сетевая программа  тестирования, вопросы по дисциплинам  которой содержатся в файле удаленной  базы данных InterBase с именем BAZATEST.gdb. Для работы программы тестирования по дисциплинам необходимо создать единую базу данных, к которой будут обращаться подключенные компьютеры.. Файл базы данных находится в одной папке с серверной частью разработанного программного продукта (Приложение А, папка Test(Server)).

       Структура созданной базы данных с описанием назначения полей и их типов приведена в таблицах 4.1, 4.2, 4.3, 4.4.

Таблица 4.1 Структура таблицы пароля PAROL

Поле Тип данных Назначение  поля
PASS Текст (VARCHAR(60)) Хранение зашифрованного пароля
Таблица 4.2 Структура таблиц дисциплин (Base*)
VOPROS Текст (VARCHAR(700)) Хранение текста вопроса
OTVET Текст (VARCHAR(700)) Хранение текста ответа
NEPR1 Текст (VARCHAR(700)) Хранение текста 1-го неправильного варианта ответа
NEPR2 Текст (VARCHAR(700)) Хранение текста 2-го неправильного варианта ответа
NEPR3 Текст (VARCHAR(700)) Хранение текста 3-го неправильного варианта ответа
OBJ BLOB(400,5) Хранение графического объекта (bitmap)
VARIANT Текст (VARCHAR(15)) Хранение названия варианта
SHABLON Текст (VARCHAR(1)) Определение шаблона  вопроса
Таблица 4.3 Структура таблицы параметров дисциплин SRISPRED
1 2 3
ID INTEGER Уникальный  номер имени таблицы
1
2 3
PREDMET Текст (VARCHAR(30)) Хранение названия предмета
BAZA Текст (VARCHAR(10)) Хранение имени  таблицы предмета
VREMIA Текст (VARCHAR(3)) Хранение количества времени (в сек.), отведенного на ответ
DATASOZD Дата (DATE) Хранение даты создания предмета
PAROCEN Текст (VARCHAR(15)) Хранение параметров определения оценки
Таблица 4.4 Структура таблицы списка студентов SPISSTUD
FAM Текст (VARCHAR(20)) Хранение фамилии  студента
IMIA Текст (VARCHAR(15)) Хранение имени  студента
GRUPPA Текст (VARCHAR(10)) Хранение названия группы
PREDMET Текст (VARCHAR(30)) Хранение названия предмета
VARIANT Текст (VARCHAR(15)) Хранение названия варианта
KOLPRAV Текст (VARCHAR(3)) Хранения количества правильных ответов
OCENKA Текст (VARCHAR(1)) Хранение оценки за пройденный тест

       4.1 Описание серверной  части

       Серверная часть программы тестирования представляет собой самостоятельное приложение, которое не требует обязательного установки соединения с клиентскими приложениями. Серверная часть предназначена для редактирования имеющихся дисциплин.

       

       Серверная часть программы устанавливается  на любой компьютер локальной сети. После запуска приложения для доступа к управлению предметами, содержащимися в базе тестирования, необходимо ввести пароль. При вводе неправильного пароля приложении автоматически закрывается. При вводе корректного пароля приложение посылает в локальную сеть сообщение, которое указывает на наличие в локальной сети компьютера с запущенной серверной частью программного продукта. Если же серверная часть приложения не будет запущена, то остальные компьютеры сети не смогут начать работу, так как не будет известно местонахождения файла базы тестирования в локальной сети. Подробнее о взаимодействии серверной и клиентских частей программы тестирования описано в пункте «4.3 Описание алгоритма работы программы» данного дипломного проекта.

       После установки соединения с клиентской часть программного приложения сервер тестирующей программы посылает в локальную сеть сообщение с указанием местоположения файла базы тестирования. Таким образом, нет необходимости пользователю вводить адрес базы тестирования вручную – это делается автоматически без участия пользователя.

       После запуска серверной части приложения тестирования пользователю становятся доступны функции управления дисциплинами, имеющимися в базе тестирования, и доступом к этим функциям со стороны пользователя:

  • добавление новой дисциплины;
  • редактирование дисциплины;
  • просмотр результатов проведения тестирования;
  • управление доступом к приложению;
  • получение справки на любом этапе выполнения программного продукта;
  • просмотр информации о создателях программного продукта.

       При добавлении новой дисциплины в базе тестирования создается новая таблица, в которую в последствии заносятся вопросы по созданной дисциплине.

       Добавление  новой дисциплины осуществляется следующим  образом:

       DM.ibtPredmeti.Last; //переход в конец таблицы

       i := DM.ibtPredmetiID.AsInteger; //получение уникального номера

       DM.ibtPredmeti.Insert; //переход в режим вставки новой записи

       DM.ibtPredmetiPREDMET.Text := eNewPred.Text; //имя дисциплины

       DM.ibtPredmetiBAZA.Text := 'Base' + IntToStr(i); //имя таблицы

       DM.ibtPredmetiVREMIA.Text := '60'; //время для ответа на вопрос

       DM.ibtPredmetiDATASOZD.AsDateTime := Now; //текущая дата

       DM.ibtPredmeti.Post; //принять изменения в таблице

       

       DM.IBQuery.SQL.Text := 'CREATE TABLE "Base' + IntToStr(i) + '" + ("VOP-ROS" VARCHAR(700), "OTVET" VARCHAR(700), "NEPR1" VARCHAR(700), "NEPR2" VARCHAR(700), "NEPR3" VARCHAR(700), "OBJ" BLOB SUB_TYPE SUMMARY SEGMENT SIZE 400, "VARIANT" VARCHAR(15), "SHABLON" VARCHAR(1));'; //выполнение SQL-запроса

       Имя вносимой дисциплины вводится пользователем  в текстовое поле eNewPred. Имя создаваемой таблицы имеет вид Base# (# – уникальный номер, извлекаемый из последней строки таблицы SPISPRED поля ID; присваивается переменной i). Время, отведенное для ответа на один вопрос, автоматически устанавливается в значение 60 секунд. Данный параметр можно изменить при редактировании дисциплины. Также в таблицу списка дисциплин заносится дата создания дисциплины – это позволяет в дальнейшем определять «устаревшие» дисциплины и при необходимости удалять их. Сама таблица создается с помощью запроса SQL (Structured Query Language, структурированный язык запросов для работы с базой данных). [3]

       При создании таблицы описываются все  поля – тип поля, его размер.

       SQL-запрос создания таблицы добавляемой дисциплины выглядит следующим образом:

       CREATE TABLE "Base' + IntToStr(i) + '" + ("VOPROS" VARCHAR(700), "OTVET" VARCHAR(700),"NEPR1" VARCHAR(700),"NEPR2" VARCHAR(700), "NEPR3" VARCHAR(700),"OBJ" BLOB SUB_TYPE SUMMARY SEGMENT SIZE 400,"VARIANT" VARCHAR(15),"SHABLON" VARCHAR(1));

       После выполнения данного запроса создается таблица Base# , имеющая структуру, описанную в таблице 5.1.

       Во  время добавления дисциплины предусмотрена  возможность проверки существования добавляемой дисциплины в базе тестирования. Эта возможность предусмотрена для предотвращения путаницы при работе клиентов программы тестирования в выборе необходимого предмета. Процедура проверки выглядит следующим образом:

       DM.ibtPredmeti.First; //переход в начало списка предметов

       i := 0; //переменная определения существования предмета

       

       Repeat If eNewPred.Text = DM.ibtPredmetiPREDMET.AsString Then i := 1; DM.ibtPredmeti.Next; Until DM.ibtPredmeti.Eof; //в цикле с постусловием Repeat-Until определяется наличие предмета – i=1, предмет существует

       Case i Of

       0: ShowMessage ('Предмет   "' + eNewPred.Text + '"   НЕ существует и еще не внесен в базу тестирования.');

       1: ShowMessage ('Предмет   "' + eNewPred.Text + '"   УЖЕ существует и внесен в базу тестирования.'); //пользователю выводится сообщение в соответствии со значением переменной i – 0 или 1

       Режим редактирования имеющихся дисциплин предоставляет несколько возможностей.

       Удаление выбранной дисциплины из базы тестирования предполагает удаление таблицы Base* из базы тестирования, а также удаление информации об удаленной дисциплине из таблицы SPISPRED. Фрагмент процедуры удаления выбранной дисциплины из базы тестирования выглядит следующим образом:

       If Application.MessageBox ('Вы хотите удалить предмет' , 'Удаление предмета' , MB_YESNO + MB_ICONQUESTION) = mrYes //подтверждение удаления дисциплины

       Then Begin

       DM.IBQuery.Active := False; компонент для выполнения SQL-запросов сделать неактивным

       DM.IBQuery.SQL.Text := 'DROP TABLE "' + DM.ibtPredmetiBAZA.AsString + '";'; //SQL-запрос на удаление таблицы из базы тестирования

       DM.ibtPredmeti.Delete; //удаление информации об удаленной дисциплине из списка имеющихся дисциплин

       DM.IBQuery.Active := True; //активизировать компонент для выполнения SQL-запроса на удаление дисциплины

       DM.ibtPredmeti.Close; DM.ibtPredmeti.Open; End; //обновление набора данных

       

       Удаление всех вопросов позволяет очистить выбранную дисциплину от всех вопросов. Эта операция избавляет пользователя от необходимости удалять каждый вопрос по отдельности. Реализация данной функции осуществлялась с помощью следующего программного кода:

       If Application.MessageBox ('Вы хотите удалить все вопросы из выбранного предмета???' , 'Удаление вопросов' , MB_YESNO + MB_ICONQUESTION) = mrYes //подтверждение удаления вопросов из дисциплины

       Then Begin

       DM.ibtBase.First; //переход к началу таблицы

       Repeat DM.ibtBase.Delete; DM.ibtBase.Next; Until DM.ibtBase.Eof; End; //в цикле удаляются все вопросы, пока не будет достигнут конец таблицы

       Добавление вопросов позволяет добавлять вопросы к дисциплине по четырем шаблонам: «Вопрос + 2 варианта ответа», «Вопрос + 3 варианта ответа», «Вопрос + 4 варианта ответа» и «Вопрос + объект + 4 варианта ответа». Выбор определенного шаблона осуществляется выбором соответствующего переключателя. Перед добавлением вопроса проверяется значение полей ввода вопроса и вариантов ответа с целью избежания записи вопроса с пустыми значениями. Введенные значения записываются в соответствующие поля таблицы Base# . При указании названия варианта автоматически при вводе текста проверяется наличие вводимого текста (пользователю предоставляется возможность автозаполнения названия варианта).

       Процедура автозаполнения поля для ввода варианта:

       if Length(ComboBox.Text) <= LastLength then

       begin LastLength := Length(ComboBox.Text); exit; end; //сравнение длины текста, если новая длина меньше старой – значит было удаление символов и автоподбор не нужен

       LastLength := Length(ComboBox.Text); //запоминание длины текста для следующего вызова процедуры

       //поиск  в списке начала строк, совпадающие с введенным текстом

       for i := 0 to ComboBox.Items.Count - 1 do begin

       //поиск  без учета регистра:

       if Copy(AnsiUpperCase(ComboBox.Items[i]), 1, Length(ComboBox.Text)) =

       AnsiUpperCase(ComboBox.Text) then begin ln := length(ComboBox.Text);

       //вставка текста

       ComboBox.Text := ComboBox.Items[i];

       //выделение добавленного блока текста

       

       ComboBox.SelStart := ln;

       ComboBox.SelLength := Length(ComboBox.Items[i]) – ln;

       Использование указанных шаблонов вопросов делает программу более функциональной, так как появляется возможность добавления вопроса по дисциплинам, в вопросах которых используются графические объекты (графики, рисунки, математические формулы и др.). Ниже приведен фрагмент программного кода добавления вопроса, содержащего объект, к дисциплине:

5 Методика работы пользователя с программой.doc

— 2.22 Мб (Открыть, Скачать)

6 Экспериментальная часть.doc

— 102.50 Кб (Открыть, Скачать)

7 Защита данных.doc

— 74.50 Кб (Открыть, Скачать)

8 Организационно-экономическая часть.doc

— 144.00 Кб (Открыть, Скачать)

9 Санитарные нормы и правила.doc

— 46.50 Кб (Открыть, Скачать)

~$Анализ технического задания и возможных способов решения п.doc

— 162 байт (Скачать)

Введение.doc

— 44.00 Кб (Открыть, Скачать)

Заключение.doc

— 29.50 Кб (Открыть, Скачать)

Литература.doc

— 35.00 Кб (Открыть, Скачать)

Приложение А.doc

— 32.50 Кб (Открыть, Скачать)

Реферат.doc

— 30.50 Кб (Открыть, Скачать)

Содержание.doc

— 34.50 Кб (Открыть, Скачать)

Информация о работе Сетевая программа тестирования по дисциплинам