Студ

Помощь

Информационная система "Успеваемость студентов"

Отчет По Практике По Программированию , Проектирование Информационных Систем Курсовая

Министерство транспорта Российской Федерации

Федеральное агентство морского и речного транспорта

Федеральное Государственное Общеобразовательное Учреждение

Высшего Профессионального Образования

"Новосибирская государственная академия водного транспорта"




Электромеханический факультет

Кафедра: Информационных систем




ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту по дисциплине

Корпоративные информационные системы

на тему: Информационная система «Успеваемость студентов»




Студент группы ИТ-41

Кривой А.Л. ____________

Руководитель проекта

ст. преподаватель

____________________ А. С. Марченко

« _ » _______________ 201 ___ г.




Новосибирск 2012

Содержание


ВВЕДЕНИЕ

1.Разработка концептуальной модели

1.1 Описание предметной области

.2 Инфологическая модель предметной области

2.Разработка логической модели

2.1 Описание сервисов

.2 Выбор архитектуры

3.Разработка физической модели

3.1 Уровень представления данных

.2 Уровень данных

.3 Нормализация

.4 ER - диаграмма

.5 Выбор системы хранения

4.Бизнес процессы

5.Принципы безопасности

ЗАКЛЮЧЕНИЕ

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

ПРИЛОЖЕНИЕ 1

ПРИЛОЖЕНИЕ 2

ПРИЛОЖЕНИЕ 3

ПРИЛОЖЕНИЕ 4

ПРИЛОЖЕНИЕ 5

информационная система данные хранение

ВВЕДЕНИЕ


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

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

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

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

Информационная система состоит из баз данных, в которых накапливается информация, источника информации, аппаратной части ИС, программной части ИС, потребителя информации.

Информационная система предназначена для разгрузки деятельности человека.


1. Разработка концептуальной модели


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


.1 Описание предметной области


Система должна собирать и хранить информацию

по студентам:

·Фамилия

·Имя

·Отчество

·Телефон

·Адрес проживания

·Дата рождения

·Курс

по преподавателям:

·Фамилия

·Имя

·Отчество

·Логин

·Пароль

по дисциплинам:

·Название

·Семестр

по факультетам:

·Название

по ведомостям:

·Студент

·Преподаватель

·Дисциплина

·Оценка

Существует три уровня пользователей системы:

·Преподаватель - имеет право вносить данные в ведомость

·Студенты - имеет право на просмотр данных из ведомости

·Администратор - имеет право создать нового пользователя, добавить новую дисциплину, удалять и изменять информацию пользователей и дисциплин

Студент может:

·Просматривать оценки из ведомости

·Просматривать свои оценки через поиск

Преподаватель может:

·Заполнить ведомость

·Из ведомости формировать отчет успеваемости студентов

Администратор может:

·Добавить нового пользователя

·Изменить информацию о пользователе

·Просматривать информацию пользователя

·Удалить пользователя

·Добавить студента

·Изменить информацию о студенте

·Просматривать информацию студента

·Удалить студента

·Создать новую дисциплину

·Удалить дисциплину

·Изменить информацию о дисциплине

Задачи системы:

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


.2 Инфологическая модель предметной области


Инфологическая модель (информационно-логическая модель) - ориентированная на человека и не зависимая от типа СУБД модель предметной области, определяющая совокупности информационных объектов, их атрибутов и отношений между объектами, динамику изменений предметной области, а также характер информационных потребностей пользователей (см. рис. 1).


Таблица 1 - Словарь данных

№ п/пНазвание объектаОписание объекта1АдминистраторСпециалист по обслуживанию баз данных и информационных систем2СтудентУчащийся в высшем учебном заведении или колледже3ПреподавательСотрудник, работающий в высшем учебном заведении или колледже4ДисциплинаОтрасль знаний, которая преподается или исследуется в высших учебных заведениях5ФакультетОценка знаний человека Учебно-научное и административное структурное подразделение высшего учебного заведения6ОтчетДокумент учета, составленный в виде списка Сообщение по определённому вопросу, основанное на привлечении документальных данных7ВедомостьДокумент учета, составленный в виде списка8Учебный курсОтрезок времени обучения9ЭкзаменОценка знаний человека

Таблица 2 - Функциональные требования

№ п/пНазвание функцииНазначение функции1Добавление пользователяДобавление в базу данных информации о новом преподавателе2Изменение информации о пользователеРедактирование данных пользователя3Просматривание информации пользователяПросматривание информации пользователя4Удаление пользователяУдаление пользователя5Добавление студентаДобавление в базу данных информации о новом студенте6Изменение информации о студентаРедактирование данных студента 7Просматривание информации студентаПросматривание информации студента8Удаление студентаУдаление студента9Добавление дисциплиныДобавление в базу данных информации о новой дисциплине10Изменение информации о дисциплинеИзменение информации дисциплины11Просматривание информации дисциплиныПросматривание информации дисциплины12Удаление дисциплиныУдаление дисциплины13Добавление записи в ведомостьДобавление в базу данных новой записи ведомости.

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


Рис. 1 - Инфологическая модель предметной области для системы данных по студентам


2. Разработка логической модели


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

·определяет составляющие части решения;

·описывает рабочую среду, в которой все части решения собираются в одно целое;

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


.1 Описание сервисов


Достоинства модульности:

·Такие программы легко проектировать и отлаживать. Функциональные компоненты такой программы могут быть написаны и отлажены отдельно друг от друга.

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


Рис. 2 - Блок-схема модульности

2.2 Выбор архитектуры


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


Рис. 3 - Трехуровневая архитектура системы


Оба пользовательских сервиса относятся к уровню представления. Сервис формирования данных для представления тоже относится к уровню представления. Бизнес сервисы и сервис верификации пользовательских данных относится к уровню бизнес - логики. Все остальные сервисы относятся к уровню доступа к данным.


3. Физический дизайн


На этапе физического дизайна решается ряд задач:

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

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

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


.1 Уровень представления данных


Браузеры, для связи и общения с сервером используют языки гипертекстовой разметки, такие как HTML - технологию web - дизайна. Достоинства HTML:

·Язык очень прост.

·Язык достаточно гибок, чтобы работать с некоторыми из инструментов активного программирования ( PHP и JavaScript ).

·Язык после постоянных доработок обрел четкие «очертания» в виде стандартов HTML.

На сегодняшний день, альтернативы этой технологии не существует.

Внешний вид системы представлен на рисунках ниже.

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


Рис. 4 - Форма добавления студента


На рисунке 5 изображен результат добавления пользователя

Рис. 5 - Результат работы блока добавления студента


.2 Уровень данных


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


.3 Нормализация


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

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

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

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

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

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

·Отношение находится во второй нормальной форме;

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


Таблица 3 - структура таблицы students

ПолеТипЗаполнениеid_studentint(11)auto_incrementid_courseint(11)заполняется вручнуюfamiliatextзаполняется вручнуюimiatextзаполняется вручнуюotchestvotextзаполняется вручнуюtelefonint(11)заполняется вручнуюaddrestextзаполняется вручнуюdata_rojdeniatextзаполняется вручную

Таблица 4 - Структура таблицы users

ПолеТипЗаполнениеid_userint(11)auto_incrementfamiliatextзаполняется вручнуюimiatextзаполняется вручнуюotchestvotextзаполняется вручнуюlogintextзаполняется вручнуюpasstextзаполняется вручную

Таблица 5 - Структура таблицы course

ПолеТипЗаполнениеid_courseint(11)auto_incrementid_departmentint(11)заполняется вручнуюcoursetitleint(11)заполняется вручнуюТаблица 6 - Структура таблицы department

ПолеТипЗаполнениеid_departmentint(11)auto_incrementdeptitletextзаполняется вручную

Таблица 7 - Структура таблицы discipline

ПолеТипЗаполнениеid_disciplineint(11)auto_incrementdistitletextзаполняется вручнуюsemestrint(11)заполняется вручную

Таблица 8 - Структура таблицы list

ПолеТипЗаполнениеid_listint(11)заполняется вручнуюid_studentint(11)заполняется вручнуюid_disciplineint(11)заполняется вручнуюratingtextзаполняется вручную

.4 ER - диаграмма


Модель сущность-связь (ER-модель) - модель данных, позволяющая описывать концептуальные схемы предметной области.- модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.

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

Рис. 6 - ER - диаграмма


.5 Выбор системы хранения


Таблица 10 - Сравнение MySQL и PostgreeSQL

СУБДMySQLPostgreSQLПроизводительностьВысокаяВысокаяКлючиПоддерживаетПоддерживаетТранзакцииПоддерживаетПоддерживаетАвтоматическое восстановление после сбоевЧастичноеПолноеЛицензированиеОткрытаяОткрытаяБыстродействиеВысокоеВысокое

В качестве системы хранения остановился на выборе СУБД MySQL, так как она обладает рядом преимуществ:

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

·Безопасность. Довольно высокий уровень безопасности обеспечивается благодаря базе данных MySQL. Пароли, хранящиеся в базе данных, можно зашифровать при помощи встроенной в MySQL функции password().

·Лицензия. Бесплатное распространение программы для некоммерческих целей.

·Открытость кода. Благодаря этому вы сможете сами добавлять в пакет нужные функции, расширяя его функциональность так, как вам требуется.

·Надежность. Создатели MySQL потрудились на славу, пакет довольно стабилен и его трудно вывести из строя.

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


4. Бизнес - процессы


Уровень бизнеса определяет, какие языки программирования будут выбраны для операций с манипулированием данными. Основными критериями выбора являются:

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

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

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

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

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


Таблица 11 - Сравнение PHP и Pearl

ЯзыкиPHPPearlЦенаБесплатноБесплатноПопулярностьВысокаяСредняяПростотаПростойСложныйWeb - ориентированДаНе основное направлениеЭффективная работа с MySQLДаНе достаточноТрадиционностьДаДаГибкостьГибкийНе достаточноБезопасностьДаДаЭффективностьВысокаяВысокая

В качестве языка программирования был выбран язык PHP.


Рис. 7 - Схема работы сервиса добавление записи


Данная система состоит из 10 бизнес - сервисов:

·Добавление пользователя

·Изменение информации о пользователе

·Удаление пользователя

·Добавление студента

·Изменение информации о студенте

·Удаление студента

·Добавление дисциплины

·Изменение информации о дисциплине

·Удаление дисциплины

·Добавление записи в ведомость

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

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


Рис. 8 - Схема работы сервиса изменение информации


Сервис удаления информации. В данном сервисе осуществляется удаление нужной информации.


Рис. 9 - Схема работы сервиса удаления информации


Сервис добавления записи в ведомость. В данном сервисе осуществляется добавление новой информации в ведомость.


Рис. 10 - Схема работы сервиса добавление записи в ведомость

5. Принципы безопасности


В системе предусмотрено разграничения прав доступа. Все пользователи делятся на:

·Администратора (обладает правами добавления, изменения, удаления информации о преподавателях, студентах, дисциплинах, следит за корректной работой системы).

·Преподаватель (обладает правами добавления записи в ведомость)

·Студент (обладает правами просмотра, поиска информации в системе).

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

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

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

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

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

При работе с сессиями различают следующие этапы:

·Открытие сессии

·Регистрация переменных сессии и их использование

·Закрытие сессии


ЗАКЛЮЧЕНИЕ


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

Достоинства системы:

·Простой и понятный пользовательский интерфейс

·Предусмотрена работа с системой через сеть Internet

·Благодаря автоматизированной работе снята огромная нагрузка на методиста и работников деканата

·Через сеть Internet студенты могут просматривать свои результаты экзаменов, не выходя из дома

В проекте использованы языки web - программирования:

·HTML - гипертекстовая разметка

·CSS - каскадные таблицы стилей

·PHP - серверный язык

·JavaScript - создание динамических страниц

·Ajax - динамическая подгрузка информации в отведённое место

Для хранения данных использована база данных:

·MySQL

Освоены методы выбора средств, разработки, закреплены навыки построения web - ориентированных приложений и современных стандартов по хранению, защите и передачи данных.


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


1.Браун, М. Использование HTML : специальное издание: *Книга+: учебное пособие : *пер. с англ.+/ Марк Р. Браун, Джерри Хонникат *и др.+. - 4-е изд. - М. * и др.+: Издательский дом "Вильямс", 1999. - 780, [4] с. : ил. - Парал. тит. англ.

2.Веллинг, Л. Разработка Web-приложений с помощью PHP и MySQL : *Книга+ : *пер. с англ.+ / Люк Веллинг, Лора Томсон. - 2-е изд. - М.: Издательский дом "Вильямс", 2003. - 800 с. : ил. + 1 электрон. опт. диск. - Предм. указ.: с. 782-795.

.Гото, К. Веб-редизайн: книга Келли Гото и Эмили Котлер : *Книга+ : *пер. с англ.+ / Келли Гото, Эмили Котлер. - СПб.: Смивол-Плюс, 2003. - 376 с. : цв. ил. - 3000 экз. - ISBN 5-93286-040-5 (в пер.)

.Йордон, Э. Управление сложными Интернет-проектами *Книга+ / Эдвард Йордан; перевод с англ. яз. А. Головко. - М.: ЛОРИ, 2003. - 344, [8] с. : ил. - Перевод изд.: Managing High-Intensity Internet Projects / Edward Yourdon, - 2002. - 3200 экз.

5.Крейн, Д. Ajax в действии : [Книга] : [пер. с англ.] / Дейв Крейн, Эрик Паскарелло, Даррен Джеймс. - М.: Издательский дом "Вильямс", 2006. - 640с. : ил. - Парал. тит. англ. - Перевод изд.: Ajax in action / Dave Crane, Eric Pascarello with Darren James. - 2000 экз.

6.Кэгл, К. XML : [Книга] : [пер. с англ.] / Курт Кэгл, Дэвид Хантер, Дэйв Гиббонс. - М.: ЛОРИ, 2006. - 638, [18] с. - На пер. 1-й авт.: Курт Кэгл. - Перевод изд.: Beginning XML / Kurt Cagle, Dave Gibbons, David Hanter. - 750 экз.

7.Пауэл, Т. Полный справочник по JavaScript : [Книга] : [пер. с англ.] / Томас Пауэлл, Фриц Шнайдер. - 2-е изд. - М.: Издательский дом "Вильямс", 2006. - 960 с. : ил. - Парал. тит. англ. - Перевод изд.: JavaScript The Complete Reference. Second Edition / Thomas Powell, Fritz Schneider.

.Прокопова Т. В., Интернет-технологии для создания информационных систем : учебный курс / Т. В. Прокопова. - М., 2005. - 304 с. : ил. - 2000 экз.

.ГОСТ Р ИСО 9000-2008. Системы менеджмента качества. Основные положения и словарь. *Текст+. - Взамен ГОСТ 9000-2001; введ. 2009-09-10. - М. : Стандартинформ, 2009. - 31 с.

.RusFAQ.ru Русский инфопортал *Электронный ресурс+ / ООО "Мастер-Эксперт Про" ; Web-мастер Калашников О.А. - Электрон. дан. - М., 2008 - Режим доступа: #"justify">ПРИЛОЖЕНИЕ 1


Файл Index.php


<?php

include ("../path.php");

include ($incl."register.php");($incl."connect.php");

$link=$_GET['link']; if (!$link) $link="main";

$result=mysql_query("SELECT * FROM content WHERE page='$link'");

$row=mysql_fetch_array($result);

?>

<!DOCTYPE HTML Public "-//w3c//DTD HTML 4.01 Transition//EN"

"#"justify"><html>

<head>

<link type="text/css" rel="stylesheet" href="style.css">

<link rel="short cut icon" href="image/adress.ico">

<meta content="<?php echo $row['keywords'];?>" name="keywords">

<meta content="<?php echo $row['description'];?>" name="description">

<meta http-equiv="content-type" content="text/html; charset=windows-1251">

<title><?php echo $row['title'];?></title>

<script type="text/javascript" src="script.js"></script>

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript" src="selects.js"></script>

</head>

<body onload="upd_message()">

<?

$link=$_GET['link']; if (!$link) $link="main";

?>

<div id="all">

<?("../path.php");($incl."head.php");($incl."menu.php");($incl."foot.php");

?>

</div>

</body>

</html>


ПРИЛОЖЕНИЕ 2


Файл adduser.php


<h2 align="center">Добавление пользователя</h2>

<div align="center">

<form method='post' action='index.php?link=addstud_script' name='form2'>

<table align="center">

<tr>

<td colspan="2" align="center">

<p>Заполните, пожалуйста, все поля формы добавления Студента</p><hr>

</td>

</tr>

<tr>

<td rowspan="2" valign="top">

Введите Фамилию:

</td>

<td>

<input type='text' size='45' name='familia' onkeyup='provfam(form2)'/>

</td>

</tr>

<tr>

<td>

Фамилия должна содержать от 2 до 20 символов.<br>

Используйте кириллицу (а-я) или латинские буквы (a-z)<hr>

</td>

</tr>

<tr>

<td rowspan="2" valign="top">

Введите Имя:

</td>

<td>

<input type='text' size='45' name='imia' onkeyup='provnme(form2)'/>

</td>

</tr>

<tr>

<td>

Имя должно содержать от 2 до 20 символов.<br>

Используйте кириллицу (а-я) или латинские буквы (a-z)<hr>

</td>

</tr>

<tr>

<td rowspan="2" valign="top">

Введите Отчество:

</td>

<td>

<input type='text' size='45' name='otchestvo' onkeyup='provotch(form2)'/>

</td>

</tr>

<tr>

<td>

Отчество должно содержать от 2 до 20 символов.<br>

Используйте кириллицу (а-я) или латинские буквы (a-z)<hr>

</td>

</tr>

<tr>

<td rowspan="2" valign="top">

Введите Телефон:

</td>

<td>

<input type='text' size='45' name='telefon' onkeyup='provtel(form2)'/>

</td>

</tr>

<tr>

<td>

Телефон должен содержать от 6 до 11 символов.<br>

Используйте цифры (0-9)<hr>

</td>

</tr>

<tr>

<td rowspan="2" valign="top">

Адрес проживания:

</td>

<td>

<input type='textarea' size='45' name='addres' onkeyup='provadr(form2)'/>

</td>

</tr>

<tr>

<td>

Адрес проживания должен содержать от 2 до 20 символов.<br>

Используйте кириллицу (а-я), латинские буквы (a-z) или цифры (0-9)<hr>

</td>

</tr>

<tr>

<td rowspan="2" valign="top">

Дата рождения:

</td>

<td>

<input type='text' size='45' name='date' onkeyup='provdte(form2)'/>

</td>

</tr>

<tr>

<td>

Дата рождения должна соответствовать установленному формату (dd.mm.yyyy)<br>

Используйте цифры (0-9)<hr>

</td>

</tr>

<tr>

<td valign="top">

Факультет:

</td>

<td>

<select name="fakultet" id="fklt_id">

<option value="0"></option>

<?($incl."connect.php");

$result_set=$mysqli->query('SELECT * FROM `department`');($row=$result_set->fetch_assoc())

{'<option value="'.$row["id_department"].'">'.$row["deptitle"].'</option>';

}

$result_set->close();

$mysqli->close();

?>

</select><hr>

</td>

</tr>

<tr>

<td valign="top">

Курс:

</td>

<td>

<select name="kurs" id="krs_id" disabled="disabled">

<option value="0"></option>

</select>

</td>

</tr>

<tr>

<td colspan="2">

<hr>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input type='submit' value='Добавить'/>

</td>

</tr>

</table>

</form>


ПРИЛОЖЕНИЕ 3


Файл addstud_script.php


<?php($incl.'connect.php');($_POST)

{

$familia = trim($_POST['familia']);

$imia = trim($_POST['imia']);

$otchestvo = trim($_POST['otchestvo']);

$telefon = trim($_POST['telefon']);

$addres = trim($_POST['addres']);

$date = trim($_POST['date']);

$kurs = trim($_POST['kurs']);

$fakultet = trim($_POST['fakultet']);

$error = false;

$errortext = '<br><p>При добавлении студента произошли следующие ошибки:</p><ul>';

if (empty($familia))

{

$error = true;

$errortext .= '<li>Вы не заполнили поле Фамилия</li>';

} else {(!preg_match('/^[а-яА-ЯёЁa-zA-Z]{2,20}$/i',$familia))

{

$error = true;

$errortext .= '<li>Убедитесь что Фамилия состоит от 2 до 20 символов кириллицы (а-я) или латиницы (a-z)</li>';

}

}(empty($imia))

{

$error = true;

$errortext .= '<li>Вы не заполнили поле Имя</li>';

} else {(!preg_match('/^[а-яА-ЯёЁa-zA-Z]{2,20}$/i',$imia))

{

$error = true;

$errortext .= '<li>Убедитесь что Имя состоит от 2 до 20 символов кириллицы (а-я) или латиницы (a-z)</li>';

}

}(empty($otchestvo))

{

$error = true;

$errortext .= '<li>Вы не заполнили поле Отчетсво</li>';

} else {(!preg_match('/^[а-яА-ЯёЁa-zA-Z]{2,20}$/i',$otchestvo))

{

$error = true;

$errortext .= '<li>Убедитесь что Отчество состоит от 2 до 20 символов кириллицы (а-я) или латиницы (a-z)</li>';

}

}(empty($telefon))

{

$error = true;

$errortext .= '<li>Вы не заполнили поле Телефон</li>';

} else {(!preg_match('/^[0-9]{6,11}$/i',$telefon))

{

$error = true;

$errortext .= '<li>Убедитесь что Телефон состоит от 6 до 11 цифр (0-9)</li>';

}

}(empty($addres))

{

$error = true;

$errortext .= '<li>Вы не заполнили поле Адрес проживания</li>';

} else {(!preg_match('/^[а-яА-ЯёЁa-zA-Z0-9]{2,20}$/i',$addres))

{

$error = true;

$errortext .= '<li>Убедитесь что Адрес состоит от 2 до 20 символов кириллицы (а-я), латиницы (a-z) или цифр (0-9)</li>';

}

}(empty($date))

{

$error = true;

$errortext .= '<li>Вы не заполнили поле Дата рождения</li>';

} else {(!preg_match('/^(\d{2})\.(\d{2})\.(\d{4})$/i',$date))

{

$error = true;

$errortext .= '<li>Убедитесь что Дата рождения записана в установленном формате</li>';

}

}(empty($fakultet))

{

$error = true;

$errortext .= '<li>Вы не выбрали поле Факультет</li>';

} else {(!preg_match('/^[a-z0-9]$/i',$fakultet))

{

$error = true;

$errortext .= '<li>Убедитесь что вы выбрали Факультет</li>';

}

}(empty($kurs))

{

$error = true;

$errortext .= '<li>Вы не выбрали поле Курс обучения</li>';

} else {(!preg_match('/^[a-z0-9]$/i',$kurs))

{

$error = true;

$errortext .= '<li>Убедитесь что вы выбрали Курс обучения</li>';

}

}

$errortext .= '</ul>';($error)

{($errortext);'Пожалуйста <a href="index.php?link=adduser">повторите попытку!</a>';

} else {_query('INSERT INTO students(id_course, id_department, familia, imia, otchestvo, telefon, addres, data_rojdenia)("'.$kurs.'", "'.$fakultet.'", "'.$familia.'", "'.$imia.'", "'.$otchestvo.'", "'.$telefon.'", "'.$addres.'", "'.$date.'")');'<br><br>Поздравляем пользователь успешно добавлен';

}

}

?>


ПРИЛОЖЕНИЕ 4


Файл list.php


<select id="sel1" onchange='showDistitle(this);'>

<option value="0"></option>

<?("../path.php");($incl."connect.php");

$result_set=$mysqli->query('SELECT * FROM `discipline`');($row=$result_set->fetch_assoc())

{'<option value="'.$row["id_discipline"].'">'.$row["distitle"].'</option>';

}

$result_set->close();

$mysqli->close();

?>

</select>

<?php($incl."connect.php");

$q=iconv("UTF-8", "WINDOWS-1251",$_POST['q']);

$result_set=$mysqli->query('SELECT distitle from `discipline` where id_discipline="'.$q.'"');

$row=$result_set->fetch_assoc();'<table>

<tr>

<td colspan="4">

Дисциплина: '.$row['distitle'].'<hr>

</td>

</tr>

<tr>

<td>

Фамилия<hr>

</td>

<td>

Имя<hr>

</td>

<td>

Отчество<hr>

</td>

<td>

Оценка<hr>

</td>

</tr>';

$result_set=$mysqli->query('SELECT s.familia, s.imia, s.otchestvo, l.rating FROM `list` l,`students` s where l.id_student=s.id_student AND l.id_discipline="'.$q.'"');($row=$result_set->fetch_assoc()) {'<tr>

<td>

'.$row['familia'].'

</td>

<td>

'.$row['imia'].'

</td>

<td>

'.$row['otchestvo'].'

</td>

<td>

'.$row['rating'].'

</td>

</tr>';

}

$result_set->close();

$mysqli->close();'</table><br>';

?>

<form method="POST" action="" name="forma5">

<table>

<tr>

<td colspan="2" align="center">

Введите свои данные

</td>

</tr>

<tr>

<td>

Фамилия:

</td>

<td>

<input type="text" name="fam" id="fam"/>

</td>

</tr>

<tr>

<td>

Имя:

</td>

<td>

<input type="text" name="nme" id="nme"/>

</td>

</tr>

<tr>

<td>

Отчество:

</td>

<td>

<input type="text" name="otch" id="otch"/>

</td>

</tr>

<tr>

<td colspan="2">

<input type="button" value="Найти" onclick="search()"/>

</td>

</tr>

</table>

</form>

<br>

<?php($incl."connect.php");

$fam=iconv("UTF-8", "WINDOWS-1251",$_POST['fam']);

$nme=iconv("UTF-8", "WINDOWS-1251",$_POST['nme']);

$otch=iconv("UTF-8", "WINDOWS-1251",$_POST['otch']);

$result_set1 = $mysqli->query("SELECT s.familia, s.imia, s.otchestvo, d.distitle, l.rating FROM `students` s, `list` l, `discipline` dl.id_student=s.id_student ANDl.id_discipline=d.id_discipline AND familia='$fam' AND imia='$nme' AND otchestvo='$otch'");

$row=$result_set1->fetch_assoc();'<table>

<tr>

<td colspan="2">

Результаты студента:

'.$row['familia'].' '.$row['imia'].' '.$row['otchestvo'].'

</td>

</tr>

<tr>

<td>

Дисциплина

</td>

<td>

Оценка

</td>

</tr>';

while ($row = $result_set1->fetch_assoc()){'<tr>

<td>

'.$row['distitle'].'

</td>

<td>

'.$row['rating'].'

</td>

</tr>';

}'</table>';

$result_set1->close();

$mysqli->close();

?>


ПРИЛОЖЕНИЕ 5


Файл addlist.php


<h2 align="center">Добавление записи в ведомость</h2>

<form method='post' name="form3" action='index.php?link=addlist_script'>

<table align="center">

<tr>

<td colspan="2" align="center">

<p>Пожалуйста, заполните все поля формы добавления записи в ведомость.</p><hr>

</td>

</tr>

<tr>

<td valign="top">

Выберите студента из списка:

</td>

<td>

<select name='student'>

<option value="0"></option>

<?($incl."connect.php");

$result_set=$mysqli->query('SELECT * FROM `students`');($row=$result_set->fetch_assoc())

{'<option value="'.$row["id_student"].'">'.$row["familia"].' '.$row["imia"].' '.$row["otchestvo"].'</option>';

}

$result_set->close();

$mysqli->close();

?>

</select><hr>

</td>

</tr>

<tr>

<td valign="top">

Выберите дисциплину:

</td>

<td>

<select name='discipline'>

<option value="0"></option>

<?($incl."connect.php");

$result_set=$mysqli->query('SELECT * FROM `discipline`');($row=$result_set->fetch_assoc())

{'<option value="'.$row["id_discipline"].'">'.$row["distitle"].'</option>';

}

$result_set->close();

$mysqli->close();

?>

</select><hr>

</td>

</tr>

<tr>

<td valign="top">

Выберите оценку:

</td>

<td>

<select name='rating'>

<option value=" "></option>

<option value="Неудовлетворительно">Неудовлетворительно</option>

<option value="Удовлетворительно">Удовлетворительно</option>

<option value="Хорошо">Хорошо</option>

<option value="Отлично">Отлично</option>

</select>

</td>

</tr>

<tr>

<td colspan="2">

<hr>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input type='submit' value='Добавить'/>

</td>

</tr>

</table>

</form>