Разработка информационной системы управления учебным процессом (на примере филиала РГГУ г. Всеволжска)

Задачи, функции и структура филиала университета. Оценка информационных потоков и UML-моделирование. Анализ структуры информационной системы и системы навигации. Проектирование базы данных, физическая реализация и тестирование информационной системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 21.01.2012
Размер файла 6,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рис. 2.10 Сетевая структура данных

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

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

Реляционные базы данных построены на основе отношений, обычно называемых таблицами.[17]

На пересечении строк и столбцов и строки находятся значения содержащихся в таблице данных.

Отличия данных в таблицах реляционной базы данных:

- Все значения, содержащиеся на пересечении строк и столбцов, должны быть конечными.

- Все значения одного столбца должны иметь один тип данных.

- В таблице не должно быть несколько записей на одном пересечении.

- Все поля базы данных имеют уникальные имена.

- Несущественна последовательность полей в таблице.

- Несущественна последовательность записей в таблице.

Часто встречается ситуация, когда некоторые поля одних объектов указывают на другие объекты. Для реализации под СУБД данного механизма лучше всего объявить некоторые поля - ключи.[24]

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

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

Для работы с реляционными базами данных был разработан язык SQL. SQL - это язык ориентированный специально на реляционные базы данных. Команды в SQL могут работать со всеми группами таблиц как с единым объектом и могут обрабатывать любое количество информации извлеченной или полученной из их, в виде единого модуля. [21]

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

2.5.2 Создание логической модели данных

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

- студенты;

- преподаватели;

- кафедры;

- специальности;

- предметы;

- ведомости.

Определим одноименные сущности для проектируемой ИС.

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

Каждый студент учится по своей специальности, следовательно, прослеживается связь между сущностями «Студенты» и «Специальность». Каждый студент находятся в группе - сущность «Группы».

Каждый преподаватель закреплен за определенной кафедрой и ведет свои предметы, следовательно, имеется связи между сущностями «Преподаватели», «Кафедры» и «Предметы». Каждый преподаватель имеет свою ученую степень на основе, которой ему начисляется заработная плата. Для этого потребуется создать отдельную сущность «Ученые степени» и связать её с сущностью «Преподаватели».

Сущность «Ведомости» формируется за счет сущностей «Предметы» «Преподаватели», «Группы» и «Студенты». Общая логическая модель данных представлена на Рис 2.11.

Рис 2.11 Общая логическая модель данных

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

Нормализация предназначена для приведения структуры базы данных к виду, обеспечивающему минимальную избыточность, то есть нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение объёма БД.

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

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

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

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

информационный моделирование база данных

Таблица находится в четвёртой нормальной форме, если она находится в нормальной форме Бойса и не содержит нетривиальных многозначных зависимостей.

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

Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.

Выделим ключевые атрибуты для каждой сущности (Таблица 1)

Таблица 2.1

Атрибуты сущностей

Сущность

Атрибуты

Студенты

id, Фамилия, Имя, Отчество, Специальность, Год поступления, id группы, Номер зачетной книжки

Преподаватели

Id, Фамилия, Имя, Отчество, id ученой степени, id кафедры, id преподаваемых предметов

Кафедры

id, Название, Заведующий кафедрой

Предметы

id, Название

Специальности

id, Название

Ученые степени

id, Название

Группы

id, Название, год обучения, номер группы

Список_Ведомостей

Id, id предмета, id группы, дата

Ведомости

Id, id ведомости, id студента, оценка

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

Таблица 2.2

Таблица «Студенты»

Название столбца

Тип данных

Пометка

id

Целое

PK, UN

Фамилия

Строка

Имя

Строка

Отчество

Строка

Id специальности

Целое

FK

Год поступления

Дата

id группы

Целое

FK

Номер зачетной книжки

Строка

UN

Таблица 2.3

Таблица «Преподаватели»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Фамилия

Строка

Имя

Строка

Отчество

Строка

id ученой степени

Целое

FK

id кафедры

Целое

FK

id преподаваемых предметов

Строка

FK

Таблица 2.4

Таблица «Кафедры»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Заведующий кафедрой

Строка

Таблица 2.5

Таблица «Предметы»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Таблица 2.6

Таблица «Специальности»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Таблица 2.7

Таблица «Ученые степени»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Таблица 2.8

Таблица «Группы»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

Название

Строка

Номер группы

Целое

Год обучения

Целое

Таблица 2.9

Таблица «Список ведомостей»

Название столбца

Тип данных

Пометка

Id

Целое

PK, UN

id предмета

Целое

FK

id группы

Целое

FK

дата

Дата

Таблица 2.10

Таблица «Ведомости»

Название столбца

Тип данных

Пометка

Id

Целое

PK

id ведомости

Целое

FK, UN

id студента

Целое

FK

оценка

Строка

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

Рис. 2.12 Концептуальная модель базы данных информационной системы

Выводы

Во второй главе осуществлено проектирование информационной системы для филиала РГГУ г. Всеволожск.

Проведено проектирование содержания и функционала информационной системы. При помощи CASE-средств построены диаграммы, описывающие функционал и работу системы. Проведено UML моделирование основных функций информационной системы.

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

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ИНОФРМАЦИОННОЙ СИСТЕМЫ УПРАВЛЕНИЯ УЧЕБНЫМ ПРОЦЕССОМ

3.1 Выбор инструментальных средств

Для разработки информационной системы для филиала РГГУ г.Всеволожск были выбраны следующие инструментальные средства:

1. NetBeans 6.9 - NetBeans IDE является интегрированной средой разработки для Linux, Mac, Windows и Solaris. NetBeans является open-source IDE и позволяет разработчикам быстро создавать веб-приложения для мобильных и настольных приложений с помощью Java, JavaFX, PHP, JavaScript и Ajax, Ruby и Ruby On Rails, Groovy и Grails, и C / C + +. Для автора интересна поддержка PHP, Javascript и HTML+CSS. Из полезных функций можно отметить -- запоминание и подсказки css-селекторов в html коде. Еще одним плюсом использования NetBeans является поддержка таких Фреймворков как Zend Framework и Symfony.

PHP - это серверный язык создания сценариев (или стороны сервера), разработанный специально для Web.Код PHP интерпритируется Web-сервероми генерирует HTML или иной вывод, наблюдаемый посетителем страницы.[17]. PHP поддерживается почти на всех известных платформах и во всех операционных системах на самых разных серверах.[11]

2. Adobe Dreamweaver CS4 - позволяет используя визуальные методы с легкостью проектировать веб-дизайн приложений. Программа имеет полную поддержку формата CSS (Cascading Style Sheets - каскадные таблицы стилей). Данная программы была выбрана потому, что она представляет собой профессиональное средство для верстки веб страниц с богатым набором функций для разработки веб приложений прекрасно сочетающее в себе смешанный режим работы код+дизайн.

3. Для редактирования графических элементов информационной системы автором будет использоваться Adobe Photoshop CS 4.

4. Quanta Plus - открытая версия HTML редактора для web-разработчиков в среде KDE. Используется автором для быстрого редактирования HTML кода при тестировании.

5. phpMyAdmin - приложение позволяющее выполнять всю удаленную работу с базами данных MySQL посредством браузера. Будет использоваться для создания, настройки и редактирования базы данных информационной системы.

3.2 Выбор СУБД

В качестве СУБД автором выбрана реляционная СУБД MySQL. Данная система позволяет хранить все данные информационной системы в базе данных на сервере. Таким образом, все клиенты системы будут обращаться к одной базе данных посредством ИС. Преимуществами данной СУБД являются:

- быстродействие;

- высокий уровень безопасности;

- надежность;

- переносимость.

Если говорить более предметно, то использование реляционной базы данных дает возможность быстро и без особых усилий ответить на такие вопросы как «из какой группы студент», к какой кафедре закреплен преподаватель»[11].

3.3 Создание физической модели данных

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

Физическая модель базы данных информационной системы для филиала РГГУ в г. Всеволожск представлена на рис. 3.1.

Рис 3.1. физическая модель базы данных информационной системы для филиала РГГУ в г. Всеволожск

Для создания баз данных в SQL используется команда CREATE DATABASE. Для создания таблиц используется команда CREATE TABLE. Полный набор команд для создания базы данных для информационной системы представлен в Приложении 1.

Все взаимодействия с базой данных информационная система осуществляет посредством встроенных функций языка PHP. Для соединения с базой данных используется функция:

$mysqli = new mysqli("HOST", "USER", "PASSWORD", "DB_NAME");

if (mysqli_connect_errno()) {

printf("Соединение не удалось: %s\n", mysqli_connect_error());

}

Для выполнения различных запросов к базе данных информационной системы была написана функция getinfo:

function getinfo($sql)

{

$mysqli = new mysqli("HOST", "USER", "PASSWORD", "DB_NAME");

if (mysqli_connect_errno()) {

printf("Соединение не удалось: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

$data[] .= $fieldValue;

}

}

$result->close();

$mysqli->close();

return $data;

};

3.4 Физическая реализация информационной системы

Для реализации информационной системы для филиала РГГУ г. Всеволожск была использована СУБД MySQL и написано приложение для обработки данных и взаимодействием с пользователями на PHP.

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

Рис. 3.2 Главная страница информационной системы

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

В разделе «Личная информация» пользователь может управлять группами студентов, личной информацией студентов и преподавателей. Раздел «Личная информация» представлена на рис.3.3.

Рис. 3.3. раздел «Личная информация

В разделе «Группы студентов» пользователь может просмотреть полный список групп студентов в университете, удалить, отредактировать и создать новые группы. Раздел «Группы студентов» представлен на рис. 3.4.

Рис. 3.4 раздел «Группы студентов»

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

Рис 3.5 редактирование группы

Если в разделе «Группы студентов» нажать на ссылку «Добавить группу», то откроется страница, где можно будет ввести, название новой группы, год обучения группы и номер группы. Страница «Добавление групп» изображена на рис. 3.6.

Рис. 3.6 добавление группы

Если по какой либо причине не будет заполнено хоть одно из полей, то будет выдано соответствующее информационное сообщение. Информационное сообщение изображено на рис. 3.7.

Рис. 3.7 информационное сообщение

На вкладке «Студенты» можно просмотреть список и данные всех студентов. Раздел «Студенты» изображен на рис. 3.8.

Рис. 3.8. раздел «Студенты»

Если в разделе «Студенты» нажать на ссылку «Добавить студента», то откроется страница, где можно будет ввести данные нового студента. Страница «Добавление студентов» изображена на рис. 3.9.

Рис. 3.9. раздел «Добавить студента»

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

Страница «Редактирование информации студента» изображена на рис. 3.10.

Рис. 3.10 - страница «Редактирование информации студента»

В разделе «Преподаватели» пользователь может добавить, удалить или отредактировать преподавательский состав университета. На рис 3.11 изображен раздел «Преподаватели».

Рис 3.11 раздел «Преподаватели»

Если требуется, то пользователь в данном разделе может удалить, добавить или отредактировать информацию о преподавателях. Страница добавления нового преподавателя изображена на рис. 3.12.

Рис 3.12 страница добавления нового преподавателя.

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

Страница изменения информации о преподавателях изображена на рис. 3.13.

Рис 3.13 страница изменения информации о преподавателях

Перейдя в раздел «Кафедры» пользователь может просмотреть весь персонал на кафедрах, редактировать, создавать и удалять кафедры, а так же управлять списком специальностей и предметов. Раздел «Кафедры» изображен на рис. 3.14.

Рис. 3.14 раздел «Кафедры»

На странице «Кафедры» пользователь можете добавить новую кафедру или отредактировать (удалить) уже существующую. Страница «Добавление кафедры» изображена на рис. 3.15.

Рис. 3.15 «Добавление кафедры»

Страница «Редактирование кафедры» изображена на рис. 3.16.

Рис. 3.16 «Редактирование кафедры»

В разделе «Персонал» ИС предлагает выбрать кафедру, персонал которой можно просмотреть. Страница «Выбор кафедры» изображена на рисунке 3.17.

Рис. 3.17 «Выбор кафедры» для просмотра персонала

Страница просмотра преподавателей кафедры «МИЕНД» изображена на рис. 3.18.

Рис.3.18 преподаватели кафедры «МИЕНД»

В разделе «Специальности» пользователь может просматривать добавлять, редактировать и удалять специальности. На рис. 3.19 изображен раздел «Специальности».

Рис. 3.19 раздел «Специальности»

На рис. 3.20 изображена страница добавления новой специальности.

Рис. 3.20 страница добавление специальности.

На рис. 3.21 изображена страница изменения существующей специальности.

Рис 3.21 страница изменения существующей специальности.

В разделе «Предметы» пользователь может редактировать, удалять и добавлять новые предметы. Раздел «Предметы» изображен на рис. 3.22.

Рис. 3.22. раздел «Предметы»

Страница добавления новых предметов изображена на рис. 3.23.

Рис.3.23. страница «Добавления предмета»

Страница изменения уже существующих предметов изображена на рис. 3.24.

Рис. 3.24 страница «Редактирование предмета»

В разделе «Ведомости» пользователю предлагается выбрать соответствующий раздел ведомостей, которые он может просматривать и редактировать. Раздел «Ведомости» изображен на рис. 3.25.

Рис 3.25 раздел «Ведомости»

В разделе «Ведомости по группам» пользователю предлагается выбрать группу ведомости, которой он может отредактировать или добавить. Раздел выбора групп ведомостей изображен на рис. 3.26.

Рис. 3.26 раздел выбора групп для ведомостей

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

Рис. 3.27 страница «Создание ведомостей»

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

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

Рис. 3.28 страница заполнения ведомости на группу.

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

Рис. 3.29 информационное сообщение о сохранении ведомости

После чего в списках ведомостей на группу появится ссылка на созданную ведомость. Откуда можно будет либо отредактировать ее, либо отправить на печать. Страница списка ведомостей на группу ПИВСД51 изображена на рис. 3.30.

Рис. 3.30 список ведомостей на группу ПИВСД51

Листинг всех функций с содержанием SQL запросов представлен в Приложении 2.

3.5 Тестирование информационной системы

Тестирование - это процесс исполнения программы на компьютере с целью обнаружения ошибок.[12]

Тестом будем называть информацию, состоящую из исходных данных, специально подобранных для отлаживаемой программы, и из соответствующих им эталонных результатов (не только окончательных, но и промежуточных), используемых в дальнейшем для контроля правильности работы программы.[12]

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

Альфа-тестирование - это имитация реальной работы с системой в качестве пользователя штатными разработчиками приложения. Такое тестирование часто выполняется под отладчиком.

Тестирование будет проходить по стратегии черного ящика. В качестве объекта тестирования будет взят модуль добавления нового.

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

Таблица 3.1

Тестирование модуля «Добавление нового студента»

Поле

Входные данные

Ожидаемый ответ

Ответ системы

Фамилия

Пусто

Отказ добавления студента

Система не добавляет студента без ввода фамилии и сообщает, что поле Фамилия пустое.

Имя

Пусто

Отказ добавления студента

Система не добавляет студента без ввода имени и сообщает, что поле Имя пустое.

Отчество

Пусто

Отказ добавления студента

Система не добавляет студента без ввода отчества и сообщает, что поле Отчество пустое.

Специальность

Не выбрана

Отказ добавления студента

Система не добавляет студента без выбора специальности и сообщает, что выбор не сделан.

Группа

Не выбрана

Отказ добавления студента

Система не добавляет студента без выбора группы и сообщает, что выбор не сделан.

Год обучения

Пусто

Отказ добавления студента

Система не добавляет студента без ввода даты его поступления и сообщает, что дата не введена.

Номер зачетной книжки

Пусто

Отказ добавления студента

Система не добавляет студента без ввода его номера зачетной книжки и сообщает об этом.

Примеры информационных сообщений в модуле «Добавление студента» приведены на рис. 3.31 и рис 3.32.

Рис. 3.31 информационное сообщение при пустом поле «Имя» в модуле «Добавление студента»

Рис. 3.32 информационное сообщение при пустом поле «Специальность» в модуле «Добавление студента»

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

3.6 Установка информационной системы

Распакуйте дистрибутив в корневую директорию вашего веб-сервера;

Убедитесь, что все скрипты имеют права на выполнения и имеют соответствующего владельца;

В файле «functions.php» укажите соответствующие данные для подключения к базе данных:

define ("HOST_DB", "host");

define ("DB_USER", "user");

define ("DB_PASS", "pass");

define ("DB_NAME", "name");

Для этого замените host на IP сервера базы данных, user на пользователя базы данных, pass на пароль и name на имя базы данных.

Подключившись к базе данных под соответствующим пользователем и выбрав нужную базу данных выполните код приведенный в Приложении 1 в окне командного интерпретатора MySQL. Код создаст на сервере необходимую структуру базы данных, после чего информационная система станет доступна и войти в нее можно будет, введя в окне браузера адрес http://localhost или http://127.0.0.1/. Внимание, адрес может быть иной, в зависимости он настройки сервера.

Выводы

В третьей главе обоснован выбор инструментальных средств разработки. В качестве среды разработки выбрана IDE NetBeans 9.1 с поддержкой PHP. В качестве СУБД автором использована система управления базами данных MySQL.

Разработана структурная и физическая модель базы данных.

Проведена разработка информационной системы.

Проведено альфа-тестирование программного продукта по стратегии «черного ящика».

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

ЗАКЛЮЧЕНИЕ

В ходе дипломного проекта была разработана информационная система управления учебным процессом филиала РГГУ в г. Всеволожск. Был решен ряд задач:

- рассмотрены теоретические основы проектирования информационных систем;

- проведено проектирование информационной системы;

- выполнена программная реализация информационной системы управления учебным процессом.

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

Проектирование информационной системы и функционала системы для филиала РГГУ г. Всеволожск было проведено во второй главе. При проектировании системных объектов автором было использована технология UML моделирования. В качестве структуры модели данных автором была выбрана реляционная модель. Построены концептуальные и логические модели базы данных.

В третьей главе была проведена реализация разрабатываемого программного продукта. В качестве среды разработки автором была выбрана IDE NetBeans 9.1 с поддержкой PHP. В качестве СУБД автор использовал MySQL. В третьей главе автор разработал структурную и физическую модель базы данных.

При проведении альфа-тестирования разработанной информационной системы ошибок выявлено не было.

За счет внедрения в практику деятельности учебного отдела филиала РГГУ г. Всеволожск разработанной информационной системой было уменьшено время на составление ведомостей. Структурированы и систематизированы данные по студентам, предметам и преподавателям. Появилась возможность расширения и дальнейшего наращивания информационной системы для автоматизации управления учебным процессом.

СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

1. Устав филиала РГГУ в г. Всеволожск

2. ГОСТ 34.601-90 - «Автоматизированные системы. Стадии создания»

3. ГОСТ 34.320.96 - «Концепция и терминология для концептуальной схемы и информационной базы»

4. Документирование управленческой деятельности. - СПб.: Изд-во Сев.-зав.гос. тех.ун-та, 2008. -С.3.

5. Басков А.В. Информационный поток [Электронный ресурс]. - Режим доступа: http://newideology.ru/slovar/i/informatsionnyi-potok/

6. Веллинг Л., Томсон Л. Разработка веб-приложений с помощью PHP и MySQL. - М.: Вильямс, 2010. - 848с.

7. Грекул В.И. , Денищенко Г.Н. Проектирование информационных систем. - М.: Интернет-университет информационных технологий, 2008. - 304 с.

8.Гудлиф П. Ремесло программиста. Практика написания хорошего кода. Пер. с англ. - М.: Символ-Плюс, 2009. - 704с.

9.Зандстра М. PHP. Объекты, шаблоны и методики программирования. Пер. с англ. - М: Вильямс, 2009. - 480с.

10. Кириллов В.В., Громов Г.Ю. Введение в реляционные базы данных. - СПб.: БХВ-Петербург, 2009. - 464с.

11. Савельева Н.В. Основы программирования на PHP. - М: Интернет-университет информационных технологий. - 2005. - 264 с.

12. Медведев А.М., Швецкой М.В. Некоторые вопросы методологии отладки программ [Электронный ресурс]. - Режим доступа: http://it.kgsu.ru/Otladka/otl_0007.html

13. Онлайн энциклопедия Wikipеda [Электронный ресурс]. - Режим доступа: http://ru.wikipеdia.оrg

14.Скляр Д., Трахтенберг А. PHP. Рецепты программирования. - СПб.: БХВ-Петербург, 2007. - 736с.

15. Селко Д. SQL для профессионалов. Программирование. Пер. с англ. - М.: Лори, 2009. - 464с.

16. Хольцнер С. PHP в примерах. - М.: Бином-Пресс, 2009.- 350с.

17. Томсон Л., Веллинг Л, Разработка Web-приложений на на PHP и MySQL. - СПб.: ООО «»ДиаСофтЮП», 2003. - 672 с.

18. Хаббард Дж. Автоматизированное проектирование структур баз данных - М.: Мир, 1984. - 342с.

19. Козырев А.А. Информационные технологии в экономике и управлении: Учебник. - СПб.: Изд-во Михайлова В. А., 2000. - 360 с.

20. Титоренко Г.А. Информационные системы в экономике. - М.: Юнити-Дана, 2008. -- 463 с.

21. Грабер М. SQL. - М.:Лори, 2007. -- 672 с.

22. Плаксин М. Тестирование и отладка программ - для профессионалов будущих и настоящих. - М.:Бином, 2007. - 168 с.

23. Первозванский А. Курс теории автоматического управления. - М.:Лань, 2010. - 624 стр.

24. Фельдман А. Создаем информационные системы. - М.: СОЛОН-ПРЕСС, 2006. - 120с.

25. Уткин В. Информационные системы в экономике. - М.: Издательский центр "Академия", 2004. - 288с.

26. Федорова Г.Н. Информационные системы . - М.: Academia, 2010. - 208 c.

ПРИЛОЖЕНИЕ 1

Структура базы данных «rggu»

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--

-- База данных: `rggu`

--

-- --------------------------------------------------------

--

-- Структура таблицы `Departments`

--

CREATE TABLE `Departments` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

`ZavDepartment` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;

--

-- Структура таблицы `group`

--

CREATE TABLE `group` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`year` int(11) NOT NULL,

`group_number` int(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

-- --------------------------------------------------------

-- --------------------------------------------------------

--

-- Структура таблицы `lectures`

--

CREATE TABLE `lectures` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Surname` varchar(50) NOT NULL,

`Name` varchar(50) NOT NULL,

`Patronymic` varchar(50) NOT NULL,

`Stepen_id` int(11) NOT NULL,

`Departmen_id` int(11) NOT NULL,

`items_id` varchar(500) NOT NULL,

UNIQUE KEY `id_2` (`id`), KEY `id` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

-- --------------------------------------------------------

--

-- Структура таблицы `predm`

--

CREATE TABLE `predm` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

-- --------------------------------------------------------

--

-- Структура таблицы `spec`

--

CREATE TABLE `spec` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--

-- Структура таблицы `stepeni`

--

CREATE TABLE `stepeni` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;

-- --------------------------------------------------------

--

-- Структура таблицы `students`

--

CREATE TABLE `students` (

`id` int(11) NOT NULL AUTO_INCREMENT, `Surname` varchar(50) NOT NULL, `Name` varchar(50) NOT NULL, `Patronymic` varchar(50) NOT NULL, `Specialty` varchar(50) NOT NULL, `Entered` year(4) NOT NULL,

`group_id` int(11) NOT NULL, `N_zach` varchar(20) NOT NULL,

PRIMARY KEY (`id`), UNIQUE KEY `N_zach` (`N_zach`), UNIQUE KEY `id` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--

-- Структура таблицы `vedomosti`

--

CREATE TABLE `vedomosti` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`id_stud` int(11) NOT NULL,

`id_ved` int(11) NOT NULL,

`ocenka` varchar(20) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `id` (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;

-- --------------------------------------------------------

-- Структура таблицы `vedomosti_list`

CREATE TABLE `vedomosti_list` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`id_predm` int(11) NOT NULL,

`group_id` int(11) NOT NULL,

`prep` int(11) NOT NULL,

`date` date NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;

ПРИЛОЖЕНИЕ 2

Листинг файла «functions.php»

<?php

define ("HOST_DB", "localhost");

define ("DB_USER", "user");

define ("DB_PASS", "pass");

define ("DB_NAME", "database");

function getinfo($sql)

{

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

$data[] .= $fieldValue;

}

}

$result->close();

$mysqli->close();

return $data;

};

function execute($sql){

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$mysqli->query($sql);

$mysqli->close();

return 1;

}

function get_all_id_students(){

$sql='SELECT `id` FROM `students`';

return (getinfo($sql));

}

function get_all_id_groups(){

$sql='SELECT `id` FROM `group`';

return (getinfo($sql));

}

function get_all_id_lectures(){

$sql='SELECT `id` FROM `lectures`';

return (getinfo($sql));

}

function all_info_students(){

$ids=get_all_id_students();

foreach($ids as $id){

echo "<tr>";

$sql="SELECT `id`, `Surname`,`Name`,`Patronymic`,`Specialty`,`Entered`,`group_id`, `N_zach` FROM `students` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="Specialty")$value=get_spec_name ($value);

if($key=="group_id")$value=get_group($value);

echo "<td><div align=\"center\">$value</div></td>";

}

$result->close();

$mysqli->close();

echo " <td><div align=\"center\"><a href=\"students.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"edit_students.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function all_info_groups(){

$ids=get_all_id_groups();

foreach($ids as $id){

echo "<tr>";

$sql="SELECT `id`, `name`,`year`,`group_number` FROM `group` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

echo "<td><div align=\"center\">$value</div></td>";

}

$result->close();

$mysqli->close();

echo "

<td><div align=\"center\"><a href=\"groups.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"edit_groups.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function get_name_group_full($id){

$sql="SELECT `name`,`year`,`group_number` FROM `group` where `id`=$id";

$group=getinfo($sql);

$group=$group[0].$group[1].$group[2];

return $group;

}

function all_info_lectures(){

$ids=get_all_id_lectures();

foreach($ids as $id){

echo "<tr>";

$sql="SELECT `id`, `Surname`,`Name`,`Patronymic`,`Stepen_id`,`Departmen_id`,`items_id` FROM `lectures` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="Stepen_id")$value=get_stepen_name ($value);

if($key=="Departmen_id")$value=get_kaf_name ($value);

if($key=="items_id")$value=get_items_name ($value);

echo "<td><div align=\"center\">$value</div></td>"; }

$result->close();

$mysqli->close();

echo "

<td><div align=\"center\"><a href=\"lectures.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"edit_lectures.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function get_all_info_spec(){

$count= getinfo("SELECT count(`id`) from `spec");

$count=$count[0];

$sql="SELECT `id`, `Name` from `spec`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){ foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 2

if(($id)&&($Name)) {

echo "<tr>

<td>".$id ."</td><td>$Name</td><td><a href=\"spec.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"></a></td>

<td><a href=\"edit_spec.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></td></tr>

" ;

$id=""; $Name="";

};

};

};

$result->close();

$mysqli->close();

}

function get_all_info_predm(){

$count= getinfo("SELECT count(`id`) from `predm");

$count=$count[0];

$sql="SELECT `id`, `Name` from `predm`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if(($id)&&($Name)) {

echo "<tr>

<td>".$id ."</td><td>$Name</td><td><a href=\"predm.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"></a></td>

<td><a href=\"edit_predm.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></td></tr> " ;

$id=""; $Name="";

};

};

};

$result->close();

$mysqli->close();

}

function id_info_lectures($kaf){

$ids=getinfo("SELECT `id` FROM `lectures` where `Departmen_id`=$kaf");

foreach($ids as $id){ echo "<tr>";

if($kaf) $sql="SELECT `id`, `Surname`,`Name`,`Patronymic`,`Stepen_id`,`Departmen_id`,`items_id` FROM `lectures` where `Departmen_id`=$kaf and id=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="Stepen_id")$value=get_stepen_name ($value);

if($key=="Departmen_id")$value=get_kaf_name ($value);

if($key=="items_id")$value=get_items_name ($value);

echo "<td><div align=\"center\">$value</div></td>";

$value="";

}

$result->close();

$mysqli->close();

if(!$kaf)echo "

<td><div align=\"center\"><a href=\"lectures.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"\></a></div></td>

<td><div align=\"center\"><a href=\"lectures.php?act=edit&id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></div></td>

</tr>";

};

}

function get_all_kaf_li(){

$ids=get_all_kaf_id();

foreach($ids as $id){

echo "<li><a href=\"personal-kaf-prep.php?kaf=$id\">". get_kaf_name($id) ."</li>" ;

}

}

function get_all_predm_li(){

$ids=get_all_predm_id();

foreach($ids as $id){

echo "<li><a href=\"personal-kaf-prep.php?kaf=$id\">". get_kaf_name($id) ."</li>" ;

}

}

function get_all_predm_li_ved(){

$ids=get_all_predm_id();

foreach($ids as $id){

echo "<li><a href=\"ved_predm.php?predm=$id\">". get_predm_name($id) ."</li>" ;

}

}

function get_all_group_li_a(){

$ids=get_group_id();

foreach($ids as $id){

echo "\n<li><a href=\"vedomost_group.php?group=$id\">". get_group_name($id) .get_group_number($id).get_group_year($id)."</li>" ;

}

}

function get_all_kaf_dep(){

$count=getinfo("SELECT count(`id`) from `Departments`");

$count=$count[0];

$sql="SELECT `id`, `Name`, `ZavDepartment` from `Departments`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if($key=="ZavDepartment")$zav=$value;

if(($id)&&($Name)&&($zav)) {

echo "<tr>

<td>".$id ."</td><td>$Name</td><td>$zav</td><td><a href=\"department.php?act=del&id=$id\" title=\"Удалить\"><img src=\"del.png\"></a></td>

<td><a href=\"edit_department.php?id=$id\" title=\"Редактировать\"><img src=\"edit.png\"></a></td></tr>

" ; $id=""; $Name=""; $zav="";

};

};

};

$result->close();

$mysqli->close();

return $data;

}

function del_student($id){

$sql="DELETE FROM `students` where `id`=$id";

execute($sql);

return 1;

}

function del_group($id){

$sql="DELETE FROM `group` where `id`=$id";

execute($sql);

return 1;

}

function del_lectures($id){

$sql="DELETE FROM `lectures` where `id`=$id";

execute($sql);

return 1;

}

function del_kaf($id){

$sql="DELETE FROM `Departments` where `id`=$id";

execute($sql);

return 1;

}

function del_spec($id){

$sql="DELETE FROM `spec` where `id`=$id";

execute($sql);

return 1;

}

function del_predm($id){

$sql="DELETE FROM `predm` where `id`=$id";

execute($sql);

return 1;

}

function get_all_kaf_id(){

$sql='SELECT `id` FROM `Departments`';

return (getinfo($sql));

}

function get_all_predm_id(){

$sql='SELECT `id` FROM `predm`';

return (getinfo($sql));

}

function get_all_spec_id(){

$sql='SELECT `id` FROM `spec`';

return (getinfo($sql));

}

function get_all_group_id(){

$sql='SELECT `id` FROM `group`';

return (getinfo($sql));

}

function get_all_stud_id(){

$sql='SELECT `id` FROM `students`';

return (getinfo($sql));

}

function get_all_stepen_id(){

$sql='SELECT `id` FROM `stepeni`';

return (getinfo($sql));

}

function get_predm_ved($predm){

echo "<tr>";

$sql="SELECT `id`, `id_stud`,`id_pred`,`ocenka` FROM `vedomosti` where `id_pred`=$predm";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id_stud")$value=get_fio_student ($value);

if($key=="id_pred")$value= get_predm_name ($value);

echo "<td><div align=\"center\">$value</div></td>";

}

$result->close(); $mysqli->close();

echo "</tr>";

}

function get_fio_student($id){

$sql="SELECT `Surname` FROM `students`";

$x=getinfo($sql);

$fio.=$x[0];

$sql="SELECT `Name` FROM `students`";

$x=getinfo($sql);

$fio.=' '.$x[0];

$sql="SELECT `Patronymic` FROM `students`";

$x=getinfo($sql);

$fio.=" ".$x[0];

return $fio;

}

function get_all_kaf_sel(){

$ids=get_all_kaf_id();

echo "<option disabled>Выберите кафедру</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `Departments` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_stud_sel(){

$ids=get_all_stud_id();

echo "<option disabled>Выберите студента</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `students` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

}; return 1;

}

function get_all_spec_sel_opt($id){

$ids=get_all_spec_id();

foreach($ids as $id){

$sql="SELECT `Name` FROM `spec` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

if($id==$fieldValue)$x="disabled";

echo "<OPTION value=\"$id\" $x>$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_kaf_sel_opt($id){

$ids=get_all_kaf_id();

foreach($ids as $id){

$sql="SELECT `Name` FROM `Departments` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

if($id==$fieldValue)$x="disabled";

echo "<OPTION value=\"$id\" $x>$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_predm_sel_opt($id){

$ids=get_all_predm_id();

foreach($ids as $id){

$sql="SELECT `Name` FROM `predm` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

} $mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

if($id==$fieldValue)$x="disabled";

echo "<OPTION value=\"$id\" $x>$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_name_group_ved($ved){

$sql="SELECT `id_predm` FROM `vedomosti_list` where `id`=$ved";

$predm=getinfo($sql);

$predm=$predm[0];

$sql="SELECT `Name` FROM `predm` WHERE `id`=$predm";

$name_predm=getinfo($sql);

return $name_predm[0];

}

function get_all_lectors_opt($ved){

$sql="SELECT `id_predm` FROM `vedomosti_list` where `id`=$ved";

$predm=getinfo($sql);

$predm=$predm[0];

$sql="SELECT `id` FROM `lectures` WHERE `items_id` LIKE '%$predm%'"; $prep=getinfo($sql);

for($x=0; $x<count($prep); $x++){

$sql="SELECT `Surname`, `Name`, `Patronymic` FROM `lectures` WHERE `id`=".$prep[$x];

$name=getinfo($sql);

$name=$name[0]." ".$name[1]." ".$name[2];

echo "<OPTION value=\"".$prep[$x]."\">$name</OPTION>\n";

}

return 1;

}

function get_all_spec_sel(){

$ids=get_all_spec_id();

echo "<option disabled>Выберите специальность</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `spec` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

} }

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_group_sel(){

$ids=get_all_group_id();

$count=count($ids);

foreach($ids as $id){

$sql="SELECT `name`, `year`, `group_number` from `group` WHERE `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="name")$name=$value;

if($key=="year")$year=$value;

if($key=="group_number")$group_number=$value;

if(($id)&&($name)&&($year)&&($group_number)) {

echo "<OPTION value=\"$id\">$name$year$group_number</OPTION>\n" ;

$id=""; $name="";$year=""; $group_number="";

};

};

};

$result->close();

$mysqli->close();

};

return 1;

};

function get_all_predm_sel(){

$ids=get_all_predm_id();

echo "<option disabled>Выберите факультет</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `predm` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function get_all_predm_chk(){

$count= getinfo("SELECT count(`id`) from `predm`");

$count=$count[0];

$sql="SELECT `id`, `Name` from `predm`";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

for($k=1; $k<=$count; $k++){

foreach( $result->fetch_assoc() as $key => $value){

if($key=="id")$id=$value;

if($key=="Name")$Name=$value;

if(($id)&&($Name)) {

echo "<label>$Name</label><INPUT TYPE=CHECKBOX NAME=items['$id'] VALUE=\"$id\"> <br />" ;

$id=""; $Name="";

};

};

};

$result->close();

$mysqli->close();

return 1;

};

function get_all_stepen_sel(){

$ids=get_all_stepen_id();

echo "<option disabled>Выберите степень</option>";

foreach($ids as $id){

$sql="SELECT `Name` FROM `stepeni` where `id`=$id";

$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

}

$mysqli->query('SET NAMES utf8');

$result = $mysqli->query($sql);

while( $row = $result->fetch_assoc() ){

foreach($row as $fieldValue){

echo "<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}

function add_student($surname, $name, $patronymic, $spec, $N_zach, $year, $number_group){

$sql="INSERT INTO `students`

( `id`,

`Surname`,

`Name`,

`Patronymic`,

`Specialty`,

`Entered`,

`group_id`,

`N_zach`)

VALUES ('',

'$surname',

'$name',

'$patronymic',

'$spec',

'$year',

'$number_group',

'$N_zach'

)";

execute($sql);

return 1;

}

function add_lectures($kaf,$surname, $name, $patronymic, $stepen, $items ){

$sql="INSERT INTO `lectures`

( `id`,

`Surname`,

`Name`,

`Patronymic`,

`Stepen_id`,

`Departmen_id`,

`items_id` )

VALUES ('',

'$surname',

'$name',

'$patronymic',

'$stepen',

'$kaf',

'$items'

)";

execute($sql);

$_POST="";

return 1;

}

function add_department($name,$ZavDepartment){

$sql="INSERT INTO `Departments`

( `id`,

`Name`,

`ZavDepartment`)

VALUES ('',

'$name',

'$ZavDepartment'

)";

execute($sql);

$_POST="";

return 1;

}

function add_groups($name,$year, $group_number){

$sql="INSERT INTO `group`

( `id`,

`name`,

`year`,

`group_number`)

VALUES ('',

'$name',

'$year',

'$group_number'

)";

execute($sql);

$_POST="";

return 1;

}

function add_vedomosti($predm,$stud_id,$ocenka){

$sql="INSERT INTO `vedomosti`

( `id`,

`id_stud`,

`id_pred`,

`ocenka`)

VALUES ('',

'$stud_id',

'$predm',

'$ocenka'

)";

execute($sql);

$_POST="";

return 1;

}

function add_spec($name){

$sql="INSERT INTO `spec`


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.