Создание и наполнение заданиями сайта для выполнения домашних заданий по элементарной математике с возможностью анализа успеваемости

Автор работы: Пользователь скрыл имя, 19 Мая 2016 в 17:17, дипломная работа

Описание работы

Интернет – неотъемлемая часть жизни современного человека, источник информации об окружающем мире. Интернет дает множество возможностей для общения, стирая, таким образом, любые границы.
При этом важно, чтобы использование Интернет стало максимально комфортным для пользователя, и он концентрировался не на процессе получения информации, а на самом ее восприятии: информация должна быть читабельной и хорошо структурированной, запросы соответствовать ожиданиям.

Файлы: 1 файл

GorbachevDV1(САЙТ).docx

— 481.05 Кб (Скачать файл)

Документация к Open XML занимает более 7000 страниц, что является излишне большим объёмом и существенно усложняет попытку создания программы с поддержкой Open XML. [4]

Структура .docx файла можно увидеть на рис.3.4, 3.5 . Необходимая нам информация хранится в word/document.xml. Отредактируем данный файл, воспользовавшись таблицей стилей ooml2mml.xsl (приложение А), открывая данный файл в браузере, предварительно указав тип получаемых данных, как XML, получим отображение формулы с помощью MathMl. Измененный document.xml и будем хранить на сервере. При небольших объёмах информации это уменьшит объём необходимого дискового пространства на сервере.

В папке _rels находится файл document.xml.rels. Он необходим, чтобы описывать связи прикрепленных файлов внутри документа. Может еще существовать папка media, если в вашем документе присутствуют изображения. Имена остальных файлов вроде-бы говорят за себя.

Рисунок 3.4 - структура .docx

 

Рисунок 3.5 - структура .docx

 

  1. Запуск и тестирование сайта

Конечно, из трех этапов, на которые разделено процедура запуска сайта в Интернете, именно о его внедрении можно сказать меньше всего. 
Однако в любом случае, нужно вас будет знать общую схему, план действий, которые нужно выполнить, чтобы по определенному адресу в Интернете любой желающий смог увидеть ваш портал.

Для начала предлагаю определиться с понятиями. Существует два основных термина, суть которых нужно знать. Хостинг – услуга по размещению файлов вашего сайта на специализированном компьютере, сервере. Домен – адрес или попросту название вашего сайта. Примеры доменов: google.ru, mail.ru, shkolazhizni.ru и так далее. Теперь обо всем поподробнее. Начнем с хостинга. Данную услугу сейчас предоставляют множество компаний, а иногда и просто физических лиц. Разница здесь в цене и качестве обслуживания. Сами методы примерно одинаковы.

Воспользуемся бесплатным хостингом guru-host.ru. Файлы добавляются посредством либо браузера, либо любого FTP-клиента.

Теперь исправляем ошибки и недочеты. Основной метод для обнаружения ошибок в программе – проведение испытаний. Испытание представляет собой процесс выполнения программы с целью проверки правильности результатов ее работы и соответствия заданным характеристикам. Процесс испытаний включает в себя преднамеренное конструирование сложных наборов входных данных, создающих наибольшие возможности для отказа программы.

Порядок проведения испытаний:

    • запуск сайта;
    • ссылка должны ввести на определенную ей страницу;
    • корректное отображение графических элементов;
    • корректное отображение сайта в различных пользовательских режимах;
    • функциональность и соответствие проекта поставленной задаче;
    • тестирование на каждом этапе разработки.

 

 

ЗАКЛЮЧЕНИЕ

Создание подобных сайтов, направленных на изучение определенной дисциплины, развивают интерес к предмету ученика, позволяют контролировать успеваемость, а также в некоторой степени повышают навыки владения интернет-ресурсами.

Разработанный метод отображения будет более актуален, при стандартизации HTML 5, т.к.  он включает в себя MathML. При стандартизации также будет упрощен способ передачи формул на страницу – не будет разделения типа контента страницы на html и xml.

