Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет.docx
Скачиваний:
14
Добавлен:
07.03.2016
Размер:
743.99 Кб
Скачать

Оглавление

ВВЕДЕНИЕ 10

Глава 1 Теоретические основы автоматизированной системы расписания занятий 11

1.1 Понятие автоматизации 11

Следует начать с определения понятия «автоматизация». Под автоматизацией обычно понимают применение технических и программных средств, частично или полностью освобождающих человека от непосредственного участия в процессах получения, преобразования, передачи и использования материалов или информации. 11

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

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

Этап 1: постановка проблемы, оценка необходимости автоматизации и возможностей предприятия; 11

Этап 2: формирование требований к программно-аппаратному комплексу, выбор или реализация программного продукта и технического обеспечения; 11

Этап 3: внедрение программного продукта; 11

Этап 4: послегарантийное обслуживание программно-аппаратного комплекса. 11

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

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

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

Глава 2 Разработка сайта 12

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

В рамках сайта необходимо разработать систему позволяющую облегчить возможность составления расписания. В качествене инструментов для разработки будем пользоваться такими языками программирования как: PHP, HTML5, CSS3, JQuery и MySQL. 12

2.2 Дизайн 12

В качестве основного принципа дизайна, было решено выбрать Material design от корпорации Google. 12

Material Design (рус. Материальный дизайн) — дизайн программного обеспечения и приложений операционной системы Android от компании Google. Впервые представлен на конференции Google I/O 25 июня 2014 года. Идея дизайна заключается в приложениях, которые открываются и сворачиваются как карточки, используя эффекты теней. По идее дизайнеров Google у приложений не должно быть острых углов, карточки должны переключаться между собой плавно и практически незаметно. 12

Material Design – это новый фреймворк, который, как верит Google, и создаст эту интуитивную модель. Это такой же революционный продукт, как, например, iPhone от Apple. В нем сочетаются гибкость и простота, которые помогут разобраться с новыми технологиями. И если Google выполнит свое обещание, и сможет привнести данную технологию во все свои продукты, включая web, Chrome OS и Android, она, действительно, поможет нам понять технологии, и избавит нас от необходимости подстраиваться под различные модели. 12

Примеры «Материального дизайна»: 12

12

Рисунок 1.1 – Отображение календаря на различных устройствах 13

В настоящее время существует многожество CSS фреймворков посвященных этому дизайну, одним из которых является materialize.css. Данная библиотека разработана студентами университета Карнеги-Меллона и является open-source продуктом (ссылка проекта на GitHub : https://github.com/dogfalo/materialize/) . 13

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

В итоге был получен адаптивый веб-дизайн динамически подстраивающийся под заданные размеры окна браузера. 13

13

Рисунок 1.2 – Вид сайта на устройствах более чем 992 пикселя в ширину 13

13

Рисунок 1.3 – Вид сайта на устройствах не более чем 992 пикселя в ширину 13

2.3 Структура базы данных 15

В этом разделе представлена схема базы данных. Для каждой таблицы указываются: ее название, структура, описание и назначения. 15

Burden 15

Таблица для хранения нагрузки преподавателя. 15

Структура таблицы burden: 15

b_id – ключевое поле, идентификатор 15

b_teacher_id – ссылка на идентификатор из таблицы teachers 15

b_subject_id – ссылка на идентификатор из таблицы subjects 15

b_quater – количество часов в неделю 15

b_half – количество часов в неделю 15

b_full – количество часов в неделю 15

b_course – курс 15

b_group – группа 15

b_faculty – факультет 15

Schedule 15

Таблица для хранения расписания. 15

Структура таблицы schedule: 15

sc_id – ключевое поле, идентификатор 15

sc_teacher_id – ссылка на идентификатор из таблицы teachers 15

sc_subject_id – ссылка на идентификатор из таблицы subjects 15

sc_position – характеристики пары 15

sc_row – строка в таблице расписания (номер пары) 15

sc_weekday – день недели 15

sc_course – курс 15

sc_group – группа 15

sc_faculty – факультет 15

Speciality 15

Таблица для хранения специальностей. 15

Структура таблицы speciality: 15

sp_id – ключевое поле, идентификатор 15

sp_titile – название специальности 15

sp_course – курс 15

sp_group – группа 15

sp_faculty – факультет 15

Teachers 16

Таблица для хранения преподавателей. 16

Структура таблицы teachers: 16

t_id – ключевое поле, идентификатор 16

t_title – инициалы преподавателя 16

Subjects 16

Таблица для хранения дисциплин. 16

Структура таблицы subjects: 16

sb_id – ключевое поле, идентификатор 16

sb_title – название специальности 16

Users 16

Таблица для хранения пользователей. 16

Структура таблицы users: 16

user_id – ключевое поле, идентификатор 16

name – имя 16

surname – фамилия 16

login – логин пользователя 16

password – пароль пользователя (хеш md5) 16

16

Рисунок 1.4 – Схема базы данных 16

2.4 Программная реализация 17

Файл index.php является главным файлом сайта, а также благодаря ему страница динамически изменяется. Например, в случае если условие ниже верно – будет получена форма с авторизацией / регистрацией пользователя. 17

// файл содержащий форму для входа/регистации 18

include("php/start.php"); 18

} 18

В случае, если пользователь удачно вошел в систему, то условие пойдет по ветке «иначе» и будет получена страница другого вида. 18

else { 18

if(!$_GET["faculty"] || !$_GET["course"] || !$_GET["weekday"]){ 18

echo "<script>location = 18

'index.php?faculty=1&course=1&weekday=1'</script>"; 18

} 18

// введем обозначение 18

$faculty = $_GET["faculty"]; 18

$course = $_GET["course"]; 18

$weekday = $_GET["weekday"]; 18

include("php/db_connect.php"); 18

// забираем группы выбранным факультета и курсом 18

$sql = " 18

SELECT sp_title 18

FROM speciality 18

WHERE sp_course = ".$course." 18

AND sp_faculty = ".$faculty." 18

"; 18

$query = mysql_query($sql) or die(mysql_error()); 18

$g = 0; 18

while($row = mysql_fetch_array($query)){ 18

$a[$g] = $row['sp_title']; 18

$g++; 18

} 18

18

// количество групп 18

$col = $g; 18

// забираем часы и предметы выбранного преподавателя 18

$sql = " 18

SELECT b_quater, b_half, b_full, t_name, t_id, sb_title, sb_id 18

FROM burden, teachers, subjects 18

WHERE burden.b_teacher_id = teachers.t_id 18

AND burden.b_subject_id = subjects.sb_id 18

AND b_course = ".$course." 18

AND b_faculty = ".$faculty." 18

"; 18

$query = mysql_query($sql) or die(mysql_error()); 18

19

$t_name = array(); 19

$list = array(); 19

$list_q = array(); 19

$list_h = array(); 19

$list_f = array(); 19

$teachers_id = array(); 19

$subjects_id = array(); 19

while($row = mysql_fetch_array($query)){ 19

$s = $row['t_name']; 19

if(!$list[$s]){ 19

array_push($t_name, $s); 19

array_push($teachers_id, $row['t_id']); 19

$list[$s] = array(); 19

$list_q[$s] = array(); 19

$list_h[$s] = array(); 19

$list_f[$s] = array(); 19

$subjects_id[$s] = array(); 19

} 19

array_push($list[$s], $row['sb_title']); 19

array_push($list_q[$s], $row['b_quater']); 19

array_push($list_h[$s], $row['b_half']); 19

array_push($list_f[$s], $row['b_full']); 19

array_push($subjects_id[$s], $row['sb_id']); 19

} 19

// Навигация/header-сайта 19

include("php/nav.php"); 19

echo ' 19

<div id="temp"></div> 19

<div class="row" id="sheet"> 19

'; 19

// Основное содержание страницы 19

include("php/main.php"); 19

echo' 19

</div> 19

'; 19

19

// Подвал/footer-сайта 19

include("php/footer.php"); 19

} 19

Содержание файла start.php: 19

<?php 19

echo' 19

<div class="container"> 19

<div class="row" > 19

<div class="col s12" id="sign-in"> 19

<legend>Авторизация</legend> 19

<form action="/php/login.php" method="POST"> 19

<input type="text" name="login" 20

placeholder="Введите логин пользователя"> 20

<input type="password" name="password" 20

placeholder="Введите пароль пользователя"> 20

<button type="submit" name="submit" 20

class="btn">Вход</button> 20

<button id="btn-reg" class="btn">Регистрация</button> 20

</form> 20

</div> 20

<div class="col s12" id="registration"> 20

<legend>Регистрация</legend> 20

<form method="POST"> 20

<input id="name" type="text" class="span4" 20

placeholder="Имя"> 20

<input id="surname" type="text" class="span4" 20

placeholder="Фамилия" required> 20

<input id="login" type="text" class="span4" name="login" 20

placeholder="Логин" required> 20

<input id="pass" type="password" class="span4" 20

name="password" placeholder="Пароль" required> 20

<button id="reg" type="submit" name="submit" 20

class="btn" >Зарегистрироваться</button> 20

<button id="back-to-future" type="submit" 20

name="submit" class="btn" >Назад</button> 20

</form> 20

</div> 20

</div> 20

</div> 20

'; 20

?> 20

Содержание файла nav.php: 20

Содержание файла insert.php 37

<?php 37

include('db_connect.php'); 37

$sql = " 37

INSERT INTO `schedule` ( `sc_id` , `sc_teacher_id` , 37

`sc_subject_id` , `sc_faculty` , `sc_course` , `sc_weekday` , 37

`sc_group` , `sc_position` , `sc_row` ) 37

VALUES ( 37

'', '".$_POST['teacher_id']."', 37

'".$_POST['subject_id']."', 37

'".$_POST['faculty']."', '".$_POST['course']."', 37

'".$_POST['weekday']."', '".$_POST['group']."', 37

'".$_POST['position']."', '".$_POST['row']."' 37

); 37

"; 37

$query = mysql_query($sql); 37

$sql = "UPDATE `burden`"; 37

switch($_POST['b_size']){ 37

case 0: $sql = $sql." SET b_quater = b_quater - 1 WHERE 37

b_teacher_id = ".$_POST['teacher_id']." AND b_subject_id = 37

".$_POST['subject_id'].""; break; 37

case 1: $sql = $sql." SET b_half = b_half - 1 WHERE 37

b_teacher_id = ".$_POST['teacher_id']." AND b_subject_id = 37

".$_POST['subject_id'].""; break; 37

case 2: $sql = $sql." SET b_full = b_full - 1 WHERE 37

b_teacher_id = ".$_POST['teacher_id']." AND b_subject_id = 37

".$_POST['subject_id'].""; break; 37

} 37

$query = mysql_query($sql); 37

?> 37

ЗАКЛЮЧЕНИЕ 39

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 40

1.https://ru.wikipedia.org/wiki/Material_design 40

2.http://la.by/blog/razrabotka-avtomatizirovannoy-sistemy-raspisaniya-zanyatiy-uchebnogo-zavedeniya 40

3.https://ru.wikipedia.org/wiki/PHP 40

4.https://ru.wikipedia.org/wiki/JavaScript 40

5.Автоматизация составления расписания учебных занятий в вузе // Материалы Всероссийской научно-технической конференции «Наукоемкие технологии в приборо- и машиностроении и развитие инновационной деятельности в ВУЗе». – Т.2. – М., Издательство МГТУ им. Н.Э.Баумана, 2008. – С. 98. 40

6.Брезгинов, А.Н. Обзор существующих методов составления расписаний / А.Н. Безгинов, С.Ю. Трегубов // Информационные технологии в программировании. – М., 2005. – №2(14). 40