Текст программы с описанием




ОБЩАЯ ЧАСТЬ

Цель разработки

Цель данной дипломной работы создание он-лайн “Cистемы дистанционного обучения iShoool ”, которую в дальнейшем возможно будет подстроить под любую систему образования. Система должна иметь следующие характеристики:

· наличие трех типов пользователей: директор, учитель, ученик, каждый должен обладать своими определенными правами на сайте;

· формировать классы;

· разработать возможность создавать и редактировать расписание, назначать учителям нужные предметы нужных классов.

· дать директору права на просмотр и редактирование любого журнала его образовательного учреждения, статистики

· дать возможность проводить дистанционное тестирование, голосование, а также возможность добавлять дистанционные занятия;

· дать ученикам возможность подписываться на уроки учителей других образовательных учреждений

· для нахождения нужной информации система должна обладать удобным поиском.


1.2. Обзор средств программирования

При написании системы использовались следующие языки: PHP, MySQL, Javascript, CSS, HTML.

Для редактирования которых понадобился только один редактор это Notepad++

Notepad++ — свободный текстовый редактор для Windows с подсветкой синтаксиса большого количества языков программирования и разметки. Он базируется на компоненте Scintilla, написан на C++ с использованием STL и распространяется под лицензией GPL. Базовая функциональность программы может быть расширена как за счёт плагинов, так и сторонних модулей, таких как компиляторы и препроцессоры.

Базовые возможности

· Подсветка синтаксиса

· Сворачивание кода

· Автодополнение

· Закладки

· Регулярные выражения для поиска и замены

· HEX-редактор

· Запись и воспроизведение макросов

· Сравнение файлов

· Переопределение любых горячих клавиш

· Резервное копирование сохраняемых файлов (включается в настройках)

· Трансформация текста при помощи подключённого плагина TextFX

· Поддержка и конвертирование кодировок ANSI, UTF-8 и UCS-2

· Блоковое выделение текста, одновременное выделение нескольких разных мест (с CTRL)

· При установке дополнительных плагинов

· Шаблоны текста (сниппеты), вводимые с помощью сокращений (плагин SnippetPlus)

· FTP-менеджер (плагины: NppFTP)

· Авто-сохранение (при потере фокуса; через настраиваемый промежуток времени)

· Проверка орфографии (с использованием GNU Aspell)

· Мощное симметричное и асимметричное шифрование текста (при установке плагина NppDarkCrypt)

· Поддержка Zen Coding

Описание языка

PHP - (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

В области программирования для Сети PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

· автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

· взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

· автоматизированная отправка HTTP-заголовков;

· работа с HTTP-авторизацией;

· работа с cookies и сессиями;

· работа с локальными и удалёнными файлами, сокетами.

· обработка файлов, загружаемых на сервер;

· работа с XForms;

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.

Входит в LAMP — распространённый набор программного обеспечения для создания веб-сайтов (Linux, Apache, MySQL, PHP).

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.

Простейшая программа Hello world на PHP выглядит следующим образом:

<?php echo 'Hello, world!';?>

PHP исполняет код, находящийся внутри ограничителей, таких как <?php?>. Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ, например, так:

<html> <head> <title>Тестируем PHP</title> </head> <body> <?php echo 'Hello, world!';?> </body></html>

Помимо ограничителей <?php?>, допускается использование дополнительных вариантов, таких как <??> и <script language="php"> </script>. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> (конструкции <??> и <% %> могут быть выключены в конфигурационном файле php.ini).

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. Имена переменных, функций и классов чувствительны к регистру. Константы также чувствительны к регистру. Переменные обрабатываются в строках, заключённых в апострофы или двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).

PHPрассматривает переход на новую строку как пробел, так же как HTMLи другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев, после объявления конструкции if/elseи циклов.

PHPподдерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX(с # до конца строки).

HTML- (от англ. HyperTextMarkupLanguage— «язык разметки гипертекста») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML(или XHTML). Язык HTMLинтерпретируется браузером и отображается в виде документа, в удобной для человека форме.

В настоящее время Консорциум всемирной паутины разрабатывает HTMLверсии 5. Черновой вариант спецификации языка появился в Интернете 20 ноября 2007 года.

Сообществом WHATWG(англ. WebHypertextApplicationTechnologyWorkingGroup), начиная с 2004 года, разрабатывается спецификация WebApplications1.0, часто неофициально называемая «HTML5», которая расширяет HTML(впрочем, имея и совместимый с XHTML1.0 XML-синтаксис) для лучшего представления семантики различных типичных страниц, например форумов, сайтов аукционов, поисковых систем, онлайн-магазинов и т. д., которые не очень удачно вписываются в модель XHTML2.

HTML— теговый язык разметки документов. Любой документ на языке HTMLпредставляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками — тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки <br>). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем теге.

Регистр, в котором набрано имя элемента и имена атрибутов, в HTML значения не имеет (в отличие от XHTML). Элементы могут быть вложенными.

MySQL (/mɑɪ ɛs kjuː ɛl/, «май-эс-кью-эль», жарг. мускул) — свободная система управления базами данных (СУБД). MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQLявляется решением для малых и средних приложений. Входит в состав серверов WAMP, LAMPи в портативные сборки серверов Денвер, XAMPP. Обычно MySQLиспользуется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQLв автономные программы.Гибкость СУБД MySQLобеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQLпоставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQLпостоянно появляются новые типы таблиц. JavaScript- объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.JavaScriptобычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.На JavaScriptоказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScriptне владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.JavaScriptобладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обусловливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScriptимеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость.Несмотря на схожий с Си синтаксис, JavaScriptпо сравнению с языком Си имеет коренные отличия:· объекты, с возможностью интроспекции;· функции как объекты первого класса;· автоматическое приведение типов;· автоматическая сборка мусора;· анонимные функции.Для добавления JavaScript-кода на страницу, можно использовать теги <script></script>.Скрипт, выводящий модальное окно с классической надписью «Hello, World!» внутри браузера:<script type="text/javascript"> alert('Hello, World!');</script>

СПЕЦИАЛЬНАЯ ЧАСТЬ

Постановка задачи

Задача состоит в воссоздании следующего функционала и структуры страниц:

· Функционал предоставляемый для всех пользователей системы

o Регистрация

o Редактирование личной информации

o Изменение аватара

o Просмотр статистики, графиков успеваемости и посещаемости

o Просмотр журнала

o Подписка на уроки учителей, возможно других школ

o Прохождение тестов, голосований

o Доступ ко всем лекциям системы

o Поиск нужной информации по системе: школ, директоров, учителей, учеников, классов, уроков

o Возможность сообщения об ошибках т.е. обратная связь

o Получение всех связанных с системой запросов

· Функционал предоставляемый для директоров

o Настройка школы

§ Редактирование информации школы

§ Редактирование расписания

§ Установка расписания для учителей

§ Добавление и удаление учителей

§ Добавление и удаление учеников

§ Редактирование классов

§ Установка времени проведения занятий: начало, длительность урока, перемена, большая перемена и т.д.

o Редактирование любого журнала школы

o Создание тестов, голосований, лекций

· Функционал предоставляемый для учителей

o Редактирование журналов тех классов которым учитель преподает

o Создание тестов, голосований, лекций

o Получение запросов о уроках которые должны быть проведены за текущий день

· Функционал предоставляемый для учеников

o Просмотр своей статистики по успеваемости, посещаемости и активности

o Просмотр дневника за весь промежуток времени который школа существует в системе

Описание алгоритма

Все возможности программы можно представить в виде структурной схемы изображенной на рисунке 2.1.

Рис 2.1

Текст программы с описанием

Текст программы составлен в соответствии с ГОСТ 19.101-77 (СТ СЭВ 1626-79) представляет собой запись программы на языке PHP с необходимыми комментариями.

Описание программы.

Наименование программы: «Система дистанционного обучения iSchool»;

Объем программы: 1,2 МБ.

В необходимое программное обеспечение для данной программы входит операционная система WINDOWS XP SP2.

Язык программирования PHP 5

Работа с системой любого пользователя начинается с главной станицы (рис. 2), которая выглядит следующим образом:

 

Рис. 2.2

 

Эта страница выводится в том случае если пользователь не выполнил вход в систему. Чтобы стать пользователем системы необходимо зарегистрироваться, нажав на ссылку регистрация под формой входа логина Рисунок 2.3:

 

Рис. 2.3

 

