Главная » Просмотр файлов » Пояснительная записка

Пояснительная записка (1231610), страница 4

Файл №1231610 Пояснительная записка (Система для проведения соревнований по программированию с модулем подведения итогов) 4 страницаПояснительная записка (1231610) страница 42020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

– выбор формата истории посылок;

– выбор момента «заморозки» таблицы;

– обнуление таблицы и переход на момент «заморозки»;

– регулирование скорости анимации «разморозки»;

– последовательная или хронологическая «разморозка». Под хронологической «разморозкой» подразумевается заполнение таблицы результатами в хронологическом порядке. Алгоритм последовательной «разморозки» начинает обработку посылок самого нижнего участника в таблице, у которого еще остались «замороженные» посылки. В случае, если его посылка была успешной – он поднимается вверх по таблице;

– пошаговая или автоматическая «разморозка»: то есть «разморозка» по нажатию кнопки или же без него соответственно;

– включение и выключение отображения времени посылок;

– включение и выключение отображения будущих посылок;

– обработка только последней посылки.

История посылок с результатами соревнований должны загружаться с сервера или с компьютера пользователя.

3 Реализация системы для проведения соревнований по программированию с модулем подведения итогов

3.1 Установка и настройка системы для проведения соревнований по программированию Ejudge

В текущий момент заказчик – кафедра «Вычислительная техника и компьютерная графика», не имеет своего сервера с операционной системой Ubuntu, поэтому установка системы Ejudge произведена на тестовую машину.

3.1.1 Подготовка рабочей среды для установки Ejudge

Подготовка рабочей среды состоит из нескольких шагов [33].

Необходимо установить следующие сторонние программы и библиотеки:

– bison;

– flex;

– ncurses, ncurses-devel;

– expat, expat-devel.

Следует создать пользователя ejudge с домашним каталогом /home/ejudge/:

# groupadd ejudge

# useradd ejudge -s /bin/bash -m -d /home/ejudge -g ejudge

Находясь в роли пользователя ejudge выполнить установку библиотеки reuse:

– скачать в домашний каталог пользователя ejudge архив с исходными файлами текущей версии библиотеки reuse;

– в консоли выполнить следующее:

$ tar -xvzf reuse-VERSION.tgz

$ cd reuse/source

$ ./configure

$ make && make install

Помимо этого, в системе должен быть установлен web-сервер. Для Ejudge рекомендуется использовать web-сервер Apache2, но так же возможна корректная работа и с web-сервером Apache.

3.1.2 Настройка web-сервера Apache2

Следует найти в конфигурационном файле web-сервера директиву <Directory "/usr/lib/cgi-bin">. Фрагмент конфигурационного файла должен выглядеть следующим образом:

<Directory "/usr/lib/cgi-bin">

AllowOverride None

Options FollowSymLinks Includes

AddOutputFilterByType INCLUDES text/html

Order allow,deny

Allow from all

</Directory>

Также следует добавить в конфигурационный файл:

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

Для доступа web-сервера к файлам *.css и *.js системы ejudge, а также к директории с изображениями, необходимо добавить следующий фрагмент:

Alias /ejudge/ /home/ejudge/inst-ejudge/share/ejudge/style/

<Directory "/home/ejudge/inst-ejudge/share/ejudge/style">

AllowOverride None

Order allow,deny

allow from all

</Directory>

3.1.3 Установка системы Ejudge

Предполагается, если не указано иначе, что все действия совершаются от имени пользователя ejudge [34].

Сначала нужно создать каталог /home/judges и назначить ему права пользователя ejudge, набрав в консоли от имени пользователя root:

# mkdir -p /home/judges

# chown ejudge:ejudge /home/judges

# chmod 755 /home/judges

Далее следует скачать в домашний каталог пользователя ejudge архив с исходными файлами текущей версии ejudge.

Для установки ejudge стоит набрать в консоли следующие команды:

$ tar -xvzf ejudge-VERSION.tgz

$ cd ejudge

$ ./configure PARAMS

$ make && make install

Описание параметров PARAMS приведено в таблице 1.

Таблица 1 – Описание параметров установки системы Ejudge

Параметр

Описание

--prefix = /home/ejudge/inst-ejudge

Корневой каталог системы

--with-reuse = /home/ejudge/reuse

Каталог с reuse

--enable-contests-home-dir = /home/judges

Каталог для турниров judges

--with-httpd-cgi-bin-dir = /usr/lib/cgi-bin

Каталог cgi-bin сервера Apache2

--with-httpd-htdocs-dir = /var/www

Каталог, содержащий web-файлы (*.html, *.php, и т.д.)

-- enable-ajax

Включает движок Ajax для системы

Таким образом, команда ./configure будет иметь вид:

$ ./configure –prefix = /home/ejudge/inst-ejudge --with-reuse = /home/ejudge/reuse --enable-contests-home-dir = /home/judges --with-httpd-cgi-bin-dir = /usr/lib/cgi-bin --with-httpd-htdocs-dir = /var/www/ --enable-ajax

Здесь перечислены обязательные параметры для конфигурирования. Чтобы узнать остальные параметры необходимо выполнить:

$ ./configure –help

Следует отметить, что пользователь ejudge должен обладать правами доступа к каталогам web-файлов и cgi-bin сервера Apache2. Если это не выполняется, то необходимо установить требуемые права доступа к этим каталогам.

3.1.4 Настройка и запуск системы Ejudge

Для начала необходимо создать конфигурацию системы Ejudge. Для этого предназначен скрипт ejudge-setup:

$ ./ejudge-setup

В меню следует обратить внимание на пункты «Edit global settings» и «Edit Administrator Identity».

Для пункта меню «Edit global settings» необходимо заполнить:

