Часто проведение областных олимпиад требует шифрование участников. Это связано с недоверием к системе тестирования. Я решил описать, как это происходило в предыдущие годы (2002 на пример, 2003 - был без шифрования).
Каждому участнику перед началом очередного тура олимпиады присваивается случайное секретное уникальное число, известное только одному из членов жюри и самому участнику и не известное системе тестирования.
Каждый участник дает имя файла SSSSccDN.* здесь SSSS - код участника в текущем дне СС - идентификатор класса (01 02 03 04 05 06 07 08 09 10 11) D - номер дня T - номер задачи в текущем дне
И в таком виде задачи пакетно отсылаются на систему тестирования. После получения результатов тестирования и построения таблицы результатов (в результатах - коды участников), жюри сообщает системе тестирования соответствие ФИО участника и его кода. В таблице появляются реальные люди.
Во время областной олимпиады в 2 тура на самом деле, для каждого участника будет
заводится 3 логина:
первый - реальный,
второй - шифрованный участник в 1 день,
третий - шифрованный участник во 2 день
Задачи сдаются от имени второго и третьего логина. После открытия кодов, все результаты от шифрованных участников переходят реальным.
UPDATE TestingLog SET UserID = t.Main FROM ( SELECT Pupils.ID AS Slave, Codes.ID AS Main FROM Codes LEFT JOIN Pupils ON ( Last LIKE Codes.Code1+'%' OR Last LIKE Codes.Code2+'%' ) ) t WHERE UserID = t.Slave