Разработка модуля для проверки задач по программированию в электронной обучающей системе "Moodle"
"Moodle" - модульная объектно-ориентированная динамическая среда обучения, ее использование для разработки систем дистанционного обучения. Общее представление о дистанционном практикуме по программированию. Разработка структуры данных и алгоритмов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 09.11.2016 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
$username = $USER->lastname;
$username. = ' ';
$username. = $USER->firstname;
$date_today = date ("d. m. y");
$date_today. = ' ';
$date_today. = date ("H: i: s");
$randomnum = rand (1, 1000);
$url = "http://atpp. vstu.edu.ru/cgi-bin/arh_problems. pl? re_login=$randomnum&id_prb=$progid";
$curl = curl_init ("$url");
curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt ($curl, CURLOPT_USERPWD, "epo2012_vis: 11111"); // авторизируемся в системе
$curlT = curl_init ("http://atpp. vstu.edu.ru/cgi-bin/arh_problems. pl? id_prb=$progid");
curl_setopt ($curlT, CURLOPT_RETURNTRANSFER,true);
$problem = curl_exec ($curlT);
curl_close ($curlT);
preg_match ('|<hr class="hr_up_prb"> (. *) <hr class="hr_down_prb">|isU', $problem, $problemtext);
$utftext = mb_convert_encoding ($problemtext [0], "UTF-8", "windows-1251");
echo "<h2 align='center'>";
echo format_string ($autochecker->name);
echo "</h2>";
// если заполнено поле текст задачи, то выводим его, если нет, то берём текст задачи со страницы задачи на сайте кафедры
if ($autochecker->intro) {
echo $OUTPUT->box (format_module_intro ('autochecker', $autochecker, $cm->id), 'generalbox mod_introbox', 'autocheckerintro');
} else {
echo $utftext;
}
$compid = $_POST ['id_compiler'];
$progtext = $_POST ['source'];
$progtext = str_replace (";", "%3B", "$progtext");
$progtext = str_replace ("&", "%26", "$progtext");
$progtext = str_replace ("+", "%2B", "$progtext");
$progtext = mb_convert_encoding ($progtext, "windows-1251", "UTF-8");
$record = new stdClass ();
$grade = new stdClass ();
if (isset ($_POST ['nazvanie_knopki']))
{
include '. /check. php';
// добавляем данные в таблицу статистики
$record->postid = $courseid [$id] - >instance;
$record->userid = $USER->id;
$record->username = $username;
$record->timeposted = $date_today;
$record->result = $theanswer;
$lastinsertid = $DB->insert_record ('autocheckerstats', $record, false);
if (mark1) // если ответ Верно или Частично верно и удалось получить баллы, то выставляем эти баллы
{
$grade->rawgrade = $mark1; // оценка - балл полученный с сайта кафедры
$grade->timemodified = time ();
$grade->userid = $USER->id;
$grade->usermodified = $USER->id;
grade_update ('mod/autocheker', $COURSE->id, 'mod', 'autochecker', $courseid [$id] - >instance, 0, $grade, NULL); // запрос выставляющий оценку
}
}
// $DB->set_debug (true);
$rectest = $DB->get_record_sql ('SELECT * FROM {autocheckerstats} ORDER BY id DESC LIMIT 1');
$rec = $DB->get_records_sql ('SELECT * FROM {autocheckerstats} ORDER BY id DESC LIMIT 10');
ПРИЛОЖЕНИЕ 2
(обязательное)
Исходный код файла check. php
$randomnum = rand (1, 1000);
$url = "http://atpp. vstu.edu.ru/cgi-bin/submit. pl? re_login=$randomnum&id_prb=$progid";
$curl = curl_init ("$url");
curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt ($curl, CURLOPT_USERPWD, "epo2012_vis: 11111"); // авторизируемся в системе
curl_setopt ($curl, CURLOPT_URL, "http://atpp. vstu.edu.ru/cgi-bin/submit. pl? id_prb=$progid"); // идём на страницу отправки решения задачи
curl_setopt ($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt ($curl, CURLOPT_POST, true);
curl_setopt ($curl, CURLOPT_POSTFIELDS, "id_prb=$progid&source=$progtext&id_compiler=$compid&mode=send"); // отправляем запрос в систему
$out = curl_exec ($curl); // получаем ответ
$reg00 = 'Ждёт';
$regconv00 = mb_convert_encoding ($reg00, "windows-1251", "UTF-8");
$reg0 = 'Выполняется';
$regconv0 = mb_convert_encoding ($reg0, "windows-1251", "UTF-8");
$theanswer = $regconv0;
$reg = 'Ошибка компиляции';
$regconv = mb_convert_encoding ($reg, "windows-1251", "UTF-8");
$reg1 = 'Верно';
$regconv1 = mb_convert_encoding ($reg1, "windows-1251", "UTF-8");
$reg2 = 'Неправильный ответ';
$regconv2 = mb_convert_encoding ($reg2, "windows-1251", "UTF-8");
$reg3 = 'Ошибка представления';
$regconv3 = mb_convert_encoding ($reg3, "windows-1251", "UTF-8");
$reg4 = 'Ошибка выполнения';
$regconv4 = mb_convert_encoding ($reg4, "windows-1251", "UTF-8");
$reg5 = 'Предел времени';
$regconv5 = mb_convert_encoding ($reg5, "windows-1251", "UTF-8");
$reg6 = 'Предел памяти';
$regconv6 = mb_convert_encoding ($reg6, "windows-1251", "UTF-8");
$reg7 = 'Нарушение безопасности';
$regconv7 = mb_convert_encoding ($reg7, "windows-1251", "UTF-8");
$reg8 = 'Обнаружено бездействие';
$regconv8 = mb_convert_encoding ($reg8, "windows-1251", "UTF-8");
$reg9 = 'Неуникально';
$regconv9 = mb_convert_encoding ($reg9, "windows-1251", "UTF-8");
$reg10 = 'Частично верно';
$regconv10 = mb_convert_encoding ($reg10, "windows-1251", "UTF-8");
curl_setopt ($curl, CURLOPT_URL, 'http://atpp. vstu.edu.ru/cgi-bin/status. pl'); // идём на страницу где выводятся результаты проверки всех задач
$out = curl_exec ($curl);
preg_match ('|<tr><td align="left" nowrap> (. *)  |isU', $out, $content1); // получаем html код столбца, где содержится id решения из первой строки статистики
$htmlcontent = htmlspecialchars ($content1 [0]); // превращаем html код в строку
$idresult = preg_replace ("/ [^0-9] /", '', $htmlcontent); // оставляем только цифры (таким образом получили из html кода только id решения)
while ($theanswer == $regconv0 or $theanswer == $regconv00) {
sleep (3); // ставим задержку 3 секунды, чтобы код успел выполниться
curl_setopt ($curl, CURLOPT_URL, "http://atpp. vstu.edu.ru/cgi-bin/status. pl? mode=report&id_stat=$idresult"); // идём на страницу где содержится статистика по конкретному отправленному решению
$out = curl_exec ($curl);
preg_match ('|<table class="tbbd2" WIDTH=100% border=1 align=center cellspacing=1> (. *) </table>|isU', $out, $content2); // получаем из всего html кода только таблицу со статистикой решения, чтобы последующая обработка шла быстрее
preg_match ("/$regconv0|$regconv|$regconv1|$regconv2|$regconv3|$regconv4|$regconv5|$regconv6|$regconv7|$regconv8|$regconv9|$regconv10/", $content2 [0], $resarr); // смотрим какой результат решения задачи
$theanswer = $resarr [0];
}
curl_close ($curl);
$theanswer = mb_convert_encoding ($resarr [0], "UTF-8", "windows-1251"); // записываем результат решения в переменную и меняем кодировку
echo "Результат проверки: ";
echo "<b>";
echo $theanswer; // выводим результат проверки задачи
echo "</b>";
if ($theanswer! = $reg1) {
echo "<br><br>";
preg_match ('|<table align="center" border="0" width="100%" cellpadding="0" cellspacing="0"> (. *) <table class="other">|isU', $out, $content3); // получаем сообщение с информацией об ошибке
$err = mb_convert_encoding ($content3 [0], "UTF-8", "windows-1251"); // записываем результат решения в переменную и меняем кодировку
echo $err;
echo "<br>";
}
if ($theanswer == $reg10 or $theanswer == $reg1) {
$test = mb_convert_encoding ($content2 [0], "UTF-8", "windows-1251");
$htmlcontent123 = htmlspecialchars ($test);
$mark = explode ("td", $htmlcontent123); // разбиваем строку, чтобы найти там подстроку в которой содержится балл за задачу
$mark1 = preg_replace ("/ [^0-9] /", '', $mark [13]); // оставляем только цифры (таким образом получаем баллы). }
Размещено на Allbest.ru
Подобные документы
Система управления обучением Moodle. Компьютерное тестирование как элемент контроля и обучения. Проектирование компьютерных тестов в системе дистанционного обучения Moodle. Наполнение банка тестовых заданий. Создание теста и настройка его параметров.
дипломная работа [5,4 M], добавлен 10.11.2010Анализ подходов к расширению возможностей системы Moodle. Интеграция мультиагентных сервисов системы дистанционного обучения в модульную объектно-ориентированную динамическую учебную среду Moodle. Рекомендации по защите пользователей от излучений ЭВМ.
дипломная работа [845,1 K], добавлен 14.03.2013Использование передовых технологий в образовании. Дистанционное обучение как метод представления учебных данных в электронном виде и использовании Internet технологий для доставки электронных учебников пользователям. Программное обеспечение Moodle.
дипломная работа [3,9 M], добавлен 10.11.2010Оценка качества подготовки программистов и снижение трудозатрат на подготовку и проверку их лабораторных работ. Разработка проекта по автоматизации процесса обучения программированию с помощью интегрированной среды оценки структуры и качества программы.
дипломная работа [2,5 M], добавлен 07.06.2012Понятие географических информационных технологий. Современное состояние уровня и направлений развития ГИС в лесной отрасли. Обоснование выбора системы дистанционного обучения. Возможности СДО Moodle. Создание базы данных. Проверка настроек веб-сервера.
диссертация [1,2 M], добавлен 02.11.2015Особенности дистанционного образования. Анализ функциональных характеристик среды дистанционного образования Moodle. Функционально-ориентированное проектирование электронного практикума. Разработка, тестирование и оценка надежности программного продукта.
дипломная работа [2,0 M], добавлен 12.08.2017Типы учебных материалов, используемых при дистанционном образовании, стандарты в области образовательных технологий. Система управления обучением Moodle, установки и разделы курса, текстовый редактор, управление файлами. Создание банка тестовых вопросов.
дипломная работа [3,6 M], добавлен 10.11.2010Управление электронным обучением. Технологии электронного обучения e-Learning. Программное обеспечение для создания e-Learning решений. Компоненты LMS на примере IBM Lotus Learning Management System и Moodle. Разработка учебных курсов в системе Moodle.
курсовая работа [146,6 K], добавлен 11.06.2009Разработка информационной образовательной технологии на основе системы управления обучением Moodle. Теоретические основы электронного образования и программные платформы для организации электронного обучения, преимущества и недостатки такого обучения.
дипломная работа [1,7 M], добавлен 07.07.2012Общая характеристика дистанционного образования. Описание приложений и ресурсов, с помощью которых осуществляется дистанционное обучение. Правила размещения курсов в СДО "Moodle". Разработка структуры курса "Правовые основы прикладной информатики".
курсовая работа [1,8 M], добавлен 20.12.2015