– «Sendmail program» – полный путь к программе отсылки почты. Присваиваем этому параметру значение «/usr/sbin/sendmail».

– «Create Workdisk?» – установить в значение «no».

Для пункта меню «Edit Administrator Identity» следует заполнить информацию об администраторе системы:

– ID – указывается «1»;

– Login – логин администратора (например, admin);

– E-Mail – почта администратора;

– Name – отображаемое в системе имя;

– Password – пароль.

После заполнения следует сохранить файл, выбрав пункт «Save Setup Script». Зачем от пользователя root запускаем установку:

# ./ejudge-install.sh

В заключении необходимо выставить права на доступ к ссылкам на исполняемые файлы, которые установила система Ejudge в указанный ранее каталог cgi-bin:

# cd /usr/lib/cgi-bin # chmod 755 new-* judge master register serve-control team users

Для запуска системы Ejudge необходимо находясь в роли пользователя ejudge выполнить:

$ cd /home/ejudge/inst-ejudge/bin/

$ ./ejudge-control start

Следует отметить, что если после этого web-сервер выдаёт ошибку, стоит удалить все файлы в каталоге cgi-bin и скопировать туда файлы из каталога пользователя ejudge:

$ cd /usr/lib/cgi-bin

$ rm –rf new-* judge master register serve-control team users

$ cp /home/ejudge/inst-ejudge/libexec/ejudge/cgi-bin/* ./

После этого, если web-сервер запущен, можно получить доступ к системе Ejudge через браузер по адресу http://localhost/cgi-bin/serve-control.

3.1.5 Экспорт истории посылок из системы Ejudge

Как говорилось ранее, в системе Ejudge присутствует возможность автоматического экспорта истории посылок любого соревнования в файле формата XML. Данная функция доступна как администратору систему, так и администратору конкретного турнира.

Экспорт истории посылок может быть двух видов:

– внешний, для взаимодействия с другими системами;

– внутренний, для импорта в другие компоненты Ejudge.

История посылок, экспортируемая из системы Ejudge внешним типом, имеет формат PCMS2. Подробно данный формат истории посылок будет рассмотрен в следующем разделе.

Выводы по разделу

В текущий момент установка и настройка системы Ejudge произведена лишь на тестовой машине, но в будущем планируется её внедрение и использование на сервере заказчика.

Система Ejudge предоставляет следующие возможности для обучения студентов:

– подготовка к соревнованиям по программированию;

– проведение соревнований по программированию;

– тренировка навыков программирования на базовом и продвинутом уровнях.

Участвовать в соревнованиях и тренироваться в системе Ejudge можно удалённо, так как доступ к ней предоставляется посредству web-интерфейса.

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

3.2 Разработка модуля подведения итогов

По требованиям, предъявляемым к модулю подведения итогов, он может быть реализован посредством одной web-страницы. На данной странице размещены меню настроек и таблица с результатами. Помимо этого присутствуют две кнопки – первая для вызова меню, вторая для управления «разморозкой».

3.2.1 Реализация меню настроек

Всплывающее меню с настройками (рисунок 3.1) описанными в требованиях реализовано с помощью HTML, CSS, JavaScript и библиотеки jQuery.

Рисунок 3.1 – Меню с настройками «разморозки»

Меню с настройками имеет так называемую табличную вёрстку страницы, которая определена тэгом table в файле index.php (приложение А, листинг А.1).

Оформление меню определено свойствами тэгов в файле setting.css (приложение А, листинг А.2).

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

Вызов меню осуществляется посредству одной из кнопок на web-странице. При нажатии на кнопку меню плавно исчезнет или появится. Исчезновение сопровождается изменениями размера меню и параметра прозрачности, благодаря чему исчезновение выглядит так, как будто меню сжимается в одну точку. Такая анимация реализована с помощью библиотеки jQuery (листинг 3.1).

Листинг 3.1 – Реализация анимации исчезновения/появления меню

var showSetting = true;

function hideSetting() {

if( showSetting )

$( "#setting" ).hide( "slow" );

else

$( "#setting" ).show( "slow" );

showSetting = !showSetting;

}

Функции hide() и show() библиотеки jQuery позволяют добиться описанной выше анимации.

3.2.2 Хранение историй посылок на сервере

На сервере в папке log хранятся файлы формата XML с историями посылок различных соревнований. Точно такой же формат имеют истории посылок, которые экспортируются из системы Ejudge.

Помимо этого на сервере имеется база данных с наименованиями всех имеющихся историй посылок. Подключение к базе данных осуществляется через PHP-сценарий db.php (листинг 3.2).

Листинг 3.2 – Файл db.php

<?php

$dbhost = 'localhost'; $dbname = 'table';

$dbuser = 'root'; $dbpass = '';

$connection = mysql_connect( $dbhost, $dbuser, $dbpass ) or die( mysql_error() );

mysql_select_db( $dbname, $connection ) or die( mysql_error() );

?>

Наименования историй посылок хранятся в базе данных для быстрого формирования выпадающего списка из меню настроек, которое реализовано вызовом PHP-сценария logs.php (листинг 3.3):

<?php include "php/logs.php"; ?>

Листинг 3.3 – Файл logs.php

<?php

include "php/db.php";

$query = "SELECT * FROM `logs`";

$res = mysql_query( $query );

echo "<select id = 'fileLogFromServer'>";

while( $row = mysql_fetch_array( $res ) ) {

echo "<option>".$row["name"]."</option>";

}

echo "</select>";

?>

Сценарий logs.php делает запрос в базу данных для получения списка наименований историй посылок. После этого, через цикл, идёт заполнения тэга select, который в свою очередь является выпадающим списком. Элементы выпадающего списка выделяются тэгами option.

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6531
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее