Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

2.2.3 Передача результатов тестирования




2. 2. 3 Передача результатов тестирования

Для передачи клиенту результатов проведенного тестирования разработана функция write_results():

def write_results (user_dict, out_points=0, out_tests=0, out_answers=0):
print (D, '< i> < b> Результаты тестирования: < /b> < /i> ',
'< br> Имя & ndash; ', user_dict[ 'name' ])
if out_points:
print ( '< br> Получено баллов & ndash; ',
user_dict[ 'points' ], ' из ', user_dict[ 'number_test' ])
if out_tests:
print ( '< br> Тесты & ndash; ' )
for el in user_dict[ 'tests' ]: print (el. split( '. ' )[0])
if out_answers:
print ( '< br> Ответы & ndash; ' )
for el in user_dict[ 'answers' ]: print (el)
print ( '< br> Оценка & ndash; ' )
m=user_dict[ 'points' ]
if m==0: mark= " Неудовлетворительно"
elif m==1: mark= " Удовлетворительно"
elif m==2: mark= " Хорошо"
else: mark= " Отлично"
print ( '" ', mark, '" ' ],

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

· name – имя тестируемого;

· number_test – число проведенных тестов;

· tests – список этих тестов;

· answers – список ответов тестируемого;

· points – число набранных при тестировании баллов

и необязательные (опциональные) параметры: out_points, out_tests и out_answers, которые указывают, надо ли передавать для вывода на стороне клиента значение соответствующей компоненты тестирования (значение 1), или нет (значение 0). По умолчанию все они имеют значение 0, т. е. если не указывать эти аргументы при вызове функции write_results(), то такие данные, как число проведенных тестов, список тестов, список ответов и число баллов выводиться не будут. Будет выведено только имя тестирующего и полученная им оценка (см. работу программы testing. py в подразделе 2. 2. 2).
Чтобы получить наиболее полную информацию о проведенном тестировании, нужно вызвать функцию write_results(), указав в ней значения всех необязательных аргументов, равными 1:

write_results(user_dict, out_points=1, out_tests=1, out_answers=1)

При этом клиенту будет передана информация в следующем виде:

Результаты тестирования:
Имя – Сидоров Евгений
Получено баллов – 3 из 3
Тесты – Тест №3 Тест №1 Тест №5
Ответы – 100 010 111
Оценка – " Хорошо "

Оглавление

#! c: /Documents and Settings/ZYKOV/AppData/Local/Programs/Python/Python35-32/python. exe
print ( " Content-Type: text/html" )
print ()
import cgi, cgitb, pickle, random
from my_mod import write_results, D
cgitb. enable()
data=cgi. parse()
f=open('all_users. dat', 'rb')
if " name" in data:
if data[" name" ][0]=='all':
print(D, 'all')
while True:
try:
user_dict=pickle. load(f)
write_results(user_dict, points=1, tests=1, answers=1)
except EOFError: break
else:
found=False
while True:
try:
user_dict=pickle. load(f)
if user_dict[" name" ]==data[" name" ][0]:
write_results(user_dict, points=1, tests=1, answers=1)
found=True
except EOFError:
if not found:
print(D, data[" name" ][0], ": Результаты тестироемого не найдены" )
break
f. close()

Индивидуальные задания

Разработать приложение на базе технологий " клиент-сервер" и AJAX, осуществляющее тестирование пользователя на стороне клиента.
Клиентскую часть реализовать в виде HTML-документа с включенными фрагментами JavaScript, задачами которого являются:

· прием имени пользователя (способ реализации указан в табл. 1);

· передача на сервер имени пользователя с использованием AJAX-технологии;

· прием из сервера тестов с использованием AJAX-технологии и визуализация их на Web-странице (способ реализации указан в табл. 1);

· прием ответов пользователя (способ реализации указан в табл. 1);

· прием из сервера результатов тестирования с использованием AJAX-технологии и визуализация их на Web-странице (так же, как и тесты).

В задачи серверной части приложения входит:

· Разработка не менее четырех тестов в виде списка строк по одной из следующих тем (язык Python):

§ 1) строки;

§ 2) кортежи и списки;

§ 3) множества и сериализация;

§ 4) словари;

§ 5) операторы;

§ 6) функции и сортировка элементов;

§ 7) работа с файлами;

и сохранение его на диске в виде двоичного файла. Номер темы для варианта указан в табл. 1;

· Каждый тест состоит из заголовка, в котором указывается номер теста, основной части и эталонного значения ответа. Основная часть теста состоит из вопроса/утверждения и трех вариантов ответа. При разработке вариантов ответов необходимо реализовать одно из следующих правил определения эталонного значения ответа:

§ 1) это номер единственного истинного варианта ответа;

§ 2) это номер единственного ложного варианта ответа;

§ 3) это 1 – если большинство вариантов ответов истинные, и 0 – если большинство вариантов ответов ложные;

номер правила указан в табл. 1;

· прием данных от клиента;

· определение фамилии и ответов тестируемого пользователя;

· выбор случайным образом одного из тестов и передача его на сторону клиента;

· число тестов, переданных пользователю должно быть не менее трех;

· формирование словаря, содержащего такие данные о процессе тестирования:

§ 1)фамилию пользователя, число выполненных тестов, число правильных ответов;

§ 2)фамилию и ответы пользователя, число правильно выполненных тестов;

§ 3)фамилию и ответы пользователя, правильные ответы;

номер содержимого словаря для варианта указан в табл. 1;

· после окончания тестирования передача клиенту собранных данных.

Таблица 1 – Параметры индивидуальных заданий

Номер п/п Ввод имени Ввод ответов Вывод тестов Тема тестов Правило тестов Данные словаря
< input> prompt() prompt() 1) 1) 2)
< input> prompt() < div /> 2) 2) 3)
prompt() < input> < div /> 3) 3) 1)
< input> prompt() prompt() 4) 1) 2)
< input> prompt() < div /> 5) 2) 3)
prompt() < input> < div /> 6) 3) 1)
< input> prompt() prompt() 7) 1) 2)
< input> prompt() < div /> 1) 2) 3)
prompt() < input> < div /> 2) 3) 1)
< input> prompt() prompt() 3) 1) 2)
< input> prompt() < div /> 4) 2) 3)
prompt() < input> < div /> 5) 3) 1)
< input> prompt() prompt() 6) 1) 2)
< input> prompt() < div /> 7) 2) 3)
prompt() < input> < div /> 1) 3) 1)
< input> prompt() prompt() 2) 1) 2)
< input> prompt() < div /> 3) 2) 3)
prompt() < input> < div /> 4) 3) 1)
< input> prompt() prompt() 5) 1) 2)
< input> prompt() < div /> 6) 2) 3)

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...