Автор: Пользователь скрыл имя, 13 Ноября 2011 в 11:24, дипломная работа
В настоящее время использование компьютера во всех сферах деятельности человека привело к необходимости создания программных продуктов для решения поставленных задач. С помощью компьютера можно выполнять наиболее трудоемкие операции, выполнение которых непосредственно вручную занимает долгое время.
С развитием информационных технологий возникла необходимость внедрения компьютера не только в профессиональную область деятельности человека, но и в учебный процесс. Компьютер позволил людям облегчить работу с однотипной документацией, требующей одинакового оформления.
Введение
1 Анализ технического задания и возможные способы реализации поставленной задачи
2 Выбор инструментальных программных средств для решения поставленной задачи
3 Выбор аппаратных средств
4 Описание программы
5 Методика работы пользователя с программой
6 Экспериментальная часть
7 Защита данных
8 Организационно-экономическая часть
9 Санитарные нормы и правила при работе с ПЭВМ
Заключение
Литература
Приложение
Case
StrToInt(DM.ibqBaseSHABLON.
1: Begin //шаблон 1
Randomize; //процедура исключения повторения случайных значений
Form_Main.plShablon1.
Form_Main.lblVopros1.
Case Random(2)+1 Of //выбор случайного значения (1 или 2)
1:Begin //выпало значение 1
Form_Main.lblVar11.
Form_Main.lblVar12.
End; //1-м идет текст ответа, затем неправильный вариант
2:Begin //выпало значение 2
Form_Main.lblVar11.
Form_Main.lblVar12.
End; //1-м идет неправильный вариант, затем текст ответа
При вопросе, имеющем 2 варианта ответа, пользователю становится видной панель 1-го шаблона с тремя надписями – вопросом и двумя вариантами ответов, один из которых правильный. Используя процедуру Random, определяется порядок расположения вариантов ответов. При значении процедуры Random(2)+1, равном 1, ответ будет выведен в первой надписи, а при значении, равном 2, ответ будет выведен во второй надписи. Таким образом, неизвестно, в какой именно надписи будет выведен ответ. Подобным образом выводятся вопросы шаблонов 2, 3 и 4.
Выбор варианта ответа осуществляется щелчком левой кнопки мыши по надписи с вариантом ответа. При этом происходит проверка соответствия текста надписи правильному ответу. Если текст надписи равен правильному ответу, то переменная kolprav (переменная подсчета правильно данных ответов) увеличивается на 1 (kolprav := kolprav + 1). Значение этой переменной необходимо для определения оценки в целом за весь тест.
При ответе для ограничения времени, отведенного для ответа на вопрос теста, используется таймер, который отсчитывает заданное время. При оставшемся времени, равном 10 секунд, второй таймер начинает мигать, сигнализируя пользователю об истечении отведенного на ответ времени. Мигание осуществляется скрытием и отображением рисунка на панели времени. Ниже приведены процедуры таймеров отсчета времени и мигания:
//мигание рисунка при истекании времени
If h = 1 Then Begin imgTime.Visible := True; h:=0; End
Else Begin imgTime.Visible:=False; h:=1; End; //с интервалом в 1 секунду в зависимости от значения переменной h рисунок виден или не виден; значение переменной изменяется на противоположное
//обратный отсчет времени
vremia := vremia – 1; //уменьшение времени на 1 секунду
If vremia < 11 Then tImage.Interval := 500 Else tImage.Interval := 0; //если до конца осталось 10 секунд, рисунок мигает
If (vremia = 0) And (DM.ibqBase.Eof) Then Begin tImage.Interval := 0; tVremia.Interval := 0; Konec; End //завершение теста при истекании времени и вопросов
Else If vremia = 0 Then Begin //истекание времени
DM.ibqBase.Next; //переход к следующему вопросу
vremia := StrToInt (DM.ibqPredmetiVREMIA.Text); //определение времени
lblTime.Caption := DM.ibqPredmetiVREMIA.Text; //вывод времени
tImage.Interval := 0; End; //остановка мигания рисунка
Как только время становится равным 0, клиентская программа автоматически переключается на следующий вопрос. При ответе на все вопросы происходит автоматический вывод пользователю результатов тестирования с указанием количества правильных ответов, количества вопросов теста, оценки, а также личных данных, необходимых для определения личности студента, проходившего теста.
Ниже приведен фрагмент процедуры завершения теста Konec, в котором производится подсчет оценки:
ocenka := kolprav / kolvop; //вычисление оценки
oc1 := StrToFloat (Copy (DM.ibqPredmetiPAROCEN.Text, 1, 4) ); //граница оценки «3»
oc2 := StrToFloat (Copy (DM.ibqPredmetiPAROCEN.Text, 6, 4) ); //граница оценки «4»
oc3 := StrToFloat (Copy (DM.ibqPredmetiPAROCEN.Text, 11, 4) ); //граница оценки «5»
//вывод соответствующей оценки
If ocenka < ос1 Then Form_Main.lblResOcenka.Caption := '2';
If
( ocenka >= ос1 ) And ( ocenka < ос2 ) Then Form_Main.lblResOcenka.Cap-
If
( ocenka >= ос2 ) And ( ocenka < ос3 ) Then Form_Main.lblResOcenka.Cap-
If ocenka >= ос3 Then Form_Main.lblResOcenka.Caption := '5';
Параметры определения оценки хранятся в одном текстовом поле PAROCEN таблицы SPISPRED в формате X#X#X, где вместо Х указываются границы соответствия процента правильных ответов определенной оценке. Переменной ос1 присваивается значение определения оценки на «3», переменной ос2 – на «4», переменной ос3 – на «5».
Оценка за пройденный тест вычисляется по формуле kolprav / kolvop (количество правильных ответов, деленное на количество вопросов теста). В зависимости от полученного значения пользователю в тексте надписи выводится оценка. Если процент правильных ответов меньше переменной ос1, то оценка 2; до перемнной ос2 – оценка 3; до переменной ос3 – оценка 4; более перемнной ос3 – оценка 5.
Результаты тестирования передаются серверу программного продукта, который записывает полученные данные в таблицу SPISSTUD.
Выполняемый тест можно завершить на любом этапе его выполнения – начиная от ввода сведений о студенте и заканчивая ответом непосредственно на предлагаемые вопросы. При этом происходит подсчет результатов выполнения теста и записи информации в базу тестирования.
Также как и в серверной части программы тестирования, в клиентской части имеется возможность получения справочной информации по работе с программой. Отличие состоит в том, что при обращении к справочным сведениям при выполнении теста происходит остановка проведения тестирования и подсчитывается результат его выполнения. При обращении к справке запускается файл Help.htm, расположенный в одной директории с клиентской частью (Приложение А, папка Test(Client)).Справочные материалы снабжены необходимыми текстовыми комментариями и иллюстрациями.
Просмотр информации о создателях позволяет пользователю ознакомиться с разработчиками тестирующего программного обеспечения и при необходимости обратиться к ним с указанием недостатков используемой программы.
4.3 Описание алгоритма работы программы
4.3.1 Описание настройки соединения серверной и клиентской частей
Для
организации связи между
В
данном дипломном проекте для
организации связи между
Для
организации связи между
Ниже приведен код прослушивания входящих сообщений сервером программного продукта.
procedure
TForm_Main.IdUDPServerUDPRead(
var Soobshenie, Param : String; //переменные входящих пакетов
begin
SetLength(Param, 7); //определение размера входящего сообщения
AData.ReadBuffer(Param[
If
Param='#<Helo>' Then IdUDPServer.Broadcast('#<ANSW>
If
Param='#<GTDB>' Then IdUDPServer.Broadcast('#<STBD>
IdUDPServer.Broadcast('
end; …
IdUDPServer.Broadcast('
Таким образом, серверная часть программы тестирования постоянно «прослушивает» входящие сообщения, отсылаемые клиентами из локальной сети на порт 5555. В зависимости от полученного сообщения сервер либо посылает сообщение-отклик (подтверждение наличия сервера в локальной сети), либо посылает сообщение с указанием месторасположения базы тестирования.
Подобным образом входящие сообщения обрабатываются слушающим потоком со стороны клиента.
procedure
TForm_Main.IdUDPServerUDPRead(
var Soobshenie,Param:String; //переменные входящих пакетов
begin
SetLength(Param, 7); //определение размера входящего сообщения
AData.ReadBuffer(Param[
If
Param='#<SERV>' Then IdUDPClient.Broadcast('#<Helo>
If
Param = '#<ANSW>' Then Begin IpServer := ABinding.PeerIP; IdUDPClient.Broadcast('#<GTDB>
If Param = '#<STBD>' Then Begin SetLength (Soobshenie, AData.Size-7); ADa-ta.ReadBuffer (Soobshenie[1], Length(Soobshenie) ); DM.IBDatabase.DatabaseName := IpServer + ':' + Soobshenie; End; //указание пути к базе тестирования
If Param = '#<ENDS>' Then Begin DM.IBDatabase.Connected := False; ShowMessage ('Нет соединения с сервером!!!'#13'Обратитесь к администратору!'); //отключение клиента от сервера
… End;
Таким образом, клиентская часть программы тестирования постоянно «прослушивает» входящие сообщения, отсылаемые сервером по локальной сети на порт 5555. В зависимости от полученного сообщения клиент либо посылает сообщение-отклик (подтверждение получения сообщения от сервера), либо посылает сообщение о наличии в локальной сети клиента. Путь к базе тестирования формируется из IP-адреса сервера (переменная IpServer) и физического указания месторасположения базы тестирования на компьютере-сервере.
При получении клиентом сообщения #<ENDS> происходит разрыв соединения с сервером. При этом результаты прохождения тестирования не сохраняются, а клиент переходит в ожидание включения сервера в локальной сети.
По завершении прохождения тестирование от клиентской части программы тестирования пересылаются результаты на сервер, где они записываются, а пользователь серверной части может начать их анализ.
Информация о работе Сетевая программа тестирования по дисциплинам