Автор работы: Пользователь скрыл имя, 19 Мая 2016 в 17:17, дипломная работа
Интернет – неотъемлемая часть жизни современного человека, источник информации об окружающем мире. Интернет дает множество возможностей для общения, стирая, таким образом, любые границы.
При этом важно, чтобы использование Интернет стало максимально комфортным для пользователя, и он концентрировался не на процессе получения информации, а на самом ее восприятии: информация должна быть читабельной и хорошо структурированной, запросы соответствовать ожиданиям.
Документация к 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
Конечно, из трех этапов, на которые разделено
процедура запуска сайта в Интернете,
именно о его внедрении можно сказать
меньше всего.
Однако в любом случае,
нужно вас будет знать общую схему, план
действий, которые нужно выполнить, чтобы
по определенному адресу в Интернете любой
желающий смог увидеть ваш портал.
Для начала предлагаю определиться с понятиями. Существует два основных термина, суть которых нужно знать. Хостинг – услуга по размещению файлов вашего сайта на специализированном компьютере, сервере. Домен – адрес или попросту название вашего сайта. Примеры доменов: google.ru, mail.ru, shkolazhizni.ru и так далее. Теперь обо всем поподробнее. Начнем с хостинга. Данную услугу сейчас предоставляют множество компаний, а иногда и просто физических лиц. Разница здесь в цене и качестве обслуживания. Сами методы примерно одинаковы.
Воспользуемся бесплатным хостингом guru-host.ru. Файлы добавляются посредством либо браузера, либо любого FTP-клиента.
Теперь исправляем ошибки и недочеты. Основной метод для обнаружения ошибок в программе – проведение испытаний. Испытание представляет собой процесс выполнения программы с целью проверки правильности результатов ее работы и соответствия заданным характеристикам. Процесс испытаний включает в себя преднамеренное конструирование сложных наборов входных данных, создающих наибольшие возможности для отказа программы.
Порядок проведения испытаний:
Создание подобных сайтов, направленных на изучение определенной дисциплины, развивают интерес к предмету ученика, позволяют контролировать успеваемость, а также в некоторой степени повышают навыки владения интернет-ресурсами.
Разработанный метод отображения будет более актуален, при стандартизации HTML 5, т.к. он включает в себя MathML. При стандартизации также будет упрощен способ передачи формул на страницу – не будет разделения типа контента страницы на html и xml.
В ходе работы была разработана структура сайта, выбрано направлении в реализации интерфейса. Также были рассмотрены основные способы представление формул в веб и реализован один из вариантов. Создан портал (http://self-study.u-gu.ru/) для публикации заданий по элементарной математике с возможностью оценки ответов.
ИЗВЛЕЧЕНИЕ ФОРМУЛЫ ИЗ ДОКУМЕНТА, ЗАПИСЬ ДАННЫХ В БД (upload.php):
<?php
include_once("functions.php");
include_once("config.php");
uploadCheckLoggedIn("yes");
$upl="/home/nicedo1.by/www/
if($_FILES["filename"]["size"]
{
echo ("Размер превышен");
exit;
}
if(is_uploaded_file($_FILES["
{
header ("content-type: text/xml");
move_uploaded_file($_FILES["
$zip = new ZipArchive;
$dataFile = 'word/document.xml';
if (true == $zip->open("/home/nicedo1.by/
{
if (($index = $zip->locateName($dataFile)) !== false)
{
$data = $zip->getFromIndex($index);
$log12123=(string)$_SESSION["
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("?>"
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($
mysql_real_escape_string($
mysql_real_escape_string($_
mysql_real_escape_string($_
mysql_real_escape_string($_
mysql_real_escape_string($_
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($_
$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($_
mysql_real_escape_string($_
$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($_
mysql_real_escape_string($_
$result=mysql_query($query);
$row=mysql_fetch_assoc($result
?>
<HTML>
<body>
<form action="add_answer.php?task_
<table>
<tr>
<td><iframe src="solution.php?s_topik=<?
<? 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>
ОТОБРАЖЕНИЕ СЛУЧАЙНОГО ЗАДАНИЯ(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/
//$way="/home/u35607/domains/s
$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
$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($_
mysql_real_escape_string($_GET
mysql_real_escape_string($_
$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($_
mysql_real_escape_string($_GET
mysql_real_escape_string($_
$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($_
mysql_real_escape_string($_
$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($_
mysql_real_escape_string($_
$result=mysql_query($query);
//$row=mysql_fetch_assoc($
$n=0;
?>
<HTML><body><table>
<?
while($row=mysql_fetch_assoc($
?>
<form action="change_task.php?task_
<tr>
<td><iframe src="solution.php?s_topik=<?
<? 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/
$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($_
$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($
{
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);
?>