Интерфейс пользователя серверной части приложения мало отличается от клиентской. Он также представлен несколькими закладками, но в отличие от клиента имеет лишь две из них, это «Результаты» и «Полный лог».
Рисунок 1.3. Закладка «Личный лог»
В соответствии с рисунком 1.4, на закладке «Результаты», отражается текущая информация по каждой команде или ученике.
Рисунок 1.4. Окно результатов олимпиады доступное на сервере
В таблице результатов присутствует дополнительная колонка «C/D» показывающая текущий статус подключения участника к серверу.
Здесь символ «C» (от англ. Connected - соединен) говорит о том, что соединение с данным участником установлено, а символ «D» (от англ. Disconnected - разъединен) о том, что соединение с участником отсутствует.
Так же как и в клиентской части, следующие колонки показывают результаты проверки решений присланных участниками. Причем каждая колонка, вплоть до колонки «Штрафные очки», соответствует одной задаче. Ячейки этих колонок могут находиться в трех состояниях, различающихся цветом их заднего фона:
· белый - характерен для ячеек, по которым задание соответствующего участника ни разу не было получено сервером на проверку;
· желтым - окрашены ячейки в пересечении участник - задание, если участник пробовал сдать это задание, но присланное им решение, не прошло какой либо из тестов, либо не было скомпилировано;
· зеленый - показывает, что задание соответствующего участника было получено на проверку и успешно прошло все тесты.
Число, указанное в этих ячейках сообщает о том, какое количество попыток было предпринято участником, чтобы сдать задание.
В соответствии с рисунком 1.5, вторая закладка, «Полный лог», позволяет постоянно следить за работой сервера. В логе присутствует специфическая цветовая гамма, упрощающая оператору, воспринимать отображаемую в нем информацию. Большинство сообщений лога выводятся черным цветом, самые важные из сообщений - синим шрифтом, а все ошибки выводятся красным.
Рисунок 1.5. Пример лога сервера
Функциональность сервера, по отношению к клиенту, расширена, так как позволяет производить загрузку и сохранение данных по проведенной работе, сохранять результаты работы и лог проведения (доступно и на клиенте), а также останавливать работу сервера для всех клиентов, без закрытия при этом самого приложения-сервера.
Как на клиенте, так и на сервере доступен пункт меню View (Вид) [4].
1.4.3 Описание структуры хранения данных на сервере
В целях упрощения настройки и администрирования сервера, все его настройки и списки входных данных располагаются в виде обычных текстовых файлов в каталоге сервера.
Системой предусмотрены следующие подкаталоги:
· TestOfFiles - предназначен для хранения используемых файлов компиляторов;
· Teams - содержит информацию по участникам;
· Tasks - содержит информацию по заданиям, которые предлагаются для решения.
Содержимое каталогов регулируется и настраивается учителем, и должно быть готово до запуска сервера.
1.4.4 Подготовка компиляторов
Каталог «TestOfFiles» обязательно должен содержать файл «index.txt», в котором требуется указать:
· полное название языка программирования;
· имя подкаталога, в котором расположены файлы компилятора;
· расширение файлов текста программ, характерное для этого языка программирования.
Эти характеристики указываются в том порядке, в котором они были перечислены выше, между собой они должны быть разделены знаком табуляции.
1.4.5 Подготовка списков участников
Информация по участникам хранится в файле «index.txt» расположенном в подкаталоге «Teams». Структура этого файла аналогична описанию компиляторов, и содержит следующую информацию:
· полное название участника;
· короткое (сокращенное) название, на английском языке;
· пароль участника на регистрацию в системе.
Эти характеристики указываются в порядке, в котором они были перечислены выше, между собой они должны быть разделены знаком табуляции. Описание каждого участника должно начинаться с новой строки.
К короткому названию участника также предъявляются следующие требования:
· оно не должно содержать символов пробела, апострофов и кавычек;
· не должно содержать символов: `\', '/', ':', «*', '?', «<', «>', «|', `;', `, ';
· не рекомендуется использовать буквы национальных алфавитов и имена длиннее восьми символов, так как это может вызвать затруднения в использовании некоторых старых компиляторов.
За исключением файла «index.txt», каталог «Teams» не должен содержать больше никаких файлов или каталогов.
Пример описания командиз файла «index.txt» расположенного в подкаталоге «Teams», приведен в соответствии с рисунком 1.6.
Рисунок 1.6. Описание команд в файле «index.txt»
1.4.6 Подготовка заданий и тестов
По аналогии со всеми ранее описанными данными, списки заданий хранятся в файле «index.txt» расположенном в подкаталоге «Tasks». Структура этого файла аналогична описанию компиляторов и команд, но содержит следующую информацию:
· полное название задачи;
· короткое название, набранное в латинице;
· объем оперативной памяти компьютера разрешенной для использования в этой задаче;
· максимальное время, которое дается программе для прогона одного тестового задания.
Эти характеристики указываются в порядке, в котором они были перечислены выше, между собой они должны быть разделены знаком табуляции. Описание каждого задания должно начинаться с новой строки.
Полное название задачи, должно соответствовать, тому, которое дается для этой задачи в документе (например, «Задание на олимпиаду») выдаваемом участникам в печатном или электронном виде, содержащем описание и условие каждой задачи.
Этот же документ должен содержать информацию о требованиях к конечному алгоритму по времени и по максимальному объему доступной оперативной памяти, описание ограничений на входные данные, формата входных / выходных данных, и пример (образец) входного и выходного файла решения каждой задачи.
Пример оформления описания задачи, по правилам ACM:
Задача №1.
Имя входного файла: z1.in.
Имя выходного файла: z1.out.
Ограничение времени: 10 сек на каждый тест.
Ограничение памяти: 16 Мб.
Условие задачи:
…
Формат входных данных:
Формат выходных данных:
К короткому названию задания предъявляются те же требования, что и требования к коротким именам участников:
· не должно содержать символов: `\', '/', ':', «*', '?', «<', «>', «|', ';', ',';
· не рекомендуется использовать буквы национальных алфавитов и имена длиннее восьми символов, так как это может вызвать затруднения в использовании некоторых компиляторов.
Помимо этого, короткое имя задания должно совпадать с именем файла, которое требуется использовать для ввода и вывода данных (имена этих файлов должны совпадать, и отличаться только расширением).
Как видно из примера оформления задания для Задачи №1, в файле «index» должны быть указаны сведения об этой задаче:
· полное наименование - «Задача №1»;
· короткое наименование - «z1».
Расширения у входного и выходного файла также фиксированные:
· входной файл всегда имеет расширение «.in»;
· выходной файл всегда имеет расширение «.out».
Информация об ограничениях на время решения одного теста задается в секундах, а ограничениях по памяти в мегабайтах.
Список заданий, из файла «index.txt» расположенного в подкаталоге «Tasks» оформляется в соответствии с рисунком 1.7.
Рисунок 1.7. Список заданий из файла «index.txt»
В том же каталоге «Tasks», должны находиться подкаталоги с именами соответствующими коротким именам заданий и содержащих тесты для проверки [4].
Формат файлов тестовых наборов:
Для удобства рекомендуется называть фалы тестов, начиная с короткого названия задачи и дописывать в имя цифрами номер теста.
Следует помнить о том, что для решения тесты предлагаются в алфавитном порядке и сложность тестов возрастает от первого к последнему.
1.5 Краткая характеристика языка программирования «Turbo-Pascal»
Система программирования Turbo-Pascal, разработанная американской корпорацией Borland, остается одной из самых популярных систем программирования в мире.
Система программирования Turbo-Pascal представляет собой единство двух в известной степени самостоятельных начал: компилятора с языка программирования Pascal и некоторой инструментальной программной оболочки, способствующей повышению эффективности создания программ.
Особенностью Turbo-Pascal является то, что он разработан с учетом принципов структурного программирования. Для структурированных программ характерны легкость отладки и корректировки, низкая частота ошибок. Turbo-Pascal обладает полным набором структурированных типов данных, таких как простые переменные, массивы, файлы, множества, записи, ссылочные переменные.
Язык Turbo-Pascal состоит из примерно 80 зарезервированных слов и специальных символов. Алфавит языка составляют буквы латинского алфавита, цифры, а так же специальные символы, такие как +, -, _. Зарезервированные слова в языке Turbo-Pascal могут употребляться только по своему прямому назначению, то есть в качестве имен типов данных, названий операций и т.д. [5].
1.6 Структурированный тип данных «Строки»
Страницы: 1, 2, 3, 4, 5, 6, 7, 8