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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,65 Mb
  • Опубликовано:
    2012-01-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

МИНОБРНАУКИ РОССИИ

Государственное образовательное учреждение высшего профессионального образования

«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТА ИНФОРМАЦИОННЫХ НАУК И ТЕХНОЛОГИЙ БЕЗОПАСНОСТИ

Факультета информатики

Кафедра информационных технологий



ПЕТРОВ КОНСТАНТИН СЕРГЕЕВИЧ

 

РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ УПРАВЛЕНИЯ УЧЕБНЫМ ПРОЦЕССОМ (НА ПРИМЕРЕ ФИЛЛИАЛА РГГУ г.ВСЕВОЛОЖСКА)

Дипломная работа студента 5 курса очной формы обучения

Допущено к защите на ГЭК

Доцент, зав. кафедрой информационных технологий

___________________В.В. Лекае

Научный руководитель

Кандидат военных наук, доцент

____________________А.Я. Мазманов

Москва 2011

Оглавление

ВВЕДЕНИЕ

ГЛАВА 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 <#"532022.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.


 

.5 Проектирование базы данных


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

- Выбор модели данных;

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

 

2.5.1 Выбор модели данных

Существует несколько моделей данных:

-     иерархическая модель данных;

-       сетевая модель;

-       реляционная;

-       многомерная;

-       объектно-ориентированная.

Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Графическим способом представления иерархической структуры является дерево Рис 2.9.

Рис. 2.9 Иерархическая структура данных

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

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

.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 студента, оценка












Ниже приведен полный список таблиц и использованных в них полей. Пометка 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 кода при тестировании.

. 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

Таблица 3.1

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

Поле

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

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

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

Фамилия

Пусто

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

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

Имя

Пусто

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

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

Отчество

Пусто

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

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

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

Не выбрана

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

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

Группа

Не выбрана

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

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

Год обучения

Пусто

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

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

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

Пусто

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

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


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

 

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

база данное информация навигация

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

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

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

define ("HOST_DB", "host");("DB_USER", "user");("DB_PASS", "pass");("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 - «Концепция и терминология для концептуальной схемы и информационной базы»

2. ЛИТЕРАТУРА

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

. Басков А. В. Информационный поток [Электронный ресурс]. - Режим доступа: 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»

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,

PRIMARY 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,

PRIMARY 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,

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

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

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

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

-

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

-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`

-TABLE `spec` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Name` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

-

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

-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`

-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`

-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`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("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);

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;

};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;

}get_all_id_students(){

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

return (getinfo($sql));

}get_all_id_groups(){

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

return (getinfo($sql));

}get_all_id_lectures(){

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

return (getinfo($sql));

}all_info_students(){

$ids=get_all_id_students();

foreach($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);

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>";

};

}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>";

};

}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;

}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>";

};

}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;(($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);

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>"; ($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);($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>";

};

}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>" ;

}

}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>" ;

}

}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>" ;

}

}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>" ;

}

}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;

}del_student($id){

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

execute($sql);

return 1;

}del_group($id){

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

execute($sql);

return 1;

}del_lectures($id){

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

execute($sql);

return 1;

}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;

}del_predm($id){

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

execute($sql);

return 1;

}

get_all_kaf_id(){

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

return (getinfo($sql));

}get_all_predm_id(){

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

return (getinfo($sql));

}get_all_spec_id(){

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

return (getinfo($sql));

}get_all_group_id(){

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

return (getinfo($sql));

}get_all_stud_id(){

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

return (getinfo($sql));

}get_all_stepen_id(){

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

return (getinfo($sql));

}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();"</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];

return $fio;

}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){"<OPTION value=\"$id\">$fieldValue</OPTION>\n";

}

}

$result->close();

$mysqli->close();

};

return 1;

}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);

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;

}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;

}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);

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;

}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;

}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];

}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];

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

}

return 1;

}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;

}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);

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;(($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;

};

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;

}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;

};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;

}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'

)";($sql);

return 1;

}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;

}add_department($name,$ZavDepartment){

$sql="INSERT INTO `Departments`

( `id`,

`Name`,

`ZavDepartment`)

VALUES ('',

'$name',

'$ZavDepartment'

)";

execute($sql);

$_POST="";

return 1;

}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;

}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;

}add_spec($name){

$sql="INSERT INTO `spec`

( `id`,

`Name` )

VALUES ('',

'$name'

)";

execute($sql);

$_POST="";

return 1;

}add_predm($name){

$sql="INSERT INTO `predm`

( `id`,

`Name` )

VALUES ('',

'$name'

)";

execute($sql);

$_POST="";

return 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'

WHERE `lectures`.`id`=$id";

execute($sql);

return 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'

WHERE `students`.`id`=$id;";($sql);

return 1;

}edit_spec($id, $name)

{

$sql= "UPDATE `rggu`.`spec` SET `Name` = '$name' WHERE `spec`.`id` =$id";($sql);

return 1;};

function 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);

foreach($item_ar as $value){

$items_str.=", ".get_predm_name($value);

}

$items_str=substr($items_str,2,strlen($items_str)-2);

return $items_str;

}get_kaf_name($id){

$x=getinfo("SELECT `Name` from `Departments` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_kurse($id){

$x=getinfo("SELECT `Course` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_entered($id){

$x=getinfo("SELECT `Entered` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_N_zach($id){

$x=$x[0];

return $x;

}get_group_name($id){

$x=getinfo("SELECT `name` from `group` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_group_year($id){

$x=getinfo("SELECT `year` from `group` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_group_number($id){

$x=getinfo("SELECT `group_number` from `group` WHERE `id`=$id");

$x=$x[0];

return $x;

}

function get_god_ob($id){

$x=getinfo("SELECT `god_ob` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_spec_name($id){

$x=getinfo("SELECT `Name` from `spec` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_group($id){

$x=getinfo("SELECT `name`, `year`, `group_number` from `group` WHERE `id`=$id");

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

return $x;

}get_predm_name($id){

$x=getinfo("SELECT `Name` from `predm` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_kaf_ZavDepartment($id){

$x=getinfo("SELECT `ZavDepartment` from `Departments` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_stepen_name($id){

$x=getinfo("SELECT `Name` from `stepeni` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_name_lectures($id){

$x=getinfo("SELECT `Name` from `lectures` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_name_students($id){

$x=getinfo("SELECT `Name` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_surname_lectures($id){

$x=getinfo("SELECT `Surname` from `lectures` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_surname_students($id){

$x=getinfo("SELECT `Surname` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_patronymic_students($id){

$x=getinfo("SELECT `Patronymic` from `students` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_patronymic_lectures($id){

$x=getinfo("SELECT `Patronymic` from `lectures` WHERE `id`=$id");

$x=$x[0];

return $x;

}get_name_group_li(){

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

return (getinfo($sql));

}get_group_id(){

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

return (getinfo($sql));

}vedomost_add_group($date, $group, $predm){

$sql="INSERT INTO `vedomosti_list`

( `id`,

`id_predm`,

group_id`,

`date`)

VALUES ('',

'$predm',

'$group',

'$date'

)";

execute($sql);

return 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);

return $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);

for($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];

$sql="SELECT N_zach from students where id=$ids[$x]";

$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];

echo "<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);

for($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];

echo "<a href=\"vedomost_group_edit.php?ved=$ids[$x]\">".$date." - ".get_predm_name($predm)."</a><br>";

}

}

?>

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!