Разработка информационной системы управления учебным процессом (на примере филиала РГГУ г. Всеволжска)
РАЗРАБОТКА
ИНФОРМАЦИОННОЙ СИСТЕМЫ УПРАВЛЕНИЯ УЧЕБНЫМ ПРОЦЕССОМ (НА ПРИМЕРЕ ФИЛИАЛА РГГУ
г.ВСЕВОЛОЖСКА)
ПЛАН:
ВВЕДЕНИЕ
ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
.1 Анализ источников и литературы
.2 Исследование современных технологий и средств
разработки
.3 Анализ аналогов-ресурсов. Анализ рынка
.4 Описание задач, функций и структуры филиала
РГГУ в г.Всеволожске
.5 Организация взаимодействия структурных
подразделений филиала
.6 Структура филиала
.7 Обоснование выбора и системный анализ с
применением CASE-средств
.8 Выявление и оценка информационных потоков и
структуры информации
.9 Структуризация и обоснование требований
(заказчика) к автоматизации, постановка задачи
Выводы
ГЛАВА 2. ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
УПРАВЛЕНИЯ УЧЕБНЫМ ПРОЦЕССОМ ФИЛЛИАЛА РГГУ Г. ВСЕВОЛОЖСК
.1 Выбор необходимой информации для
информационной системы
.2 Проектирование и анализ структуры
информационной системы
.3 Проектирование и анализ системы навигации
.4 UML моделирование
.5 Проектирование базы данных
.5.1 Выбор модели данных
Выводы
ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ИНОФРМАЦИОННОЙ
СИСТЕМЫ УПРАВЛЕНИЯ УЧЕБНЫМ ПРОЦЕССОМ
.1 Выбор инструментальных средств
.2 Выбор СУБД
.3 Создание физической модели данных
.4 Физическая реализация информационной системы
.5 Тестирование информационной системы
.6 Установка информационной системы
Выводы
ЗАКЛЮЧЕНИЕ
СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1
ПРИЛОЖЕНИЕ 2
ВВЕДЕНИЕ
Управление учебным заведением представляет собой сложный
процесс, включающий выбор и реализацию определенного набора управленческих
воздействий на текущих временных отрезках с целью решения стратегической задачи
обеспечения его устойчивого развития.
Информационные технологии в значительной мере расширяют
возможности эффективного управления, так как предоставляют в распоряжение
сотрудников учебного заведения новейшие методы обработки и анализа информации,
необходимой для принятия управленческих решений.
Деятельность филиала РГГУ в г. Всеволожске в настоящий момент
направлена на широкое применение в сфере своей деятельности информационных
технологий.
Важным направлением развития системы управления филиала РГГУ
в г. Всеволожске является внедрение информационной системы управления учебным
процессом.
Информационная система управления учебным процессом
представляет собой описание процедур управления учебным процессом и
поддерживающую их информационную систему.
Эффективная организация работы с документами обеспечивает
оптимальные условия для всех видов работ с документами с момента их создания
или получения до уничтожения или передачи на архивное хранение[4].
На любом предприятии при помощи информации осуществляется вся
управленческая деятельность. От ее скорости и точности обработки зависит
эффективность работы самой организации. Таким образом, процесс управления это
оценка и анализ необходимой информации с принятием решений.
При наличии в организации информационной системы, отдел
управления способен получать актуальную и достоверную информацию обо всех
срезах деятельности организации, без временных задержек.
Информационная система управления учебным процессом
обеспечивает полный цикл управления вузом, начиная от приема абитуриентов до
выпуска студентов с выдачей им надлежащих документов - дипломов, академических
справок, а также отчетности, требуемой от филиала РГГУ головным вузом.
Актуальность темы дипломного проекта работы обусловлена
необходимостью разработки информационной системы управления учебным процессом
как одного из факторов совершенствования системы управления филиала РГГУ в г.
Всеволожске и повышением эффективности ее работы.
Практическая значимость дипломного проекта заключается в том,
что за счет качественной и быстрой обработки информации будет сокращено время
на принятие решений связанных с управлением учебным процессом.
Цель проекта - разработка информационной системы
управления учебным процессом филиала РГГУ в г. Всеволожск.
Для достижения этой цели необходимо решить ряд задач:
- рассмотреть теоретические основы проектирования
системы;
- провести проектирование информационной
системы;
- выполнить программную реализацию
информационной системы управления учебным процессом.
Предмет исследования - система управления учебным процессом
филиала РГГУ г Всеволожске.
Объект исследования: филиал РГГУ в г Всеволожске.
В первой главе выполнен анализ предметной области, рассмотрены
основы проектирования информационных систем. Произведен анализ источников и
литературы, связанный с разработкой информационных систем, рассмотрен рынок
информационных систем аналогов управления учебным процессом, проведен анализ
функций и задач управления. Выбраны и проанализированы функции и задачи,
подлежащие автоматизации, выявлены информационные потоки и структура
информации, поступающая в филиал, структурированы и обоснованы требования к
автоматизации, поставлена задача на разработку информационной системы
управления учебным процессом.
Во второй главе выполнено проектирование информационной
системы управления учебным процессом филиала РГГУ в г. Всеволожске. Обоснован
выбор модели данных предметной области и разработана логическая, концептуальная
модель объекта автоматизации. Выбрано средство разработки информационной
системы. С помощью CASE-средств выполнено проектирование логики работы, приложения,
разработана документация к техническому проектированию, в соответствии с ГОСТ.
В третьей главе обоснован выбор среды разработки
информационной системы, разработана физическая структура, реализована логика
работы приложения в программной среде. Частично наполнена база программного
продукта реальной информацией. Проведено тестирование продукта, написана документация
по использованию информационной системы управления учебным процессом.
В работе 2 приложения, 55 изображений и 11 таблиц.
В заключение работы подведен итог проведенного исследования,
изложены полученные выводы и сформулированы цели и задачи дальнейшей разработки
темы.
В работе над проектом использовались ГОСТ 34.601-90,
34.320.96, стандарт ISO/IEC 12207 и работы российских и иностранных ученых.
Изучение CASE-средств поддержки и проектирования
информационных систем было рассмотрено в работе В.И. Грекул, Г.Н. Денищенко,
Н.Л. Коровкина. Подробно рассмотрены основные методы функционального и
объектно-ориентированного анализа деятельности предприятий, приведены примеры
анализа с использованием доступных на данный момент программных продуктов,
рассмотрены основные особенности моделирования бизнес-процессов в середе BPwin [7].
В учебнике под редакцией А.А. Козырева подробно рассмотрены
все требования к стандартизации и документации корпоративных систем. В работе
рассмотрены компьютерные и экономические аспекты повышения эффективности
информационных технологий, а также технологии интеллектуальной поддержки
управленческих решений [19].
Г.А. Титоренко в своей работе рассмотрел общие вопросы
информатизации управленческих процессов, место информационных систем и технологий
в экономике, раскрыл методические подходы к созданию систем и технологий [20]
Для решения поставленных задач
использовались общенаучные методы теоретического исследования: анализ
документов филиала РГГУ в г. Всеволожске, систематизация, классификация,
моделирование, синтез, системный подход), методы эмпирического исследования
(обобщение опыта, наблюдение, анкетирование, тестирование), экспертные методы и
методы математической статистики.
ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Анализ источников и
литературы
«Под информационной системой понимают совокупность объектов,
компонентов или элементов произвольной природы, образующих некоторую
целостность»[21] - такое определение информационной системы дается в книге
Федоровой Г.Н. В книге раскрыты главные направления развития информационных
технологий и информационных ресурсов. Рассмотрены основные методологии и
принципы в построении современных информационных систем. В работе Федоровой
Г.Н. рассмотрены методы оценки эффективности автоматизированных ИС и проведен
детальный анализ построения корпоративных систем. В книге дается определение
жизненного цикла и особенности сопровождения информационной системы.
Будучи достаточно сложным процессом, автоматизация любой
деятельности человека при решении практических задач должна иметь научное -
прежде всего методологическое - обеспечение. Автоматизация профессиональной
деятельности определяется как процесс создания, внедрения и использования
технических, программных средств и математических методов, освобождающих человека
от непосредственного участия в получении, преобразовании и передаче энергии,
материалов и (или) информации в профессиональной деятельности. [25]
Более подробное внимание интегрированным системам
предприятия, их особенностям, свойствам и значимостью уделяется в учебном
пособии Л.А. Вдовенко - «Информационная система предприятия». В книге более
полно раскрывается архитектура систем, в особенности это логическая структура и
бизнес-логика. Основное место отводится профессиональным пакетам программ моделирования,
описаны технические особенности программной структуры и архитектуры
корпоративных систем. Описаны технические особенности программной структуры и
архитектуры корпоративных информационных систем. В программной структуре
основное место отводится профессиональным пакетам прикладных программ,
реализующим концепцию ERP-систем.
Изучение CASE-средств поддержки и проектирования
информационных систем было рассмотрено В. Грекулом в книге «Проектирование
информационных систем». В ней был собран материал рассматривающий основные
особенности специалистов по проектированию информационных систем, а именно:
- разработка требований к системе;
- анализ объекта автоматизации;
- выбор и адаптация программного продукта.
Даны этапы проектирования ИС с применением унифицированного
языка визуального моделирования.
В книге подробно рассмотрены главные методы функционального и
объектно-ориентированного анализа деятельности предприятий. Так же в ней
приводятся примеры анализа с использованием доступных на данный момент программных
продуктов.
А.А. Козырев в своем учебнике «Информационные технологии в
экономике и управлении» подробно рассмотрел все требования к стандартизации и
документации корпоративных систем, компьютерные, экономические аспекты
повышения эффективности информационных технологий и технологии интеллектуальной
поддержки управленческих решений.
В учебнике Г.А. Титоренко были рассмотрены информационные
процессы в экономике и обоснована вся необходимость в их автоматизации. Так же
в нем рассмотрены основные особенности форм документооборота.
1.2
Исследование современных технологий и средств разработки
Основная идея и принципы информационных систем возникли еще
задолго до появления персональных компьютеров. Изначально они представлял собой
библиотеки, архивы, телефонные и информационные справочники, но только с
приходом компьютеризации информационные системы обрели свой настоящий облик,
увеличили свою эффективность и расширили сферу своего применения.
В 50х годах XX века, в послевоенное время, возникла потребность
в росте производительности в сфере обработки информации. Это было время, когда
экономические механизмы регулирования и организационные структуры уже не
справлялись с ростом трудностей в управлении экономикой. Именно тогда появились
первые автоматизированные системы по обработки информации. Изначально они
предназначались для выписки счетов, составления ведомостей, накладных, расчета
зарплаты и прочих бухгалтерских операций. Реализация расчетов происходила на
счетных машинах. В целом же это привело к сокращению времени на подготовку
бумажных документов.
В 60х годах с появлением новых ОС, языков программирования и
дисковых подсистем информационные системы получают новый виток в развитии.
Теперь с их помощью готовят отчетную документацию. Создаются новые системы для
подготовки отчетов для управленцев принимающих важные решения.
е годы развития баз данных и технологий обработки данных.
Создаются хорошие предпосылки для появления систем поддержки принятия решений
(СППР).
В 70-80е годы с развитием телекоммуникаций расширилась
область применения ИС. Они начинают применяться с в качестве управленческого
контроля, поддерживают и ускоряют процесс принятия решений.
Путь развития информационных систем в России и на Западе
проходил по-разному. Это связано с историческими событиями и отличиями в
экономике. Плановая экономика жестко распределяла материальные, финансовые,
экономические и человеческие ресурсы, таким образом, внедрение информационных
систем было направлено только на бухгалтерские операции и кадровые подразделения.
В капиталистическом обществе, где роль экономии и управления ресурсами играла
важную роль, применение ИС начиналось с задач управления.
С самого начала в основе западных ИС лежали идеи оптимизации
использования финансовых и материальных средств. Это отразилось в таких ИС как IC - управление запасами, MPR - планирование в
потребностях материалами, MPRII - планирование производственных ресурсов. Задачи
учета ресурсов тесно связывались с задачами управления.
1.3 Анализ
аналогов-ресурсов. Анализ рынка
В настоящий момент на рынке информационных систем управления
учебным процессом имеются:
«Tandem University» - разработана российской компанией и
представляет собой комплексное решение по автоматизации государственных и
коммерческих вузов. Система основана на клиент-серверной архитектуре. Серверная
часть написана на Java c использованием Spring Framework, что позволяет ей быть
кроссплатформенной и легко масштабируемой. Внедрение системы происходит на
модульной основе, что в свою очередь позволяет производить ее внедрение
поэтапно. База данных хранится на сервере, и находятся под управлением СУБД (MySQL, Oracle, PostrgreSQL, Interbase). Tandem University
поставляется с открытыми исходными кодами с правом на доработку при условии не
распространения третьим лицам.
Базовые модули:
- организационная структура;
- справочники;
- система прав доступа;
- контингент студентов;
- кадровый реестр;
- администрирование.
Система Tandem University позволяет объединить управление
всеми аспектами учебного процесса. В её основе лежит единая информационная
база, оснащенная большим количеством средств для проведения анализа и
составления полной картины деятельности университета. Внедрение Tandem
University позволяет создавать дополнительные сервисы и помогает обеспечивать
контроль, прозрачность всех ключевых процессов протекающих в вузе.
«Naumen University
<#"512393.files/image001.gif">
Рис. 1.1. Система управления филиалом
1.6 Структура филиала
В структуре филиала работают такие общие
административные подразделения, как дирекция, учебно - методический отдел,
отдел бухгалтерского учета и финансового контроля, отдел кадров, канцелярия,
библиотека, отдел по работе со студентами, хозяйственный отдел.
Ключевое место в ней занимают кафедры,
которыми непосредственно руководят заведующие кафедрами, выбираемые Ученым
советом РГГУ и утверждаемые ректором из числа специалистов соответствующего
профиля, имеющих ученую степень и звание. Срок полномочий заведующего кафедрой
в филиале - от одного года до трёх лет. Заведующие кафедрами несут
ответственность за результаты деятельности возглавляемых ими кафедр, которые
они представляют во всех подразделениях филиала и других организациях.
Полномочия заведующих кафедрами определяются соответствующими Положениями,
утверждаемыми директором филиала.
Взаимодействие структурных подразделений
филиала обеспечивается соответствующими локальными актами и средствами
оперативного управления. Контроль за выполнением планов осуществляется в
течение учебного года. Помимо плановых мероприятий в филиале осуществляется
оперативное управление через совещания при директоре. Обязательным является их
проведение в начале каждого месяца. Внеплановые совещания созываются по мере
необходимости.
Для оперативного руководства и координации
деятельности подразделений филиала издаются приказы директора. Система
координации и взаимодействия основных структурных элементов и должностных лиц
филиала отражена в Рис. 1.2.
В целях рационализации управления в
филиале имеются междугородние и международные телекоммуникации (факсимильная
связь и электронная почта), выход в сеть Интернет.
Наличие указанной выше организационной
структуры управления благоприятно сказывается на положении дел в филиале и
способствует его эффективному функционированию, которое позволяет адекватно
оценить степень соответствия достигаемых результатов установленным целям
филиала, а также степень соответствия процесса функционирования системы
объективным требованиям к его содержанию, организации и результатам.
При этом критерием эффективности
организационной структуры филиала служит возможность наиболее полного и
устойчивого достижения конечных целей управления при существующей системе
финансирования, а критерием эффективности мероприятий по совершенствованию
организационной структуры - возможность более полного и стабильного достижения
поставленных целей.
Филиал при анализе и оценке эффективности
работы аппарата управления и соответствующей ему организационной структуры
использует следующие группы взаимосвязанных показателей,
характеризующих:
- эффективность собственно
системы управления (выражается через конечные результаты деятельности филиала и
затраты на управление);
- содержание и организацию
процесса управления, в том числе непосредственные результаты и затраты
управленческого труда (в качестве затрат на управление учитываются текущие
расходы на содержание аппарата управления, эксплуатацию технических средств,
подготовку и переподготовку кадров управления, на приобретение вычислительной
техники и других технических средств, используемых в управлении;
- рациональность
организационной структуры и ее технико-организационный уровень (число уровней и
звеньев с системы управления, уровень централизации функций управления,
принятые нормы управляемости, сбалансированность распределения прав и
ответственности, уровень специализации и функциональной замкнутости подсистем и
т.п.).
В филиале создана централизованная система
делопроизводства, при которой полный цикл технологических операций по обработке
документов, от момента их получения или создания и до сдачи в архив,
выполняется в канцелярии филиала при участии, если это необходимо, должностных
лиц других подразделений.
Оценивая эффективность управления
филиалом, следует отметить, что в ней находит выражение сбалансированность
состава целей и функций управления, содержательная полнота и целостность
процессов управления, соответствие численности и состава работников объему и сложности
работ, полноте обеспечения процессов требуемой информацией, а также
обеспеченности процессов управления техническими средствами.
В целом система управления филиалом РГГУ в
г.Всеволожске и организация взаимодействия его структурных подразделений соответствует
Положению о филиале (Рис. 1.2.).
Рис. 1.2. Системное управления филиалом
РГГУ в г.Всеволожске и организация взаимодействия его структурных подразделений
1.7 Обоснование выбора
и системный анализ с применением CASE-средств
Как видно из структуры организации филиал
РГГУ в г. Всеволожск состоит из множества подразделений, основные процессы
которых могут быть автоматизированы. В рамках проекта планируется провести
автоматизацию учебно-методического отдела.
Существует два подхода разработки
программного обеспечения информационных систем один из них - это структурный
подход.
В его основе лежит идея декомпозиции. Вся
структура описывается функциональными блоками, между которыми протекают
определенные процессы.
Второй подход разработки программного
обеспечения ИС заключается в объектной декомпозиции. Структура описывается в
терминах объектов и связей между ними, а поведение системы описывается в
терминах обмена сообщениями между объектами. Каждый объект системы обладает
своим собственным поведением, моделирующим поведение объекта реального мира.
Система управления учебным процессом
состоит из двух аспектов - оперативной обработки данных и анализа полученной
информации. Говоря о процессе получения новых данных мы имеем ввиду систему
оперативной обработки данных, а формируя сложные отчеты и выборки, имеем дело с
системой аналитической обработки данных.
В реализации информационной системы эти два аспекта тесно
переплетены между собой. Таким образом, создание единой информационной системы
помогает:
. Автоматизировать и оптимизировать деятельность управления
процессами управления.
. Формирует полную и достоверную информацию необходимую для
принятия управленческих решений.
Для решения данной задачи выделим ряд функций и задач методистов
учебно - методического отдела, на которые он затрачивает большую часть времени.
Такими задачами являются:
- заполнение и изменение личных карточек студентов;
- первоначальная сортировка и распределение
вновь поступивших студентов по группам;
- формирование аттестационных ведомостей по
группам;
- формирование индивидуальных ведомостей;
- формирование сводных ведомостей по итогам
сессии.
Результат и повышение эффективности будет замечено на
оптимизации и сокращении времени потраченного на сбор и каталогизацию
информации. Уменьшенное количество документов в бумажном виде и их оцифровка
приведет к существенному уменьшении времени на поиск необходимой информации,
что, в конечном счете, приведет к ускорению документооборота в целом. Ускорение
документооборота уменьшит задержки на получение необходимой информации для
принятия необходимых решений. Компьютерная обработка полностью исключает
проведение однотипных операций и их дублирования.
Автором описана функциональная модель формата IDEF0 деятельности филиала
РГГУ в г. Всеволожск.
IDEF0 - представляет собой иерархическую систему
диаграмм описывающих основные бизнес процессы. Функции и интерфейсы систем на
данных диаграммах представляют собой дуги и блоки. От места соединения дуг и
блоков зависит тип представляемого ими интерфейса. Если дуга соединяется с
блоком сверху, то она является управляющей. Если слева, то она представляет
собой информацию, которая подвергается обработке этим блоком. Нижняя дуга
отвечает за механизмы и ресурсы, которые в процессе обработки не подвергаются
изменению и являются ресурсами. Стрелка, исходящая из блока справа представляет
собой результат обработки блока.
На рис. 1.3. представлена контекстная диаграмма
процессов филиала РГГУ в г. Всеволожске.
Рис. 1.3. Контекстная диаграмма процессов филиала РГГУ в г.
Всеволожск
Декомпозиция контекстной диаграммы процессов филиала
РГГУ в г. Всеволожск рассмотрена на Рис. 1.4.
Рис. 1.4. - Декомпозиция контекстной диаграммы процессов
филиала РГГУ в г. Всеволожске
Процесс отражения поступления студента в филиал РГГУ г.
Всеволожск начинается с момента заключения договора. После чего полученные
данные о студенте передаются на бумажных носителях в учебно-методический отдел.
Декомпозиция контекстной диаграммы деятельности канцелярии
представлена на Рис. 1.5.
Рис. 1.5 Декомпозиция контекстной диаграммы деятельности
канцелярии
На рис.1.6 изображена контекстная диаграмма деятельности
учебно-методического отдела.
Рис.1.6. Контекстная диаграмма деятельности
учебно-методического отдела
В учебно-методическом отделе находятся два методиста, один
занимается студентами очного, а другой заочного отделения. Полученная
информация о новых студентах попадает к соответствующему методисту, который в
дальнейшем формирует на бумажном носителе личную карточку студента. После чего
личные карточки группируются по группам и хранятся в отделе.
Исследование показало, что данная операция трудоемка и
занимает много времени методистов. Низкая производительность обусловлена ручной
обработкой всей поступающей информации, а недостаточная компьютеризация
процесса отрицательно сказывается на поиске и сортировки информации.
При изменении одного из свойств или параметров, например
Фамилии студента, методистам будет необходимо «поднять» весь архив документов и
внести в них корректировки.
Данный процесс можно автоматизировать, возложив весь
контроль, сортировку, поиск и мониторинг информации на информационную систему.
На Рис.1.7. показана декомпозиция контекстной
диаграммы деятельности методиста очного отделения.
Рис.1.7. Декомпозиция контекстной диаграммы деятельности
методиста очного отделения.
Декомпозиция контекстной диаграммы деятельности методиста
заочного отделения представлена на Рис. 1.8
Рис. 1.8. Декомпозиция контекстной диаграммы деятельности
методиста заочного отделения
В процессе обучения на каждую группу и каждого студента
методистами учебного отдела заводятся ведомости. В процессе обучения в ведомостях
отражается текущая успеваемость групп и их участников, что позволяет не только
принимать какие либо управленческие решения или корректировки в обучении, но и
собирать статистические данные о качестве обучения университета в целом.
Индивидуальная ведомость представляет собой документ на
бумажном носителе отражающий сводку успеваемости студента. Формирование
индивидуальных ведомостей происходит на основе ведомостей составленных на
группу после проведения экзамена или зачета.
В ходе исследования установлено, что дублирование и ввод
информации с групповой ведомости на индивидуальные в филиале РГГУ в
г.Всеволожске осуществляется вручную методистами учебного отдела. Таким
образом, после одного экзамена в группе из 30 человек методисту придется
вручную сформировать 30 индивидуальных ведомостей, только на одну группу.
Контекстная диаграмма деятельности кафедры ГСЭД изображена на
Рис. 1.9.
Рис. 1.9. Контекстная диаграмма деятельности кафедры ГСЭД
На Рис. 1.10. рассмотрена декомпозиция контекстной диаграммы
деятельности преподавательского состава кафедры ГСЭД.
Рис. 1.10. Декомпозиция контекстной диаграммы деятельности
преподавательского состава кафедры ГСЭД
Декомпозиция контекстной диаграммы деятельности директора
филиала представлена на Рис. 1.11.
Рис. 1.11. Декомпозиция контекстной диаграммы деятельности
директора филиала
1.8 Выявление и оценка
информационных потоков и структуры информации
Информационный поток - это
последовательность агитационных сообщений, доносимых до избирателя средствами
того или иного информационного канала. Если в случае с информационным каналом
мы делаем акцент на формальной стороне (как доносить), то в случае информационного
потока нас больше интересует содержательная сторона (что доносить).[5]
Автором установлено, что в филиале РГГУ г
Всеволожск отсутствует единая информационная базы на электронных носителях.
Входящая информация поступает на бумажных носителях, в результате чего всю
информацию приходится сортировать и обрабатывать вручную. Это существенно
замедляет процесс управления и накладывает определенные трудности хранения и
обработки информация. Количество связей и подразделений напрямую влияет на
эффективность и загруженность информационных потоков протекающих в организации.
В результате увеличится время на подготовку принятия решения по управлению
учебным процессом филиала. Качество управленческих решений снижается из-за
возможных ошибок в ручной обработке текстовой информации. Таким образом, в
филиале РГГУ в г. Всеволожске возникает необходимость в автоматизации входящих
информационных потоков на начальных стадиях поступления.
Автором установлено, что после зачисления
на каждого студента оформляется на бумажном носителе его личная карточка,
которая сопровождает студента на протяжении всего учебного процесса.
Рациональнее вносить информацию о студенте в общую электронную информационную
базу, связать её с остальными информационными потоками, что поможет, к примеру,
в короткие сроки формировать ведомости. При наличии связи карточки студента с
определенной группой и формой обучения студента появляется возможность
учитывать количество студентов в группе и распределять занятия, по определенным
аудиториям с учетом их вместимости.
1.9 Структуризация и
обоснование требований (заказчика) к автоматизации, постановка задачи
Перед проектируемой информационной системой стоит важное
условие: система должна быть легко модифицируемой и расширяемой. Система должна
отражать все происходящие изменения во всех документах и отчетах.
К разрабатываемой системе предъявляются следующие требования.
Система должна обеспечить:
- автоматизацию ввода информации;
- автоматизацию изменения информации;
- автоматизацию поиска необходимых данных;
- быть легко масштабируемой и расширяемой;
- взаимодействовать по локальной сети с
клиентскими машинами университета.
Информационная система должна содержать в
себе:
- информацию на каждого
студента;
- текущую успеваемость
студентов;
- информацию на каждого преподавателя;
- список кафедр
университета;
- перечень предметов.
Система должна быть способной указать,
какой предмет может вести преподаватель и какую успеваемость имеет каждый
студент по этому предмету. Дополнительно ИС должна формировать учебные ведомости
по экзаменам, зачетам проводимым преподавателями в учебных группах.
Анализ рынка и аналогов программного обеспечения показал, что
на рынке есть программы отвечающие данным требованиям, но стоимость на эти
продукты высока и присутствующий в них функционал в большей своей степени будет
не задействован.
Выводы
В этой главе рассмотрена предметная область, проведен
функциональный анализ предметной области. Рассмотрен ряд программных продуктов
имеющихся в данный момент на рынке. Проведено моделирование бизнес- процессов
филиала РГГУ в г. Всеволожск на основе чего выявлены основные бизнес- процессы,
которые требуется автоматизировать.
Выделены основные требования к разрабатываемой информационной
системе:
- автоматизировать ввода информации;
- автоматизировать изменения информации;
- быть масштабируемой и расширяемой;
- взаимодействовать по локальной сети с
клиентскими машинами университета.
ГЛАВА 2. ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ УПРАВЛЕНИЯ УЧЕБНЫМ
ПРОЦЕССОМ ФИЛЛИАЛА РГГУ Г. ВСЕВОЛОЖСК
На этапе проектирования будет определена структура
информационной системы для филиала РГГУ. Будет определена навигация по разделам
системы. Так же будет проведено логическое и концептуальное проектирование базы
данных. Дополнительно рассмотрим внешний вид с точки зрения удобство для
пользователя.
Проектирование информационной системы для филиала РГГУ в г.
Всеволожск поделим на несколько этапов:
- выбор необходимой информации для ИС;
- проектирование и анализ структуры информационной
системы;
- проектирование и анализ системы навигации;
- UML моделирование;
- проектирование базы данных;
- описание функциональности информационной
системы.
2.1 Выбор необходимой информации для информационной системы
Информационная система для филиала РГГУ в
г. Всеволожск будет содержать:
- Информацию о каждом студенте.
- Информацию о каждом преподавателе.
- Информацию по каждой кафедре.
- Информацию по преподаваемым предметам.
- Информацию по специальностям.
- Информацию по успеваемости студентов
(ведомости).
Наличие выбранной информации в ИС обеспечит
в полной мере спроектировать процесс автоматизации заполнения и изменения
личных карточек студентов. Наличие информации о предметах и преподавателях
поможет в составлении индивидуальных и сводных ведомостей после зачетов и
экзаменов.
2.2 Проектирование и анализ структуры информационной системы
Структура информационной системы
представляет собой взаиморасположение и связи между отдельными ее частями -
подсистемами. Подсистема - это часть системы, выделенная по какому-либо
признаку.
В основе линейной структуры
предполагается, что все подсистемы будут располагаться одна за другой.
Использовать данную структуру удобно при проектировании небольших
информационных систем, которые в дальнейшем не планируется расширять. Линейная
структура информационной системы представлена на рис. 2.1
Рис 2.1. Линейная структура информационной
системы
При использовании структуры в виде
решетки, в которой каждая подсистема представляет собой полностью независимый
блок, приведет перенасыщению главного окна и запутает пользователя.
Соответственно при расширении системы подобная структура приведет к
перенасыщению окон и пользователю в ней будет трудно ориентироваться.
Информационная система в виде решетки представлена на рис 2.2.
Рис 2.2 Информационная система в виде
решетки
Оптимальная и логичная структура
информационной системы состоит из логически сгруппированных подсистем и
функциональных блоков. Сгруппированные подсистемы информационной системы изображены
на рис 2.3.
Рис 2.3 Сгруппированные подсистемы
информационной системы
2.3 Проектирование и анализ системы навигации
Исходя из выбранной структуры
информационной системы, спроектируем систему навигации. Выделим три основных
логических блока:
1. Личная информация;
2. Кафедры;
. Ведомости.
Далее, в зависимости от выбора пользователя, каждый
логический блок будет содержать собственное подменю, в котором будут находится
необходимые функциональные блоки.
Блок «Личная информация» содержит блоки:
- студенты;
- преподаватели.
Блок «Кафедры» содержит:
- персонал;
- специальности;
- предметы.
Блок «Ведомости» состоит из подсистем:
- ведомости по группам.
Общая система навигации информационной системы представлена
на рис. 2.4.
Рис. 2.4. Общая система навигации информационной системы
2.4 UML моделирование
UML - это язык, состоящий из словаря и правил,
позволяющих комбинировать входящие в него слова и получать осмысленные
конструкции. UML модели описывают поведение и функционирование отдельных объектов
системы включая их взаимодействия.
Проведем анализ функций и задач, которые пользователи будут
выполнять в каждой подсистеме:
Блок «Личная информация» содержит блоки:
- студенты;
- преподаватели.
В подсистеме «Студенты» пользователь может выполнять функции:
- просмотр списка студентов;
- добавление новых студентов;
- редактирование личной информации
студентов;
- удаление студентов.
В подсистеме «Преподаватели» пользователь может выполнять
функции:
- просмотр списка преподавателей;
- добавление новых преподавателей;
- редактирование личной информации
преподавателей;
- удаление преподавателей.
Блок «Кафедры» содержит блоки:
- персонал;
- специальности;
- предметы.
В подсистеме «Персонал» пользователь может выполнять функции:
- просмотр персонала кафедр.
В подсистеме «Специальности»:
- просмотр текущих специальностей университета;
- добавление новых специальностей;
- редактирование существующих
специальностей;
- удаление специальностей.
В подсистеме «Предметы»:
- просмотр текущих предметов университета;
- добавление новых предметов;
- редактирование существующих предметов;
- удаление предметов.
Блок «Ведомости» содержит подсистемы:
- ведомости.
Пользователь в подсистеме «Ведомости» сможет выполнять
функции:
- просмотр текущих ведомостей;
- заполнение ведомостей;
- печать.
Общая диаграмма использования информационной системы
изображена на Рис 2.5
Рис. 2.5 Диаграмма использования информационной системы
Детальнее функционирование ИС будет рассмотрено на диаграммах
изображенных последовательно на Рис 2.6-2.9.
Рис. 2.6 Диаграмма последовательности
«Выбор раздела»
Рис. 2.7 Диаграмма последовательности
«Добавление информации в ИС»
Рис. 2.8 Диаграмма последовательности
«Редактирование данных ИС»
Рис. 2.9. - Диаграмма последовательности
«Удаление данных из ИС»
2.5 Проектирование базы данных
Одной из методик уменьшения затрат на
обслуживание и модификацию базы данных является её предварительное
моделирование. Моделирование можно поделить на несколько этапов:
- Выбор модели данных;
- Создание логической модели данных.
2.5.1 Выбор модели данных
Существует несколько моделей данных:
- иерархическая модель данных;
- сетевая модель;
- реляционная;
- многомерная;
- объектно-ориентированная.
Иерархическая структура представляет совокупность элементов,
связанных между собой по определенным правилам. Графическим способом
представления иерархической структуры является дерево Рис 2.9.
Рис. 2.9 Иерархическая структура данных
Дерево представляет собой иерархию элементов, называемых
узлами. Под элементами понимается совокупность атрибутов, описывающих объекты.
В модели имеется корневой узел (корень дерева), который находится на самом
верхнем уровне и не имеет узлов, стоящих выше него. У одного дерева может быть
только один корень. Остальные узлы, называемые порожденными, связаны между
собой следующим образом: каждый узел имеет только один исходный, находящийся на
более высоком уровне, и любое число (один, два или более, либо ни одного) подчиненных
узлов на следующем уровне.
Сетевая модель имеет много общего с иерархической, только
каждый элемент может быть связан с любым другим элементом системы.
Рис. 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 студента,
оценка
|
Ниже приведен полный список таблиц и
использованных в них полей. Пометка 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 Выбор инструментальных средств
Для разработки информационной системы для филиала РГГУ
г.Всеволожск были выбраны следующие инструментальные средства:
. 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.- это серверный язык
создания сценариев (или стороны сервера), разработанный специально для Web.Код
PHP интерпритируется Web-сервероми генерирует HTML или иной вывод, наблюдаемый
посетителем страницы.[17]. PHP поддерживается почти на всех известных
платформах и во всех операционных системах на самых разных серверах.[11]
. Adobe Dreamweaver CS4 - позволяет используя
визуальные методы с легкостью проектировать веб-дизайн приложений. Программа
имеет полную поддержку формата CSS (Cascading Style Sheets - каскадные таблицы
стилей). Данная программы была выбрана потому, что она представляет собой
профессиональное средство для верстки веб страниц с богатым набором функций для
разработки веб приложений прекрасно сочетающее в себе смешанный режим работы
код+дизайн.
. Для редактирования графических элементов информационной
системы автором будет использоваться Adobe Photoshop CS 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()) {("Соединение не удалось: %s\n",
mysqli_connect_error());
}
Для выполнения различных запросов к базе данных
информационной системы была написана функция getinfo:
function getinfo($sql)
{
$mysqli = new mysqli("HOST",
"USER", "PASSWORD",
"DB_NAME");(mysqli_connect_errno()) {("Соединение не удалось: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($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 - «Автоматизированные системы.
Стадии создания»
. ГОСТ 34.320.96 - «Концепция и терминология для
концептуальной схемы и информационной базы»
. Басков А.В. Информационный поток [Электронный
ресурс]. - Режим доступа: http://newideology.ru/slovar/i/informatsionnyi-potok/
. Веллинг Л., Томсон Л. Разработка веб-приложений
с помощью PHP и MySQL. - М.: Вильямс, 2010. - 848с.
. Грекул В.И. , Денищенко Г.Н. Проектирование
информационных систем. - М.: Интернет-университет информационных технологий,
2008. - 304 с.
8.Гудлиф П. Ремесло программиста. Практика
написания хорошего кода. Пер. с англ. - М.: Символ-Плюс, 2009. - 704с.
.Зандстра М. PHP. Объекты, шаблоны и методики
программирования. Пер. с англ. - М: Вильямс, 2009. - 480с.
. Кириллов В.В., Громов Г.Ю. Введение в
реляционные базы данных. - СПб.: БХВ-Петербург, 2009. - 464с.
. Савельева Н.В. Основы программирования на PHP. - М:
Интернет-университет информационных технологий. - 2005. - 264 с.
. Медведев А.М., Швецкой М.В. Некоторые вопросы
методологии отладки программ [Электронный ресурс]. - Режим доступа:
http://it.kgsu.ru/Otladka/otl_0007.html
13. Онлайн энциклопедия Wikipеda [Электронный
ресурс]. - Режим доступа: http://ru.wikipеdia.оrg
14.Скляр Д., Трахтенберг А. PHP. Рецепты
программирования. - СПб.: БХВ-Петербург, 2007. - 736с.
15. Селко Д. SQL для профессионалов.
Программирование. Пер. с англ. - М.: Лори, 2009. - 464с.
. Хольцнер С. PHP в примерах. - М.: Бином-Пресс,
2009.- 350с.
17. Томсон Л., Веллинг Л, Разработка Web-приложений на на PHP и MySQL. - СПб.: ООО
«»ДиаСофтЮП», 2003. - 672 с.
18. Хаббард Дж. Автоматизированное проектирование
структур баз данных - М.: Мир, 1984. - 342с.
19. Козырев А.А. Информационные технологии в
экономике и управлении: Учебник. - СПб.: Изд-во Михайлова В. А., 2000. - 360 с.
. Титоренко Г.А. Информационные системы в
экономике. - М.: Юнити-Дана, 2008. - 463 с.
. Грабер М. SQL. - М.:Лори, 2007. - 672
с.
. Плаксин М. Тестирование и отладка программ -
для профессионалов будущих и настоящих. - М.:Бином, 2007. - 168 с.
. Первозванский А. Курс теории автоматического
управления. - М.:Лань, 2010. - 624 стр.
. Фельдман А. Создаем информационные системы. -
М.: СОЛОН-ПРЕСС, 2006. - 120с.
25. Уткин В. Информационные системы в экономике.
- М.: Издательский центр "Академия", 2004. - 288с.
. Федорова Г.Н. Информационные системы . - М.: Academia, 2010. - 208 c.
ПРИЛОЖЕНИЕ 1
Структура базы данных «rggu»
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
- База данных: `rggu`
-
- --------------------------------------------------------
-
- Структура таблицы `Departments`
--
TABLE `Departments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,
`ZavDepartment` varchar(50) NOT NULL,KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=12 ;
-
- Структура таблицы `group`
-
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,KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=6 ;
-
--------------------------------------------------------
-
--------------------------------------------------------
-
- Структура таблицы `lectures`
-
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,KEY `id_2`
(`id`), KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=17 ;
-
--------------------------------------------------------
-
- Структура таблицы `predm`
-
TABLE `predm` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=5 ;
-
--------------------------------------------------------
-
- Структура таблицы `spec`
-
TABLE `spec` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,KEY (`id`)
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=3 ;
-
- Структура таблицы `stepeni`
-
TABLE `stepeni` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=14 ;
-
--------------------------------------------------------
-
- Структура таблицы `students`
-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,KEY (`id`), UNIQUE KEY `N_zach` (`N_zach`), UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=5 ;
-
- Структура таблицы `vedomosti`
-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,KEY (`id`),KEY `id`
(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=34 ;
-
--------------------------------------------------------
- Структура таблицы `vedomosti_list`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,KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=16 ;
ПРИЛОЖЕНИЕ 2
Листинг файла «functions.php»
<?php
("HOST_DB",
"localhost");("DB_USER",
"user");("DB_PASS", "pass");("DB_NAME",
"database");
getinfo($sql)
{
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row = $result->fetch_assoc()
){($row as $fieldValue){
$data[] .= $fieldValue;
}
}
$result->close();
$mysqli->close();$data;
};execute($sql){
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {
("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$mysqli->query($sql);
$mysqli->close();1;
}
get_all_id_students(){
$sql='SELECT `id` FROM
`students`';(getinfo($sql));
}get_all_id_groups(){
$sql='SELECT `id` FROM `group`';(getinfo($sql));
}
get_all_id_lectures(){
$sql='SELECT `id` FROM
`lectures`';(getinfo($sql));
}
all_info_students(){
$ids=get_all_id_students();($ids as $id){
"<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);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);
( $result->fetch_assoc() as $key =>
$value){($key=="Specialty")$value=get_spec_name
($value);($key=="group_id")$value=get_group($value);"<td><div
align=\"center\">$value</div></td>";
}
$result->close();
$mysqli->close();
" <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>";
};
}
all_info_groups(){
$ids=get_all_id_groups();($ids as
$id){"<tr>";
$sql="SELECT `id`,
`name`,`year`,`group_number` FROM `group` where `id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);(
$result->fetch_assoc() as $key => $value){"<td><div
align=\"center\">$value</div></td>";
}
$result->close();
$mysqli->close();"
<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>";
};
}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];$group;
}
all_info_lectures(){
$ids=get_all_id_lectures();($ids as
$id){"<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);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);(
$result->fetch_assoc() as $key =>
$value){($key=="Stepen_id")$value=get_stepen_name
($value);($key=="Departmen_id")$value=get_kaf_name
($value);($key=="items_id")$value=get_items_name ($value);"<td><div
align=\"center\">$value</div></td>"; }
$result->close();
$mysqli->close();
"
<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>";
};
}
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);
(mysqli_connect_errno()) {("Connect failed:
%s\n", mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);($k=1;
$k<=$count; $k++){ foreach( $result->fetch_assoc() as $key =>
$value){($key=="id")$id=$value;($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();
}
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);
(mysqli_connect_errno()) {("Connect failed:
%s\n", mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);($k=1;
$k<=$count; $k++){( $result->fetch_assoc() as $key =>
$value){($key=="id")$id=$value;($key=="Name")$Name=$value;(($id)&&($Name))
{"<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();
}
id_info_lectures($kaf){
$ids=getinfo("SELECT `id` FROM `lectures`
where `Departmen_id`=$kaf");($ids as $id){ echo
"<tr>";($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);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);(
$result->fetch_assoc() as $key =>
$value){($key=="Stepen_id")$value=get_stepen_name
($value);($key=="Departmen_id")$value=get_kaf_name
($value);($key=="items_id")$value=get_items_name
($value);"<td><div
align=\"center\">$value</div></td>";
$value="";
}
$result->close();
$mysqli->close();
(!$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>";
};
}
get_all_kaf_li(){
$ids=get_all_kaf_id();($ids as
$id){"<li><a
href=\"personal-kaf-prep.php?kaf=$id\">". get_kaf_name($id)
."</li>" ;
}
}get_all_predm_li(){
$ids=get_all_predm_id();($ids as
$id){"<li><a
href=\"personal-kaf-prep.php?kaf=$id\">". get_kaf_name($id)
."</li>" ;
}
}
get_all_predm_li_ved(){
$ids=get_all_predm_id();($ids as
$id){"<li><a href=\"ved_predm.php?predm=$id\">".
get_predm_name($id) ."</li>" ;
}
}
get_all_group_li_a(){
$ids=get_group_id();($ids as
$id){"\n<li><a
href=\"vedomost_group.php?group=$id\">". get_group_name($id)
.get_group_number($id).get_group_year($id)."</li>" ;
}
}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);
(mysqli_connect_errno()) {("Connect failed:
%s\n", mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);
($k=1; $k<=$count; $k++){(
$result->fetch_assoc() as $key =>
$value){($key=="id")$id=$value;($key=="Name")$Name=$value;($key=="ZavDepartment")$zav=$value;(($id)&&($Name)&&($zav))
{"<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();$data;
}
del_student($id){
$sql="DELETE FROM `students` where
`id`=$id";($sql);1;
}
del_group($id){
$sql="DELETE FROM `group` where
`id`=$id";($sql);1;
}
del_lectures($id){
$sql="DELETE FROM `lectures` where
`id`=$id";($sql);1;
}
del_kaf($id){
$sql="DELETE FROM `Departments` where
`id`=$id";($sql);1;
}del_spec($id){
$sql="DELETE FROM `spec` where
`id`=$id";($sql);1;
}del_predm($id){
$sql="DELETE FROM `predm` where
`id`=$id";($sql);1;
}
get_all_kaf_id(){
$sql='SELECT `id` FROM
`Departments`';(getinfo($sql));
}
get_all_predm_id(){
$sql='SELECT `id` FROM `predm`';(getinfo($sql));
}get_all_spec_id(){
$sql='SELECT `id` FROM `spec`';(getinfo($sql));
}get_all_group_id(){
$sql='SELECT `id` FROM `group`';(getinfo($sql));
}
get_all_stud_id(){
$sql='SELECT `id` FROM
`students`';(getinfo($sql));
}
get_all_stepen_id(){
$sql='SELECT `id` FROM
`stepeni`';(getinfo($sql));
}
get_predm_ved($predm){"<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);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);(
$result->fetch_assoc() as $key =>
$value){($key=="id_stud")$value=get_fio_student
($value);($key=="id_pred")$value= get_predm_name
($value);"<td><div align=\"center\">$value</div></td>";
}
$result->close(); $mysqli->close();"</tr>";
}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];$fio;
}
get_all_kaf_sel(){
$ids=get_all_kaf_id();"<option
disabled>Выберите кафедру</option>";($ids
as $id){
$sql="SELECT `Name` FROM `Departments` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($row as $fieldValue){"<OPTION
value=\"$id\">$fieldValue</OPTION>\n";
}
}
$result->close();
$mysqli->close();
};1;
}
get_all_stud_sel(){
$ids=get_all_stud_id();"<option
disabled>Выберите студента</option>";($ids
as $id){
$sql="SELECT `Name` FROM `students` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($row as $fieldValue){"<OPTION
value=\"$id\">$fieldValue</OPTION>\n";
}
}
$result->close();
}; return 1;
}
get_all_spec_sel_opt($id){
$ids=get_all_spec_id();($ids as $id){
$sql="SELECT `Name` FROM `spec` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);
( $row = $result->fetch_assoc() ){($row as
$fieldValue){($id==$fieldValue)$x="disabled";"<OPTION
value=\"$id\" $x>$fieldValue</OPTION>\n";
}
}
$result->close();
$mysqli->close();
};1;
}get_all_kaf_sel_opt($id){
$ids=get_all_kaf_id();($ids as $id){
$sql="SELECT `Name` FROM `Departments` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($row as
$fieldValue){($id==$fieldValue)$x="disabled";"<OPTION
value=\"$id\" $x>$fieldValue</OPTION>\n";
}
}
$result->close();
$mysqli->close();
};1;
}
get_all_predm_sel_opt($id){
$ids=get_all_predm_id();($ids as $id){
$sql="SELECT `Name` FROM `predm` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
} $mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($row as
$fieldValue){($id==$fieldValue)$x="disabled";"<OPTION
value=\"$id\" $x>$fieldValue</OPTION>\n";
}
}
$result->close();
$mysqli->close();
};1;
}
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);$name_predm[0];
}
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);($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];"<OPTION
value=\"".$prep[$x]."\">$name</OPTION>\n";
}
1;
}
get_all_spec_sel(){
$ids=get_all_spec_id();"<option
disabled>Выберите специальность</option>";($ids
as $id){
$sql="SELECT `Name` FROM `spec` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($row as $fieldValue){"<OPTION
value=\"$id\">$fieldValue</OPTION>\n";
} }
$result->close();
$mysqli->close();
};1;
}
get_all_group_sel(){
$ids=get_all_group_id();
$count=count($ids);
($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);
(mysqli_connect_errno()) {("Connect failed:
%s\n", mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);
($k=1; $k<=$count; $k++){(
$result->fetch_assoc() as $key =>
$value){($key=="id")$id=$value;($key=="name")$name=$value;($key=="year")$year=$value;($key=="group_number")$group_number=$value;(($id)&&($name)&&($year)&&($group_number))
{"<OPTION
value=\"$id\">$name$year$group_number</OPTION>\n" ;
$id="";
$name="";$year=""; $group_number="";
};
};
};
$result->close();
$mysqli->close();
};1;
};
get_all_predm_sel(){
$ids=get_all_predm_id();"<option
disabled>Выберите факультет</option>";($ids
as $id){
$sql="SELECT `Name` FROM `predm` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);( $row =
$result->fetch_assoc() ){($row as $fieldValue){"<OPTION
value=\"$id\">$fieldValue</OPTION>\n";
}
}
$result->close();
$mysqli->close();
};1;
}
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);
(mysqli_connect_errno()) {("Connect failed:
%s\n", mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);($k=1;
$k<=$count; $k++){( $result->fetch_assoc() as $key =>
$value){($key=="id")$id=$value;($key=="Name")$Name=$value;(($id)&&($Name))
{"<label>$Name</label><INPUT TYPE=CHECKBOX
NAME=items['$id'] VALUE=\"$id\"> <br />" ;
$id=""; $Name="";
};
};
};
$result->close();
$mysqli->close();1;
};
get_all_stepen_sel(){
$ids=get_all_stepen_id();"<option
disabled>Выберите степень</option>";($ids
as $id){
$sql="SELECT `Name` FROM `stepeni` where
`id`=$id";
$mysqli = new mysqli(HOST_DB, DB_USER, DB_PASS,
DB_NAME);(mysqli_connect_errno()) {("Connect failed: %s\n",
mysqli_connect_error());
}
$mysqli->query('SET NAMES utf8');
$result = $mysqli->query($sql);
( $row = $result->fetch_assoc() ){($row as
$fieldValue){"<OPTION
value=\"$id\">$fieldValue</OPTION>\n";
}
}
$result->close();
$mysqli->close();
};1;
}
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`)('',
'$surname',
'$name',
'$patronymic',
'$spec',
'$year',
'$number_group',
'$N_zach'
)";($sql);1;
}add_lectures($kaf,$surname, $name, $patronymic,
$stepen, $items ){
$sql="INSERT INTO `lectures`
( `id`,
`Surname`,
`Name`,
`Patronymic`,
`Stepen_id`,
`Departmen_id`,
`items_id` )('',
'$surname',
'$name',
'$patronymic',
'$stepen',
'$kaf',
'$items'
)";($sql);
$_POST="";1;
}
add_department($name,$ZavDepartment){
$sql="INSERT INTO `Departments`
( `id`,
`Name`,
`ZavDepartment`)('',
'$name',
'$ZavDepartment'
)";($sql);
$_POST="";1;
}
add_groups($name,$year, $group_number){
$sql="INSERT INTO `group`
( `id`,
`name`,
`year`,
`group_number`)('',
'$name',
'$year',
'$group_number'
)";($sql);
$_POST="";1;
}
add_vedomosti($predm,$stud_id,$ocenka){
$sql="INSERT INTO `vedomosti`
( `id`,
`id_stud`,
`id_pred`,
`ocenka`)('',
'$stud_id',
'$predm',
'$ocenka'
)";($sql);
$_POST="";1;
}
add_spec($name){
$sql="INSERT INTO `spec`
( `id`,
`Name` )('',
'$name'
)";($sql);
$_POST="";1;
}add_predm($name){
$sql="INSERT INTO `predm`
( `id`,
`Name` )('',
'$name'
)";($sql);
$_POST="";1;
}
edit_department($id, $name,$group_number){
$sql= "UPDATE `rggu`.`group` SET `Name` =
'$name', `year` = '$year', `group_number`='$group_number' WHERE `group`.`id`
=$id";($sql);1;
};
edit_group($id, $name,$year, $group_number){
$sql= "UPDATE `rggu`.`group` SET `name` =
'$name', `year` = '$year', `group_number`='$group_number' WHERE `group`.`id`
=$id";($sql);1;
};edit_lectures($id, $kaf,$surname, $name,
$patronymic, $stepen, $items )
{
$sql="UPDATE `rggu`.`lectures` SET
`Surname` = '$surname',
`Name` = '$name',
`Patronymic`='$patronymic',
`Stepen_id` ='$stepen',
`Departmen_id` ='$kaf',
`items_id`='$items'`lectures`.`id`=$id";($sql);1;
}
edit_student($id,$surname, $name, $patronymic,
$spec, $N_zach, $year, $number_group)
{
$sql="UPDATE `rggu`.`students` SET
`Surname`='$surname',
`Name`='$name',
`Patronymic`='$patronymic',
`Specialty`='$spec',
`Entered`='$year',
`N_zach`='$N_zach',
`group_id`='$number_group'`students`.`id`=$id;";($sql);1;
}
edit_spec($id, $name)
{
$sql= "UPDATE `rggu`.`spec` SET `Name` =
'$name' WHERE `spec`.`id` =$id";($sql);1;};
edit_predm($id, $name){
$sql= "UPDATE `rggu`.`predm` SET `Name` =
'$name' WHERE `predm`.`id` =$id";($sql);1;
};
get_items_name($items){
$item_ar = explode ( "," ,
$items);($item_ar as $value){
$items_str.=",
".get_predm_name($value);
}
$items_str=substr($items_str,2,strlen($items_str)-2);$items_str;
}get_kaf_name($id){
$x=getinfo("SELECT `Name` from `Departments`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_kurse($id){
$x=getinfo("SELECT `Course` from `students`
WHERE `id`=$id");
$x=$x[0];$x;
}get_entered($id){
$x=getinfo("SELECT `Entered` from `students`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_N_zach($id){
$x=getinfo("SELECT `N_zach` from `students`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_group_name($id){
$x=getinfo("SELECT `name` from `group` WHERE
`id`=$id");
$x=$x[0];$x;
}
get_group_year($id){
$x=getinfo("SELECT `year` from `group` WHERE
`id`=$id");
$x=$x[0];$x;
}
get_group_number($id){
$x=getinfo("SELECT `group_number` from
`group` WHERE `id`=$id");
$x=$x[0];$x;
}get_god_ob($id){
$x=getinfo("SELECT `god_ob` from `students`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_spec_name($id){
$x=getinfo("SELECT `Name` from `spec` WHERE
`id`=$id");
$x=$x[0];$x;
}get_group($id){
$x=getinfo("SELECT `name`, `year`,
`group_number` from `group` WHERE `id`=$id");
$x=$x[0].$x[1].$x[2];$x;
}get_predm_name($id){
$x=getinfo("SELECT `Name` from `predm` WHERE
`id`=$id");
$x=$x[0];$x;
}get_kaf_ZavDepartment($id){
$x=getinfo("SELECT `ZavDepartment` from
`Departments` WHERE `id`=$id");
$x=$x[0];$x;
}
get_stepen_name($id){
$x=getinfo("SELECT `Name` from `stepeni`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_name_lectures($id){
$x=getinfo("SELECT `Name` from `lectures`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_name_students($id){
$x=getinfo("SELECT `Name` from `students`
WHERE `id`=$id");
$x=$x[0];$x;
}get_surname_lectures($id){
$x=getinfo("SELECT `Surname` from `lectures`
WHERE `id`=$id");
$x=$x[0];$x;
}get_surname_students($id){
$x=getinfo("SELECT `Surname` from `students`
WHERE `id`=$id");
$x=$x[0];$x;
}
get_patronymic_students($id){
$x=getinfo("SELECT `Patronymic` from
`students` WHERE `id`=$id");
$x=$x[0];$x;
}
get_patronymic_lectures($id){
$x=getinfo("SELECT `Patronymic` from
`lectures` WHERE `id`=$id");
$x=$x[0];$x;
}
get_name_group_li(){
$sql='SELECT `id` FROM
`lectures`';(getinfo($sql));
}
get_group_id(){
$sql='SELECT `id` FROM `group`';(getinfo($sql));
}vedomost_add_group($date, $group, $predm){
$sql="INSERT INTO `vedomosti_list`
( `id`,
`id_predm`,_id`,
`date`)('',
'$predm',
'$group',
'$date'
)";($sql);1;
}
find_id_vedomost_group($date, $group, $predm){
$sql="SELECT id from `vedomosti_list` WHERE
`id_predm`=$predm AND `group_id`=$group AND `date`='$date'";
$x=getinfo($sql);$x[0];
}get_vedomost_group($ved){
$sql="SELECT group_id from vedomosti_list
where id=$ved";
$group_id=getinfo($sql);
$group_id=$group_id[0];
$sql="SELECT id from students where group_id=$group_id";
$ids=getinfo($sql);($x=0;
$x<count($ids);$x++){
$sql="SELECT Surname, Name, Patronymic from
students where id=$ids[$x]";
$name=getinfo($sql);
$name=$name[0]." ".$name[1]."
".$name[2];
$N_zach=getinfo($sql);
$N_zach=$N_zach[0];
$sql="SELECT ocenka from vedomosti where
id_stud=$ids[$x] and id_ved=$ved";
$ocenka=getinfo($sql);
$ocenka=
$ocenka[0];"<tr><td>$name</td><td>$N_zach</td><td><input
type=\"text\" name=\"id[$ids[$x]]\" id=\"ocenka\"
value=\"$ocenka\"
maxlength=\"30\"/></td></tr>";
}
}
get_vedomost_group_list($group){
$sql="SELECT `id` from vedomosti_list WHERE
group_id=$group";
$ids=getinfo($sql);($x=0;
$x<count($ids);$x++){
$sql="SELECT `id_predm` from vedomosti_list
WHERE id=$ids[$x]";
$predm=getinfo($sql);
$predm=$predm[0];
$sql="SELECT `date` from vedomosti_list
WHERE id=$ids[$x]";
$date=getinfo($sql);
$date=$date[0];"<a
href=\"vedomost_group_edit.php?ved=$ids[$x]\">".$date."
- ".get_predm_name($predm)."</a><br>";
}
}
?>