Наглядная схема структуры сайта
Схема 5. Пользовательский блок Схема 6. Блок администратора
Итог
В результате спроектирован электронный учебник, который обладает свойствами, делающими его необходимым для студентов, полезным для аудиторных занятий и удобным для преподавателей. Глава 3. Разработка сайта
Разработка компонентов ИС
В результате разработки были созданы следующие компоненты пользовательского модуля ИС:
Аннотация
На странице "Аннотация" (Рис.3), которая является также и главной страницей электронного учебника пользователь может ознакомиться с краткой характеристикой книги. Данная страница содержит основную тему книги и основные положения описываемого источника.
Рис.3. Страница "Аннотация" 3.3 Предисловие
На странице "Предисловие" (Рис.4) пользователь может ознакомиться с вспомогательным текстом от авторов с указанием: назначения книги; истории разработки освещенного в ней вопроса; суть отдельных глав и разделов и др.
Рис.4. Страница "Предисловие" Библиографический список
На странице "Библиографический список" (Рис.5) пользователь может ознакомиться со списком рекомендуемой литературы для дополнительного изучения.
Рис.5. Страница "Библиографический список"
Содержание
В разделе "Содержание" (Рис.6) располагаются ссылки на главы учебника, переходя по которым загружается страница, с расположенным на ней текстом конкретной главы и ссылками на подглавы (Рис.7). При переходе на подглаву загружается ее название и лекционный материал. Рис.6. Раздел "Содержание"
Рис.7. Содержание "Главы 3"
Самостоятельная работа
В разделе "Самостоятельная работа" (Рис.8) располагаются ссылки на главы учебника, переходя по которым загружается страница, с расположенным на ней текстом и ссылками на разделы задач, подготовленных к конкретной главе. При переходе на раздел задач загружается его задание и задачи для самостоятельного решения (Рис.9).
Рис.8. Раздел "Самостоятельная работа"
Рис.9. Задачи для самостоятельного решения "Главы 1" Точка зрения
На странице "Точка зрения" (Рис.10), при желании, пользователь может ответить на заинтересовавшие его вопросы.
Рис.10. Страница "Точка зрения"
Поиск Для удобства в учебнике создан раздел поиска информации (Рис.11), который позволит сэкономить время и облегчить работу пользователя.
Рис.11. Раздел "Поиск" Администрация Для удобства администратора в учебнике создана ссылка для перехода на страницу блока администратора (Рис.12), которая будет выводить окно для ввода, проверки логина и пароля.
Рис.12. Раздел "Администрация"
Статистика Данный раздел выводит на экран статистические данные: количество рассматриваемых тем, количество разделов задач и количество проводимых опросов (Рис.13).
Рис.13. Раздел "Статистика"
В результате разработки были созданы следующие компоненты модуля администрирования ИС: Главы Данный раздел (Рис.14) позволяет администратору выполнять следующие функции: добавление новых глав (Рис.15), редактирование имеющихся и удаление неактуальных. Рис.14. Раздел "Главы"
Рис.15. Добавление главы
Подглавы Данный раздел (Рис.16) позволяет администратору выполнять следующие функции: добавление новых подглав, редактирование имеющихся и удаление подглав с неактуальной информацией (Рис.17). Рис.16. Раздел "Подглавы"
Рис.17. Удаление подглавы
Задачи Данный раздел (Рис.18) позволяет администратору выполнять следующие функции: добавление новых разделов задач для самостоятельного решения, редактирование имеющихся (Рис. 19) и удаление неактуальных. Рис.18. Раздел "Задачи"
Рис. 19. Редактирование задачи
Голосование Данный раздел (Рис. 20) позволяет администратору выполнять следующие функции: просмотр результатов опросов (Рис.21), добавление новых опросов, сброс результатов и удаление устаревших опросов. Рис. 20. Раздел "Голосование"
Рис.21. Результаты опроса
Тексты Данный раздел (Рис.22) позволяет администратору редактировать тексты страниц "Аннотация", "Предисловие", "Библиографический список". Рис.22. Раздел "Тексты" Пароли Данный раздел (Рис.23) позволяет администратору добавлять (Рис.24) новые и удалять неиспользуемые пароли.
Рис.23. Раздел "Пароли"
Рис.24. Добавление пароля администратора
Итог В результате создан электронный учебник, который обладает свойствами, делающими его необходимым для студентов, полезным для аудиторных занятий и удобным для преподавателей. Заключение
Целью курсовой работы была разработка электронного учебного пособия на тему "Линейное программирование" средствами языка программирования PHP и СУБД MySQL. Для достижения поставленной цели были решены следующие задачи: изучить литературу по теме курсовой работы; определить требования к электронным образовательным ресурсам; выбрать наиболее подходящие средства реализации; спроектировать структуру и создать дизайн электронного учебника; систематизировать, оцифровать, и структурировать собранный материал; наполнить содержанием структуру электронного образовательного ресурса; разработать модуль администратора. На основе изученных подходов по созданию электронных учебников была разработана концепция электронного учебника на тему "Линейное программирование". По разработанной концепции создан и наполнен электронный учебник в формате языка PHP с использованием СУБД MySQL. Цель работы достигнута. Электронный учебник "Практикум по экономико-математическим методам" спроектирован и разработан с учетом всех требований к данному виду электронного образовательного ресурса.
Список используемой литературы
1. Кузнецов М.В., Симдянов И.В. PHP 5/6. - СПб.: БХВ-Петербург, 2010. - 1024 с. 2. Кузнецов М.В., Симдянов И.В. MySQL 5. - СПб.: БХВ-Петербург, 2006. - 1024 с. 3. Ульман Л. Учебник MySQL. - СПб.: Питер, 2007, 217 с. 4. Котеров Д.В., Костарев А.Ф. РНР 5. - СПб.: БХВ-Петербург, 2005. - 1120 с. 5. Ратшиллер Т., Геркен Т. PHP4: разработка Web-приложений. - СПб: Петербург, 2001. - 384 с. 6. Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. - К.: "ДиаСофт", 2001. - 672 с. 7. Качанов А. Букварь по PHP и MySQL. - СПб.: БХВ-Петербург, 2008. - 530 с. 8. Ильченко А.Н., Ксенофонтова О.Л., Канакина Г.В. Практикум по экономико-математическим методам. - М.: Финансы и статистика; ИНФРА-М, 2009. - 288 с.: ил. Список используемых Интернет-ресурсов: 9. http://expert. isuct.ru 10. http://php. spb.ru 11. http://ru. wikipedia.org/wiki/PHP 12. http://ru. wikipedia.org/wiki/MySQL 13. http://www.php. su 14. http://www.mysql.ru 15. http://www.spravkaweb.ru/php/db/mysql/db 16. http://phpclub.ru Словарь терминов
Авторизация - процесс, а также результат процесса проверки необходимых параметров и предоставление определенных полномочий лицу или группе лиц прав доступа на выполнение некоторых действий в системах с ограниченным доступом. Администратор - распорядитель в учреждении, коллективе, а также специалист по обслуживанию баз данных информационных систем. База данных (БД) - поименованная совокупность структурных данных, относящихся к определенной области и предназначенных для хранения, обработки и накопления с помощью ЭВМ. Веб-сайт (англ. Website, от web - паутина и site - "место") - в компьютерной сети объединённая под одним адресом совокупность документов частного лица или организации. По умолчанию подразумевается что сайт располагается в сети Интернет. Web (веб) страница - это html-документ, документ написанный на языке программирования, например PHP, который находиться во всемирной сети для просмотра посетителями. Web (веб) страница является неотъемлемой частью веб сайта. На Web (веб) странице размещается все что видете на странице.
Информационная система (ИС) - система, реализующая автоматизированный сбор и обработку информации, манипулирование данными, а также включающая средства обработки данных ПО и обслуживающий персонал. Модуль - это небольшой блок на сайте, отображаемый на какой-либо заранее определенной в шаблоне позиции, расширяющий возможности компонентов и представляющий небольшой кусочек информации помимо основной, центральной части сайта. Система управления базами данных (СУБД) - набор языковых и программных средств, необходимых для создания БД, поддержания их в актуальном состоянии и организации поиска информации. Приложение
Код верхней навигационной панели: <table border="0"> <tr> <td width='31%' <? php if (isset ($n)) { if ($n==1) { echo "class='nav_a'"; } else { echo "class='nav_t'"; }} ? >><p><img src='img/arr4. jpg' height='15' href="index. php"> Аннотация</a></strong></p></td> <td width='31%' <? php if (isset ($n)) { if ($n==2) { echo "class='nav_a'"; } else { echo "class='nav_t'"; }} ? >><p><img src='img/arr4. jpg' height='15' href="ot_avtora. php"> Предисловие</a></strong></p></td> <td width='38%' <? php if (isset ($n)) { if ($n==3) { echo "class='nav_a'"; } else { echo "class='nav_t'"; }} ? >><p><img src='img/arr4. jpg' height='15' href="liter. php"> Библиографический список</a></strong></p></td> </tr> </table> Код левой навигационной панели: <td class="left"> <div class="nav_title">Содержание</div> <? php $result2 = mysql_query ("SELECT * FROM categories", $db); if (! $result2) { echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору belova_pi302@mail.ru. <br> <strong>Код ошибки: <strong></p>"; exit (mysql_error ()); } if (mysql_num_rows ($result2) >0) { $myrow2 = mysql_fetch_array ($result2); do { printf ("<p class='point'><img src='img/7. gif' height='10' class='nav_link' href='view_cat. php? cat=%s'>%s</a></p>", $myrow2 ["id"], $myrow2 ["title"]); } while ($myrow2 = mysql_fetch_array ($result2)); } else { echo "<p>Информация по запросу не может быть извлечена - в таблице нет записей. </p>"; exit (); }? > <div class="nav_title">Самостоятельная работа</div> <? php $result3 = mysql_query ("SELECT * FROM categories", $db); if (! $result3) { echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору belova_pi302@mail.ru. <br> <strong>Код ошибки: <strong></p>"; exit (mysql_error ()); } if (mysql_num_rows ($result3) >0) { $myrow3 = mysql_fetch_array ($result3); do { printf ("<p class='point'><img src='img/7. gif' height='10' class='nav_link' href='view_tasks. php? cat=%s'>%s</a></p>", $myrow3 ["id"], $myrow3 ["title"]); } while ($myrow3 = mysql_fetch_array ($result3)); } else { echo "<p>Информация по запросу не может быть извлечена - в таблице нет записей. </p>"; exit (); }? > <div class="nav_title">Точка зрения</div> <p class='point'><img src='img/7. gif' height='10' class='nav_link' href='view_question. php'> Страница голосования</a></p>
<div class="nav_title">Поиск</div> <form action="view_search. php" method="post" name="form_s"> <p>Поисковый запрос должен быть не менее 4-х символов</p> <p><input name="search" type="text" size="25" maxlength="40"> <br> <input class='search_b' name="submit_s" type="submit" value="Искать"> </p> </form> <div class="nav_title">Администрация</div> <p class='point'><img src='img/7. gif' height='10' class='nav_link' href='/php/admin/'> Страница администратора</a></p> <div class="nav_title">Статистика</div> <? php $result11 = mysql_query ("SELECT COUNT (*) FROM data", $db); $sum1 = mysql_fetch_array ($result11); $result12 = mysql_query ("SELECT COUNT (*) FROM tasks", $db); $sum2 = mysql_fetch_array ($result12); $result13 = mysql_query ("SELECT COUNT (*) FROM questions", $db); $sum3 = mysql_fetch_array ($result13); echo "<p class='statistic'>Рассматриваемых тем: $sum1 [0] <br>Разделов задач: $sum2 [0] <br>Опросов: $sum3 [0] </p>"; ? > </td> Код главной страницы: <? php include ("blocks/bd. php"); $result = mysql_query ("SELECT title,text FROM settings WHERE page='index'", $db); if (! $result) { echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору belova_pi302@mail.ru. <br> <strong>Код ошибки: <strong></p>"; exit (mysql_error ()); } if (mysql_num_rows ($result) >0) { $myrow = mysql_fetch_array ($result); } else { echo "<p>Информация по запросу не может быть извлечена - в таблице нет записей. </p>"; exit (); }? > <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title><? php echo $myrow ["title"];? ></title> <meta http-equiv="Page-Enter" content="progid: DXImageTransform. Microsoft. Fade (Duration=2)"> <link href="style. css" rel="stylesheet" type="text/css"> </head> <body> <table border="0" align="center" class="main_border"> <? include ("blocks/header. php");? > <tr> <td bgcolor="#FFFFFF"><table border="0"> <tr> <? include ("blocks/lefttd. php");? > <td class="centr"> <? php $n=1; include ("blocks/nav. php");? > <? php echo $myrow ["text"];? > </td></tr></table></td></tr> <? include ("blocks/footer. php");? > </table></body></html> Часть кода страницы для просмотра подглав: <? php include ("blocks/bd. php"); $result = mysql_query ("SELECT title,text FROM settings WHERE page='index'", $db); if (! $result) { echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору belova_pi302@mail.ru. <br> <strong>Код ошибки: <strong></p>"; exit (mysql_error ()); } if (mysql_num_rows ($result) >0) { $myrow = mysql_fetch_array ($result); } else { echo "<p>Информация по запросу не может быть извлечена - в таблице нет записей. </p>"; exit (); }? > <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title><? php echo $myrow ["title"];? ></title> <meta http-equiv="Page-Enter" content="progid: DXImageTransform. Microsoft. Fade (Duration=2)"> <link href="style. css" rel="stylesheet" type="text/css"> <? php echo $myrow ["text"];? > Часть кода страницы "Поиск": <? include ("blocks/bd. php"); if (isset ($_POST ['submit_s'])) { $submit_s = $_POST ['submit_s']; } if (isset ($_POST ['search'])) { $search = $_POST ['search']; } if (isset ($submit_s)) { if (empty ($search) or strlen ($search) < 4) { exit ("<p>Поисковый запрос не введен, либо он менее 4-х символов. </p>"); } $search = trim ($search); /*Удаление лишних пробелов*/ $search = stripslashes ($search); /*Удаление обратных "/", которые ставит php для апострофов из запроса*/ $search = htmlspecialchars ($search); /*Замена исполняемых кодов, тегов на специальные мнемоники*/ } else { exit ("<p>Вы обратились к файлу без необходимых параметров. </p>"); }? > <? echo "<p class='post_title'>Данные по запросу - '$search'. <p>"; $result = mysql_query ("SELECT id,title,description,date,view FROM data WHERE text LIKE '%". $search. "%' ",$db); /*Выбираем поля из таблицы data, где найдено соответствие в поле text со словом $search*/ if (! $result) { echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору belova_pi302@mail.ru. <br> <strong>Код ошибки: </strong></p>"; exit (mysql_error ()); } if (mysql_num_rows ($result) > 0) { $myrow = mysql_fetch_array ($result); do { printf ("<table align='center' class='post'> <tr><td> <p class='post_name'><a href='view_post. php? id=%s'>%s</a></p> <p class='post_adds'>Дата добавления:%s </p></td></tr> <tr> <td><p>%s </p> <p class='post_adds'>Просмотров:%s </p></td></tr> </table><br><br>", $myrow ['id'], $myrow ['title'], $myrow ['date'], $myrow ['description'], $myrow ['view']); } while ($myrow = mysql_fetch_array ($result)); } else { echo "<p>Информация по Вашему запросу в учебнике не найдена. </p>"; exit (); }? > Часть кода страницы "Введение данных новой задачи в БД": <? php include ("lock. php"); include ("blocks/bd. php"); if (isset ($_POST ['title'])) {$title = $_POST ['title']; if ($title== '') {unset ($title); }} if (isset ($_POST ['date'])) {$date = $_POST ['date']; if ($date== '') {unset ($date); }} if (isset ($_POST ['description'])) {$description = $_POST ['description']; if ($description== '') {unset ($description); }} if (isset ($_POST ['text'])) {$text = $_POST ['text']; if ($text== '') {unset ($text); }} if (isset ($_POST ['cat'])) {$cat = $_POST ['cat']; if ($cat== '') {unset ($cat); }}? > <? php if (isset ($title) && isset ($date) && isset ($description) && isset ($text) && isset ($cat)) { $result = mysql_query ("INSERT INTO tasks (title,date,description,text,cat) VALUES ('$title','$date','$description','$text','$cat')"); if ($result=='true') {echo "<p>Ваша задача успешно добавлена! </p>"; } else {echo "<p>Ваша задача не добавлена! </p>"; } } else { echo "<p>Вы ввели не всю информацию, поэтому задача в базу не может быть добавлена. </p>"; }? > Часть кода страницы "Удаление данных задачи из БД": <? php include ("lock. php"); include ("blocks/bd. php"); if (isset ($_POST ['id'])) {$id = $_POST ['id']; } ? > <? php if (isset ($id)) { $result = mysql_query ("DELETE FROM tasks WHERE id='$id'"); if ($result=='true') {echo "<p>Ваша задача успешно удалена! </p>"; } else {echo "<p>Ваша задача не удалена! </p>"; } } else { echo "<p>Вы запустили данный файл без параметра id, поэтому удалить задачу невозможно (скорее всего, Вы не выбрали радиокнопку на предыдущем шаге). </p>"; }? > Часть кода страницы "Добавление нового опроса": <? include ("lock. php"); include ("blocks/bd. php");? > <? php echo "<p align='center'><strong>Добавление опроса</strong></p>"; if ($_GET ['action'] =='new') { if ($_GET ['step'] =='') { echo '<form name="" action="? action=new&step=1" method="post"> <p>Введите вопрос: <br> <input name="q" type="text" value="" size="70"><br><br> Введите число ответов: <br> <input name="nums" type="text" value="3"><br><br> <input type="submit" value="Далее"></p> </form>'; } // Шаг первый: создаем if ($_GET ['step'] =='1') { $q1 = @mysql_query ("INSERT INTO questions (question) VALUES ('". addslashes ($_POST ['q']). "')"); // Находим id этого вопроса $q2 = @mysql_query ("SELECT MAX (id) FROM questions"); echo '<p>На вопрос: '. $_POST ['q']. ' - заполните варианты ответов: </p>'; echo '<form name="" action="? action=new&step=2" method="post">'; for ($i=0; $i<=$_POST ['nums'] -1; $i++) { echo '<p><input name="answ ['. $i. '] " type="text" value=""></p>'; } echo '<input name="numb" type="hidden" value="'. mysql_result ($q2,0,0). '">'; echo '<p><input type="submit" value="Добавить"></p>'; echo '</form>'; } if ($_GET ['step'] =='2') { $limit=count ($_POST ['answ']); for ($i=0; $i<=$limit-1; $i++) { @mysql_query ("INSERT INTO answers (numb,var,kol) VALUES ('". $_POST ['numb']. "','". $_POST ['answ'] [$i]. "','0')"); } echo '<p>Ответы сохранены в базе. <br/><a href="index. php">Вернуться на главную страницу. </a></p>'; }}? > Часть кода страницы "Просмотр результатов голосования": <? php include ("lock. php"); include ("blocks/bd. php"); if (isset ($_POST ['id'])) {$numb = $_POST ['id']; if ($cat== '') {unset ($numb); }} ? > <form action="view_inter. php" method="post" name="form"> <p><label>Выберите опрос: </p> <select name='cat'> <? php $result1 = mysql_query ("SELECT id,question FROM questions", $db); if (! $result1) {echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору belova_pi302@mail.ru. <br><strong>Код ошибки: <strong></p>"; exit (mysql_error ()); } if (mysql_num_rows ($result1) >0) { $myrow1 = mysql_fetch_array ($result1); do { printf ("<option value='%s'>%s</option>", $myrow1 ["id"], $myrow1 ["question"]); } while ($myrow1 = mysql_fetch_array ($result1)); }? ></select></label><br><br> <input name='submit' type='submit' value='Просмотр результата'></p></form> <? php $cat = $_POST ['cat']; if ($cat) { $result2 = mysql_query ("SELECT * FROM answers WHERE numb='$cat' ORDER BY kol DESC", $db); $myrow2 = mysql_fetch_array ($result2); echo "<br><p class='post_title'>Результаты опроса: </p><br><br>"; echo "<table border=1 align='center' class='sortable'><tr><td>Варианты ответа</td><td>Количество голосов</td></tr>"; do{ echo "<p><tr><td class='sortabletd'>". $myrow2 ['var']. "</td><td class='sortabletd'>". $myrow2 ['kol']. "</td></tr></p>"; } while ($myrow2 = mysql_fetch_array ($result2)); echo "</table>"; }? >
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|