Открывается форма регистрации, где необходимо предварительно выбрать тип регистрируемого аккаунта. Регистрация для всех трех видов пользователей проходит по разному, директору предлагается создать образовательное учреждение, школу, учителю найти и связать свой регистрируемый аккаунт со своим профилем, предварительно созданным зарегистрированным раннее директором того образовательного учреждения в котором работает данный учитель, и соответственно ученику предлагается связать свой регистрируемы аккаунт с профилем. После заполнения всех этих форм необходимо подтвердить правильность своего электронного адреса активировав аккаунт (рис. 4).

 

Рис. 2.4

 

Код PHP файла в котором проверятся зарегистрирован ли пользователь его тип аккаунта и т.д.:

<?php

@session_start();

function oute(){//функция для выхода из системы

unset($_SESSION['utype']);

unset($_SESSION['login']);

unset($_SESSION['password']);

session_destroy();

header("Location: /");

}

require_once('idb-class.php');//подключаем файл класса БД

require_once('functions.php');//подключаем файл функций

$db = new iDB;//создаем новый класс БД

 

//utype - тип пользователя директор уичтель или ученик

if (!isset($_SESSION['utype'])){

//форма входа и регистрации

require_once('firstpage.php');//загружаем первую страницу

 

}

else{

//процедура для кнопки выхода

if(isset($_POST['oute'])){

oute();

}

//проверяем правильные ли логин и пароль сохранены в сессии

$prov = autantification($db);

if(!is_array($prov)){

if($prov == 'needactiv'){

header('Location: /activation.php');

exit();

}

else{

header('Location: /');

}

}

if(!$prov){

oute();//неправильный логин стираем все и перезагружаемся

}

else{

//login существует проверяем пароль

//пароль правильный проверяем тип

switch($prov[0]){

case 'dr':

//все правильно выводим страницу *директора

require_once('director.php');

break;

case 'th':

//все правильно выводим страницу *учителя

require_once('teacher.php');

break;

case 'pu':

//все правильно выводим страницу *ученика

require_once('pupil.php');

break;

}

}

}

?>

 

После входа в систему каждый пользователь попадает на свою страницу. У всех трех типов пользователей она разная.


Страница пользователя типа директор:

Рис. 2.5

На рисунке красными кружочками показаны логические блоки страницы:

1. Выводится логотип системы iSchoool. Далее идет меню, первый пункт показывает сколько запросов ожидает модерации, второй пункт ведет на журнал школы а третий на страницу поиска.

2. Имя и фамилия директора после чего идут список вкладок. По умолчанию выбрана первая вкладка школа в которой выводятся логические блоки 6, 7, 8, 9

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

4. Меню директора состоящее из ссылок на страницу настройки аккаунта, настройки школы и на страницу школы

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

6. Краткая информация о школе. Отредактировать эту информацию директор может пройдя по ссылке настройки школы.

7. Четыре случайных класса из всего списка классов школы

8. Расписания четырех случайных классов

9. Четыре случайных учителя из списка всех учителей школы

Блоки 6, 7, 8, 9 имеют ссылки на редактирование в верхнем правом углу. Также снизу каждой страницы располагаются копирайты и ссылки на страницу с формой поддержки, страницу с правилами и страницу информации о проекте.

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

Рис. 2.6

На вкладке Лента у директоравыводятся все уроки школы директора и уроки людей, на которых подписан директор. Также над все лентой выводится форма добавления урока, которая имеет возможность прикреплять к уроку тесты, голосования и лекции.

 

Рис. 2.7

Как видно на рисунке 2.7 на вкладке статистика выводится три графика. Графики успеваемости школы, посещаемости и активности. Статистики отдельно для ученика класса выводятся соответственно на страницах ученика и класса.

 

Рис. 2.8

Выводится подробная информация о директоре и сводка, о школе, т.е. сколько учителей зарегистрировано в системе из этой школы, сколько учеников и средний балл школы.

 

Страница пользователя типа учитель:

 

Рис. 2.9

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


Страница пользователя типа ученик:

В целом страницы всех трех типов пользователей одинаковы отличие лишь в количестве вкладок и в меню.

 

Рис. 2.10

 

По умолчанию выводится список уроков.

Рис. 2.11

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

Страница школы:

Рис. 2.12