В ходе работы была разработана структура сайта, выбрано направлении в реализации интерфейса. Также были рассмотрены основные способы представление формул в веб и реализован один из вариантов. Создан портал (http://self-study.u-gu.ru/) для публикации заданий по элементарной математике с возможностью оценки ответов.

 

 

Список использованных источников

    1. Ташков П. А., Веб-мастеринг на 100 %: HTML, CSS, JavaScript, PHP, CMS, AJAX, раскрутка // – 2010. - №1.
    2. Владимир Дронов., HTML.5. CSS.3 и Web 2.0. Разработка современных Web-сайтов //-2011
    3. Билл Скотт, Тереза Нейл, Проектирование веб-интерфейсов //-2010
    4. [Электрон. ресурс – URL: http://ru.wikipedia.org/wiki//] Свободная энциклопедия.
    5. Романов А. Н., Технология дистанционного обучения // Юнити-Дана 2000. - №1.
    6. Итоги эксперимента в области  дистанционного обучения и  перспективы развития дистанционных  образовательных технологий. // Инновации  в  образовании .-2002.- №4. - С. 4-27.
    7. Прохоренок Н.А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера/ СПб: БХВ-Петербург, №3, 2010 -с.912.
    8. [Электрон. ресурс – URL: http://www.php.net/] PHP: Hypertext Preprocessor.

 

 

ПРИЛОЖЕНИЕ А

 

ИЗВЛЕЧЕНИЕ ФОРМУЛЫ ИЗ ДОКУМЕНТА, ЗАПИСЬ ДАННЫХ В БД (upload.php):

<?php

include_once("functions.php");

include_once("config.php");

uploadCheckLoggedIn("yes");

$upl="/home/nicedo1.by/www/upload/";

 

if($_FILES["filename"]["size"]> 1024*3*1024)

{

echo ("Размер превышен");

exit;

}

  

if(is_uploaded_file($_FILES["filename"]["tmp_name"]))

header ("content-type: text/xml");  

move_uploaded_file($_FILES["filename"]["tmp_name"], "/home/nicedo1.by/www/upload/".$_FILES["filename"]["name"]);

$zip = new ZipArchive;

$dataFile = 'word/document.xml';

 

if (true == $zip->open("/home/nicedo1.by/www/upload/".$_FILES["filename"]["name"]))

{

if (($index = $zip->locateName($dataFile)) !== false)

{

$data = $zip->getFromIndex($index);

$log12123=(string)$_SESSION["login"];

if (!file_exists($upl.$log12123))

{

mkdir($upl.$log12123);

$xmlDir=$upl.$log12123;

}

else{

$xmlDir=$upl.$log12123;

}

$documentXml = $zip->getFromName($dataFile);

$xmlFile = $xmlDir."temp";

$xmlHandle = fopen($xmlFile, "w");

$documentXml1=str_replace("?>", "?><?xml-stylesheet type=\"text/xsl\" href=\"OMML2MML.XSL\"?>", $documentXml);

 

file_put_contents($xmlFile, $documentXml1);

fclose($xmlHandle);

$xmlDate=(string)date('U');

rename($xmlFile, $xmlDir."/".$xmlDate);

echo $documentXml1;

$query = sprintf("INSERT INTO tasks(t_login, date, topic, class, answers, note) VALUES('%s', '%s','%s', %s, '%s', '%s')",

mysql_real_escape_string($log12123),

mysql_real_escape_string($xmlDate),

mysql_real_escape_string($_POST['topic']),

mysql_real_escape_string($_POST['class_num']),

mysql_real_escape_string($_POST['answer']),

mysql_real_escape_string($_POST['note']));

mysql_query($query);

 

}

}

 

}

else

{

  echo("File upload error! Try again.");

}

?>

 

ПРИЛОЖЕНИЕ Б

 

ВЫБОР СЛУЧАЙНОГО ЗАДАНИЯ ПО ТЕМЕ ДЛЯ УЧЕНИКА, ОТОБРАЖЕНИЕ ЗАДАНИЯ, ФОРМА ДЛЯ ОТВЕТА (task.php):

<?

include_once('config.php');

$query=sprintf("SELECT role from users where login='%s';",

mysql_real_escape_string($_SESSION['login']));

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

$role=$row['role'];

$query=sprintf("SELECT count(*) from tasks where class=%s and topic='%s' and id not in(select t_id from answers where s_login='%s') ORDER BY rand() limit 1;",

mysql_real_escape_string($role),

mysql_real_escape_string($_POST['s_topic']),

mysql_real_escape_string($_SESSION['login']));

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

if ($row['count(*)']==0) {

sleep(3);

header("Location: available_tasks.php?msg=1");// no tasks

//echo 'нет доступных задач';

}

$query=sprintf("SELECT id, note from tasks where class=%s and topic='%s' and id not in(select t_id from answers where s_login='%s') ORDER BY rand() limit 1;",

mysql_real_escape_string($role),

mysql_real_escape_string($_POST['s_topic']),

mysql_real_escape_string($_SESSION['login']));

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

?>

<HTML>

<body>

<form action="add_answer.php?task_id=<? echo $row['id'];?>" method="post" enctype="multipart/form-data">

<table>

<tr>

<td><iframe src="solution.php?s_topik=<?php echo $_POST['s_topic'];?>&task_id=

<? echo $row['id'];?>"  target='_parent' width="300" height="160" align="left"> </iframe></td>

<td><input type="text" title='<? echo $row['note'];?>' name="answer" ></td>

<td><input type="submit" value='Ответить' ></td>

</tr>

</table>

</form>

</body>

</HTML>

 

ПРИЛОЖЕНИЕ B

 

ОТОБРАЖЕНИЕ СЛУЧАЙНОГО ЗАДАНИЯ(solution.php), ДОБАВЛЕНИЕ ОТВЕТА В БД(add_answer.php) :

<?

error_reporting(0);

header ("content-type: text/xml");

include_once('config.php');

$query = sprintf("SELECT role from users where login='%s'",

mysql_real_escape_string( $_SESSION['login']));

$result =mysql_query($query);

$role = mysql_fetch_assoc($result);

$topic=$_GET['s_topik'];

$id=$_GET['task_id'];

 

$query = sprintf("SELECT date, t_login from tasks where topic='%s' and id=%s ORDER BY rand() limit 1",

mysql_real_escape_string( $topic),

mysql_real_escape_string( $id));

 

$result =mysql_query($query);

 

while($row = mysql_fetch_assoc($result)){

$way="/home/nicedo1.by/www/upload/".$row['t_login'].'/'.$row['date'];

//$way="/home/u35607/domains/self-study.u-gu.ru/public_html/upload/".$row['t_login'].'/'.$row['date'];

$handle = fopen($way, "r");

$file = fread($handle, filesize($way));

print $file;

}

?>

 

<?php

include_once('config.php');

$query = sprintf("SELECT answers from tasks where id=%s ;",

mysql_real_escape_string($_GET['task_id']));

$result =mysql_query($query);

$row = mysql_fetch_assoc($result);

$correct_answer=$row['answers'];

//echo $correct_answer;

if($_POST['answer'] ===$correct_answer)

{//'верно';

$query = sprintf("INSERT INTO answers(s_login, t_id, s_answer, a_check) VALUES('%s', %s, '%s', 1);",

mysql_real_escape_string($_SESSION['login']),

mysql_real_escape_string($_GET['task_id']),

mysql_real_escape_string($_POST['answer']));

$result =mysql_query($query);

header("Location: available_tasks.php?msg=2");

} else {//' не верно';

$query = sprintf("INSERT INTO answers(s_login, t_id, s_answer, a_check) VALUES('%s', %s, '%s', 0);",

mysql_real_escape_string($_SESSION['login']),

mysql_real_escape_string($_GET['task_id']),

mysql_real_escape_string($_POST['answer']));

$result =mysql_query($query);

header("Location: available_tasks.php?msg=2");

}

?>

 

ПРИЛОЖЕНИЕ Г

 

ОТОБРАЖЕНИЕ ОПУБЛИКОВАННЫХ ЗАДАНИЙ, ФОРМА ДЛЯ ОТОБРАЖЕНИЯ И ИЗМЕНЕНИЯ УСЛОВИЯ И ОТВЕТА(see_publ_tasks.php) :

<?

include_once('config.php');

$query=sprintf("SELECT count(*) from tasks where topic='%s' and t_login='%s' ;",

mysql_real_escape_string($_POST['s_topic']),

mysql_real_escape_string($_SESSION['login']));

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

//echo $row['count(*)'];

$count=$row['count(*)'];

if ($row['count(*)']==0) {

sleep(3);

header("Location: publ_tasks.php?msg=0");// no tasks

echo 'нет доступных задач';

}

 

$query=sprintf("SELECT id, note, answers from tasks where topic='%s' and t_login='%s' ;",

mysql_real_escape_string($_POST['s_topic']),

mysql_real_escape_string($_SESSION['login']));

$result=mysql_query($query);

//$row=mysql_fetch_assoc($result);

$n=0;

?>

<HTML><body><table>

<?

while($row=mysql_fetch_assoc($result)){

?>

<form action="change_task.php?task_id=<? echo $row['id'];?>" method="post" enctype="multipart/form-data">

<tr>

<td><iframe src="solution.php?s_topik=<?php echo $_POST['s_topic'];?>&task_id=

<? echo $row['id'];?>"  target='_parent' width="300" height="160" align="left"> </iframe></td>

<td><input type="text" title='<? echo "Старое условие ".$row['note'];?>' name="new_note" ></td>

<td><input type="text" title='<? echo "Старый ответ ".$row['answers'];?>' name="new_answer" ></td>

<td><input type="submit" value='Изменить' ></td>

</tr>

</form>

<?}

echo '</table></form></body>

</HTML>'

?>

 

ПРИЛОЖЕНИЕ Д

 

ОТОБРАЖЕНИЕ ТЕКСТА ДОКУМЕНТА, (text.php) :

 

<?

include_once('config.php');

include_once('functions.php');

 

$query = sprintf("SELECT date, t_login from tasks where topic='%s' and id=%s ORDER BY rand() limit 1",

mysql_real_escape_string( $_POST['s_topic']),

mysql_real_escape_string( $row['id']));

 

$result123 =mysql_query($query);

 

while($row1 = mysql_fetch_assoc($result123)){

$way="/home/nicedo1.by/www/upload/".$row1['t_login'].'/'.$row1['date'];

$all=iconv("utf-8", "windows-1251", xml2text($way));

$part1=strstr($all, 'Условие');

$part2=strstr($all, 'Варианты');

print $part1;

$part3=strstr($all, 'Ответ');

$p1=strlen($part1);

$p2=strlen($part2);

$p3=strlen($part3);

 

if($p1>$p2 and $p1>$p3)  // условие идут первыми

{

if($p2>=$p3)

{

$otv=$part3;

echo 'ответ '.$otv.'<br>';

$var=substr($part2, 0 , $p2-$p3);

echo 'варианты-'.$var.'<br>';

$p2=strlen($var);

//echo 'длина вар '.$p2.'<br>';

$usl=substr($part1, 0 , $p1-$p2-$p3);

//echo 'варианты-'.$var.'<br>';

echo $usl.'<br>';

}

}

else "неверный формат файла";

}

?>

 

ПРИЛОЖЕНИЕ Е

 

ОТОБРАЖЕНИЕ РЕЙТИНГА УЧЕНИКОВ, (rating.php) :

<?

error_reporting(0);

include_once('config.php');

$query=sprintf("SELECT role from users where login='%s';",

mysql_real_escape_string($_SESSION['login']));

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

$role=$row['role'];

//echo $role;

mysql_free_result($result);

 

$query=sprintf("select answers.s_login, avg(answers.a_check) from answers inner join users on answers.s_login=users.login where users.role='%s' group by answers.s_login",

mysql_real_escape_string($role));

 

$result=mysql_query($query);

 

echo 'Рейтинг учеников вашего класса:   ';

echo '<br>';

while($row=mysql_fetch_assoc($result))

{

echo $row["s_login"];

echo '   ';

echo $row["avg(answers.a_check)"];

echo '<br>';

}

mysql_free_result($result);

 

// по классу

$query=sprintf("select  avg(answers.a_check) from answers inner join users on answers.s_login=users.login where users.role='%s' ",

mysql_real_escape_string($role));

 

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

echo 'Средний рейтинг среди всех учеников вашего класса составляет:    ';

echo $row["avg(answers.a_check)"];

mysql_free_result($result);

echo '<br>';

//по всем

$query=sprintf("select  avg(answers.a_check) from answers ",

mysql_real_escape_string($role));

 

$result=mysql_query($query);

$row=mysql_fetch_assoc($result);

echo 'Средний рейтинг среди всех учеников составляет:     ';

echo $row["avg(answers.a_check)"];

mysql_free_result($result); 

?>

 


 



Информация о работе Создание и наполнение заданиями сайта для выполнения домашних заданий по элементарной математике с возможностью анализа успеваемости