По умолчанию на странице школы открывается вкладка с информацией о школе, остальные вкладки показывают статистику, список учителей и список классов. Вкладка со списком учителей

Рис. 2.13

Как видно на рисунке, справа напротив имени учителя располагается кнопка подписаться/отписаться, она дает возможность подписываться на учителей данной школы, тем самым получая возможность видеть их уроки в своей ленте уроков.


На следующем рисунке показана вкладка со списком классов:

Рис. 2.14

 

Страница класса:

Рис. 2.15

По умолчанию на странице класса открывается вкладка с информацией о классе. Также имеются три дополнительные вкладки со статистикой, учениками и расписание класса.

Список учеников:

Рис. 2.16


Расписание класса:

Рис. 2.17

 

Страница поиска:

Рис. 2.18

На странице поиска есть поле ввода слова или фразы, по которому будет производиться поиск, и разделы, в которых можно искать нужную информацию. Результаты поиска выводятся под полем ввода.


Страница подписки:

Рис. 2.19

Страница подписки состоит из двух вкладок. В первой вкладке выводится список пользователей, на которых подписан текущий пользователь, во второй список пользователей которые подписаны на пользователя. Также эти списки разделяются на типы пользователей.

Рис. 2.20

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

 

 

Вкладка расписание:

Рис. 2.21

Расписание максимально приближенно к обычному школьному расписанию.

Вкладка учителя:

Рис. 2.22

Выводится список профилей учителей их можно изменять, удалять, добавлять. Менять можно предметы которые учитель преподает и указывать классы которым он преподает.


Вкладка классы:

Рис. 2.23

Вкладка время:

Рис. 2.24

В этой вкладке редактируется время проведения уроков.


Страница журнала:

Рис. 2.25

Журнал похож на обычный школьный журнал. Слева список учеников справа оценки. Оценки разбиваются на месяца, месяца на года, чтобы посмотреть год месяца достаточно навести на месяц курсором, сверху появится год месяца. Для добавления оценки нужно кликнуть на нужную ячейку, после чего появится меню с выбором оценки. Уроки по расписанию добавляются автоматически если, для добавления урока не по расписанию нужно кликнуть на кнопку добавить урок (вне расписания). При нажатии на дату урока под журналом открывается подробное описание урока: тема урока, время, учитель, тест, голосование, лекция. По умолчанию в журнале выводятся последние 26 уроков по данному предмету. Чтобы посмотреть другие уроки достаточно выбрать нужный промежуток даты.

Прикрепление к уроку теста, лекции и голосвания:

Тесты в системы пользователи могут создавать только с двух страниц: со своей главной страницы (в ленте уроков) или на странице журнала. При добавлении урока под журналом открывается следующая панель

 

Рис. 2.26

После клика на красную панель открывается форма прикрепления к уроку темы, лекции, теста, голосования и домашнего задания на следующий урок:

 

Рис. 2.27

Окно добавления текста выглядит следующим образом:

 

Рис. 2.28

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

При добавлении лекции система предлагает выбрать тип добавляемой лекции т.е. прикрепить лекцию как файл или просто как текст:

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

Рис. 2.29

А при добавлении лекции типа файл, простое поле для выбора файла. Форма создания голосования, чем то, похожа на форму добавления теста:

 

Рис. 2.30


ЗАКЛЮЧЕНИЕ

Данная дипломная работа по теме «Система дистанционного обучения» была выполнена на языках: PHP, JavaScript, MySQL, HTML, CSS.

 

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

Его применение позволит повысить не только интерес к учебе, но и успеваемость. Большинство школьников воспринимают лучше информацию зрительно, тем более, если она качественно оформлена. Система дает возможность каждому школьнику независимо от уровня подготовки активно участвовать в процессе образования, индивидуализировать свой процесс обучения, осуществлять самоконтроль. Быть не пассивным наблюдателем, а активно получать знания и оценивать свои возможности. Школьники начинают получать удовольствие от самого процесса обучения, независимо от внешних мотивационных факторов. Этому способствует и то, что при информационных технологиях обучения компьютеру на время переданы отдельные функции преподавателя. А компьютер может выступить в роли терпеливого педагога-репетитора, который способен показать ошибку и дать правильный ответ, и повторять задание снова и снова, не выражая ни раздражения, ни досады.


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: