dbForge Studio for MySQL — это гибкий профессиональный инструмент для разработчиков базы данных и пользователей MySQL.


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.

Студент

Астапен
ко Михаил Юрьевич

/ /




Факультет

ИВТ

Группа

ПБТ
-
44



Руководитель


Ситняковская Елена Игоревна


/ /














Кафедра ПМиК

Допустить к защите

завB кафедрой:

профB, дBтBнB


___________
___________

Фионов АBНB

Федеральное агентство связи

Фе
де
ральное государственное

бюджетное образовательное

учреждение

высшего образования

«Сибирский государственный университет телекоммуникаций и информатики»

(СибГУТИ)

ВЫПУСКНАЯ
КВАЛИФИКАЦИОННАЯ
РАБОТА БАКАЛАВРА

А
ВТОМАТИЗАЦИЯ ДЕЯТЕЛЬ
НОСТИ
ПОДГОТОВИТЕЛЬНЫХ ОТД
ЕЛЕНИЙ ВЫСШИХ
УЧЕБНЫХ ЗАВЕДЕНИЙ


Пояснительная записка





Н
овосибирск 2017 гB



2


Содержание


ВВЕДЕНИЕ

3

1 ПОСТАНОВКА ЗАДАЧИ

5

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

5

1B2 Требования к приложению

6

1B3 Этапы разработки

7

1B4 Обзор аналогичных приложений

8

2 СРЕДСТВА РАЗРАБОТКИ

9

3 ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА

10

3B1 Создание структуры базы данных

10

3B2 Анализ и построение связей между элементами базы данных

12

3B3 Создание клиентского приложения для работ
ы с базой данных

15

4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

28

4B1 Первичная настройка приложения

28

4B2 Работа в «Режиме управления
учебным

процессом»

31

4.
3 Описание режимов работы «Журнал» и «Электронный дневник»

35

ЗАКЛЮЧЕНИЕ

3
6

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

3
7

ПРИЛОЖЕНИЕ А


3


ВВЕДЕНИЕ

Подготовительные курсы разной формы и продолжительности существуют
сегодня практически при всех высших учебных заведенияхB По данным
специалистов, в институт поступают от 60 до 80 % выпускников
подготовительных курсов госу
дарственных вузовB А среди тех, кто отучился на
курсах негосударственных вузов, этот процент даже вышеB

В советское время на подготовительные курсы шли, прежде всего, ради
тренировки перед экзаменами
-

углубленные знания многие получали с
репетиторами, а н
а курсовых занятиях формировалось умение решать задачи или
писать сочиненияB Но в начале 90
-
х роль подготовительных курсов несколько
измениласьB С середины 1990
-
х годов подготовка
до ВУЗа
стала одной из
основных статей доходов государственных высших учебны
х заведенийB

Обучение на подготовительных курсах имеет ряд преимуществ:



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



Обучение на подготовительных курсах


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



Даже для тех учащихся, которые успешно
о
канчивают среднюю школу,
необходим определенный запас знаний по профильным дисциплинамB Программы
этих учебных дисциплин
, преподаваемых на подготовительных курсах, как раз и
обеспечивают «продвинутые» знанияB Кроме того, подготовительные курсы
пред
о
ставляют возможность апробировать, пополнить и укрепить свои знания
сначала на базисном уровне (на уровне государственных образ
овательных
стандартов), а затем и на продвинутом уровнеB



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

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

и системно организующееB


4


По продолжительности обучения подготовительные курсы бывают:
долгосрочными, кратк
осрочными и интенсивнымиB

В СибГУТИ, где проходила у меня преддипломная практика, проводятся 2
вида курсов:



подготовительные курсы продолжительностью D месяцев (с декабря по
апрель)



подготовительные курсы продолжительностью 7 месяцев (с октября по
апрель)

На сайте OPPps://siNsuPisBr
u

университет пишет о достоинствах своих
подготовительных курсов:

«В чем особенность и преимущество обучения на наших курсах:



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



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



программа обучения предполагает подготовку к сдаче выпускных и
вступительных экзаменов в форме ЕГЭ;



программа курсов ори
ентирована на подготовку к дальнейшему обучению в
нашем университете;



занятия проводят преподаватели СибГУТИ, имеющие многолетний опыт по
подготовке учащихся к сдаче ЕГЭB При разработке программ обучения авторами
курсов были тщательно проработаны материалы

ЕГЭ, а также примеры заданий
прошлых лет;



в процессе обучения, учащиеся выполняют домашние задания, контрольные
работыB Все сложные моменты подробно разбираются на занятияхB»

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

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


5


1

ПОСТ
АНОВКА ЗАДАЧИ

1.1

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

Главной задачей, стоящей перед высшими учебными заведениями, является
формирование качественного учебного процессаB

Целью данной работы является разработка приложения, которая
предназначена для автоматизации управ
ления обучения на подготовительных
курсах ВУЗаB

В период приема школьников на подготовительные курсы СибГУТИ работа у
отделения «кипит»B Ввод личных данных абитуриентов производится при
помощи электронных таблиц
MS

Ex
с
el

или на бумажных носителях, что в
с
овременном мире уже неэффективноB

Многофункциональность и удобство данной программы бесспорно, но в
нашей ситуации для проведения отчетов и анализа потребуется многочисленное
количество часовB

Имея представление о работе отделения подготовительных курсов

СибГУТИ,
было принято решение разработать информационное приложение, отвечающее
запросам ВУЗаB

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



централизова
нное хранение информации об обучаемых;



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



составление расписания занятий;



электронный журнал для учёта посещаемости и успеваемости;



электронный дневник
.


6


1B2 Требования к приложению

На этапе планирования соз
дания приложения стали понятны задачи, которые
необходимо решать и усовершенствовать:

1)

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

2)

учет договоров на обучение и проведения оплат по договорам;


3)

учет посещаемости и успеваемости слушателей, регистрация оценок;

4)

расчет и учет нагрузки преподавателей;

5)

предоставление актуальной отчетности для обобщения сведений о
количестве слушателей в определенный временно
й интервалB

Технические требования к прило
жению:



ОС
Windows
;



локальная сеть протокола
TCP
/
IP
;



система управления базами данных
MySQL
;

7


1B3 Этапы разработки

Разработка приложения для автоматизации отделения подготовительных
курсов включает следующие этапы:

1)

Анализ предметной области

Определяется необ
ходимость разработки, цели и задачи, которые будет решать
приложениеB

2)

Обзор функциональности приложений
-
аналоговB

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

3)

Формирование функциональных
требованийB

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

4)

Проектирование интерфейса

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

5)

Разработка приложения

Функциональные требования и дизайн складываются в единую
функционирующую системуB

6)

Тестирование

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


8


1B4 Обзор анал
огичных приложений

Хотелось бы упомянуть о системе программ «1С:Предприятие», которая
предназначена для решения широкого спектра задач автоматизации учета и
управления, стоящих перед динамично развивающимися современными
предприятиямиB

«1С:Предприятие» п
редставляет собой систему прикладных решений,
построенных по единым принципам и на единой технологической платформеB
Руководитель может выбрать решение, которое соответствует актуальным
потребностям предприятия и будет в дальнейшем развиваться по мере рост
а
предприятия или расширения задач автоматизацииB

На этой платформе существует конфигурация «Подготовительные курсы»,
которая предназначена для автоматизации управления обучением на
подготовительных курсахB Она, несомненно, имеет ряд преимуществ, и ее
внед
рение решает многие задачиB Но, как и у другой системы, всегда найдутся
минусы:

1.

СтоимостьB

Программа не бесплатнаяB Базовые варианты вполне доступны, но, когда
решаются более емкие и серьезные задачи, тут придется
«
раскошелиться
»
, потому
что у каждого пре
дприятия свои пожелания в работе с приложениями и
программойB Как правило, базовые варианты в чистом виде редко продаются,
только как основа к дополнительным приложениямB

2.

Постоянные обновленияB

Как в платформе, так и в любой конфигурации присутствует дос
таточно
большое количество ошибок от разработчикаB А сама система настолько сложная
и объемная, что исправить эти ошибки силами программиста 1С весьма
затруднительно, и, самое главное, невыгодно для конечного пользователяB Более
того, как платформу, так и
сами конфигурации отличает такое малоприятное
качество, как отсутствие модульностиB В результате для исправления ошибок
приходится устанавливать обновленияB При этом обновляется каждый раз
полностью платформа и/или конфигурацияB Естественно, такое решение
занимает
очень много времени, а если речь идет о конфигурации, то настройки,
дополнительные плагины и другие доработки, проведенные программистом
,

скорее всего
,

придется выполнять зановоB

3.

Громоздкость, сложность и много лишних функцийB

Как показывает практ
ика, на деле работники предприятий используют не
более 30% от всего функционала этого компонентаB


9


2 СРЕДСТВА РАЗРАБОТКИ

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

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

клиентский) доступB
Данную возможность предоставляют клиент
-
серверные системы управления
базами данныхB В связи с тем, что некоторые данные, возмож
но, будут
публиковаться на сайте СибГУТИ, то оптимальной клиент
-
серверной системой
управления базами данных в этом случае является
MySQL
.
MySQL

оптимальна
по нескольким причинам:



распространяется бесплатно;



надежна, с точки зрения безопасности, при доступе

к данным и их
использовании;



широко поддерживается языком
PHP
, что важно для организации
публикации данных на сайтах;



входит в состав распространённого набора программного обеспечения для
создания и хостинга веб сайтов
LAMP

(
Linux
,
Apache
,
MySQL
,
PHP
).

По
сле выбора клиент
-
серверной системы управления базами данных, с
помощью которой будут систематизированы данные, стало очевидно, что
необходимо разработать клиентское приложение для доступа к данным, с
табличным отображением этих данных и удобным пользовате
льским
интерфейсомB Разработать такое приложение возможно в интегрированной среде
разработки любого объектно
-
ориентированного языка программирования, так как
они обладают всеми базовыми компонентами для построения пользовательского
интерфейсаB К таким язык
ам относится множество, но мною была выбрана среда
разработки
Delphi
, так как для решения поставленной задачи не требуется
активной работы с аппаратной частью компьютераB

Преимущества
Delphi

по сравнению с аналог
ичными программными
продуктами:



быстро
та
разработки приложения (RAG);



высокая производительность разработанного приложения;



низкие требования разработанного приложения к ресурсам компьютера;



наращиваемость за счет встраивания новых компонент и инструментов в
среду
Delphi;



возможность разр
аботки новых компонентов и инструментов собственными
средствами
Delphi
(существующие компоненты и инструменты доступны в
исходных кодах);



удачная проработка иерархии объектовB


10


3 ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА

3B1 Создание структуры базы данных

Для построен
ия диаграммы базы данных был выбран
dbForge

Studio

for

MySQL
.

dbForge

Studio

for

MySQL

-

это гибкий профессиональный инструмент для
разработчиков базы данных и пользователей
MySQL
B Он автоматизирует
рутинные задачи по разработке и администрированию
СУБД
M
ySQL
, а также
открывает новые возможности для получения лучшего результатаB Можно с
легкостью разрабатывать
SQL

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


Входными данными для построения диаграммы базы данных являются:

1)

участники образовательного процесса (ученики, преподаватели);

2)

предметная область (
изучаемые дисциплины, рабочая программа);

3)

организационные вопросы (расписание занятий);

4)

учётные формы (журнал посещаемости и оценок, финансовая деятельность)B

У входных данных есть набор значений:

1)

для учеников: Фамилия, Имя, Отчество, класс, телефон обуча
емого,
телефон представителя;

2)

для преподавателей: Фамилия, Имя, Отчество, оплата, преподаваемая
дисциплина;

3)

для дисциплины: уровень погружения в предмет (класс), тема, количество
часов, отведённое на изучение темы;

4)

для расписания: дата и время, дисциплин
а, место проведения,
преподаватель;

5)

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

6)

для финансового учёта: плательщик, сумма, дата платежа, договорB

Основываясь на наборе значений входных данных, была составлен
а диаграмма
элементов, входящих в состав базы данных (рисунок
3.
1).


11



Рисунок
3.1



Диаграмма элементов базы дан
ных на этапе создания структуры

Глядя на структуру элементов базы данных, понятно, что между этим
элементами нет согласованности, в базах данных

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



12


3B2 Анализ и построение связей между элементами базы данныхB

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

1)

В действительности не всегда возможно по Фамилии, Имени и Отчеству
однозначно идентифицировать личность человека, поэтому в элементы ба
зы
данных, в которых присутствуют эти поля, необходимо ввести дополнительное
поле ‘
ID
’, индивидуальное для каждого варианта сочетаний из множества
Фамилий, Имён и ОтчествB

2)

В постановку задачи включался пункт разграничения прав пользователей
при доступе к р
есурсам, это выполнимо на уровне присвоения прав пользователю
при добавлении его в базу данных, но для связи пользователя базы данных и его
прав на уровне приложения этого недостаточно, поэтому в элементы базы данных
вводится дополнительное поле ‘
User
_
ID

которое может не иметь значения тBкB не
все участники образовательного процесса могут иметь доступ к приложениюB

3)

Исходя из первого вывода, для построения связи между элементом базы
данных, включающего в себя сведения об обучаемом и внесёнными платежами со

стороны обучаемого за предоставляемые услуги, поле с именем Плательщик
приобретает имя ‘
ID
’B

4)

На этапе заключения договора обучаемый составляет для себя
«индивидуальный учебный план», то есть выбирает дисциплины, которые считает
необходимым изучатьB Так ка
к этот выбор может быть множественным, то в
элемент базы, содержащем сведения об обучаемом, добавлять поле, содержащее
этот план, не имеет смысла, иначе дальнейшие связи могут быть затруднены
ввиду особенностей связей в базах данныхB Поэтому в базе данных
появляется
новый элемент, содержащий в себе информацию о занятости обучаемого
выбранными им дисциплинамиB Связь этого элемента, с элементом, содержащем
основные сведения об обучаемом, так же осуществляется через поле ‘
ID
’B

5)

Аналогично занятости обучаемых, п
реподаватель может обучать
нескольким дисциплинам, так же, как и в случае с обучаемыми добавляется
элемент занятости преподавателя, содержащий информацию о преподаваемых
дисциплинах и уровне преподаванияB Связь этого элемента с элементом,
включающим препод
авателей, через поле ‘
ID
’ преподавателяB Связь с
дисциплинами посредством оператора выборки, такие связи обычно называют
виртуальныеB

6)


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

7)

Так как обучаемые
сами составляют себе учебный план, то понятие
-

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

13


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

8)

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

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

9)


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

10)

Для уверенности в том, что все связи будут работат
ь корректно, поля
имеющие связи, а также элементы базы

данных, переименованы на английский
языкB



















14


После построения связей между элементами базы данных и внесения
изменений диаграмма приобрела ряд изменений (рисунок
3.
2).



Рисунок
3.2



Диаграмма базы дан
ных со связями между элементами



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

не обязательные к заполнениюB

15



3B3 Создание клиентского приложения для работы с базой данныхB

Для создания пользовательского интерфейса применены стандартные
ко
мпоненты из набора компонентов

Delphi
B В исполнительный код некоторых
из них были добавлены запросы на языке
SQL
, посредством которых
осуществляется доступ к данным, их обработка и дальнейшее отображение в
клиентском приложенииB Запросы были сформированы в

конструкторе
запросов программного продукта
dbForge

Studio

for

MySQL
.

В постановку задачи входит разграничение прав пользователей, исходя из
чего
,

получается, что функционал внутри приложения для каждого типа
пользователя
различен:

1)

д
ля пользователя с прав
ами
О
бучаемого это
:



просмотр Расписания
;




просмотр успеваемости
;

2)

для пользователя с правами
П
реподавателя это:



просмотр расписания
;



внесение данных в Журнал
;

3)

для пользователя с правами
С
отрудника это
:



составление расписания
;



внесение данн
ых по преподаваемы
м дисциплинам
;



внесение данных об

обучаемых
;



внесение д
а
нных о преподавателях
;



создание
Групп
;



внесение информации о договорах

и оплатах
;



закрепление
Групп
за обучаемы
ми
;



закрепление
за преподавателями Дисциплин
;



создание пользователей с уровнем

прав Обуча
емый и
Преподаватель
;

4)

для
пользователя с уровнем прав администратор это:



составление расписания
;



внесение данн
ых по преподаваемым дисциплинам
;



внесение данных об обуча
емых
;



внесение да
нных о преподавателях
;



создание Групп
;



внесение и
нформации о договорах и

оплатах
;



закрепление Групп за обучаемыми
;



закреплен
ие за преподавателями Дисциплин
;



создание пользователей с уровнем прав Обучаемый,
Преподаватель
, Сотрудник
;



создание структурированной базы данных на сервере
MySQL
.



16


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

называемыми контейнер
визуальных компоне
нтов
в
Delphi
.

Э
то компонент
Frame

класса
TFrame
.
Для
каждой политики доступа создан свой контейнер:



StudFrame
1

для обучаемых;



LecturerFrame
1

для преподавателей
;



AdminFrame
1

для сотрудников и администратораB


Контейнер
AdminFrame
1

одинаков для сотрудников
и администратора в связи
с небольшими отличиями в функционалеB


Для подключения к базе данных
при разработке приложения было создано
диалоговое окно, в котором пользователь вводит данные доступа к базе данных
(
рисунок 3B3
)
.




Рисунок 3B3


Диалог авториз
ации

Данное диалоговое окно до нажатия
«В
ход
»

блокирует создание главной
формы

приложенияB П
ри успешной авторизации инициализиру
ет

создание
главной формы, при неудаче

-


заканчивает выполняемый процессB

После удачной авторизации на сервере
MySQL

определя
ется
:

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

и какими
правами он наделёнB Данный алгоритм реализован
в процедуре создания главной
формы

(Листинг 3B1)
.

Листинг 3B1


Определение
политики

доступа

пользователя

procedure

TMainForm.FormCreate(Sender: TObject);

begin

SOowMessage('Соединение установлено!');


MySDS.Connection:=MyCon;


MyQuery:=TSQLQuery.Create(nil);

MyQuery.SQLConnection:=MyCon;

MyGroupsQuer
y:=TSQLQuery.Create(nil);

MyGroupsQuery.SQLConnection:=MyCon;

MyID:=TSQLQuery.Create(nil);


17


MyID.SQLConnection:=MyCon;

MyView:=TSQLQuery.Create(nil);

MyView.SQLConnection:=MyCon;

MySource:=TDataSource.Create(nil);

MySQL:='select distinct user.Reload_priv fr
om mysql.user where
user like '+

QuotedStr(MyCon.Params.Values['User_Name'])+' and Reload_priv like
''y'';';

MyQuery.SQL.Add(MySQL);

MyQuery.Open;

if not MyQuery.IsEmpty then


begin


AdminFrame1.Enabled:=true;


AdminFrame1.Visible:=true;


AdminFrame1.A
lign:=alClient;


MyGroupsQueryBSQIBAdd(‘selecP

distinct groups.Name FROM
extedu.groups where '+


'
Activity

like '+QuotedStr('
Да
')+';');


MainForm
.
Caption
:='Режим управления учебным процессом';


if MyCon.Params.Values['Database']='extedu' then


AdminFram
e1.Button2.Enabled:=true


else


AdminFrame1.Button2.Enabled:=false;


end

else


begin


MyQuery.Close;


MyQuery.SQL.Clear;


MySQL:='Select distinct students.User_ID, students.id from
extedu.students where User_ID like '+


QuotedStr(MyCon.Params.Values['User
_Name'])+';';


MyQuery.SQL.Add(MySQL);


MyQuery.Open;


if not MyQuery.IsEmpty then


begin


CurrentID
[0]
:=MyQuery.Fields[1].AsString;




MainForm.Caption:=

'
Мой

дневник
';


StudentFrame1.Enabled:=true;


StudentFrame1.Visible:=true;


end


else


begin


MyQuery.Close;


MyQuery.SQL.Clear;


MySQL:='Select distinct lecturers.User_ID from extedu.lecturers
where User_ID like '+


QuotedStr(MyCon.Params.Values
['User_Name'])+';';


MyQuery.SQL.Add(MySQL);


MyQuery.Open;


if not MyQuery.IsEmpty then


begin


18



MainForm.Caption:=

Журнал

;


CurrentID:=MyQuery.Fields[1].AsString;


LecturerFrame1.Enabled:=true;


LecturerFrame1.Visible:=true;


AddMySubjects
(LecturerFrame1.ComboBox1);


end


else


begin


ApplicaPionBMessageBox('Пользователь не соответствует политикам
приложения',


'Предупрждение');


Application
.
Terminate
;


end
;


end
;


end
;

end
;

Процедура создания формы отправляет в базу данных
за
просы,

определяя

уровень доступа пользователя
,

и делает доступным нужный визуальный
контейнерB Если же авторизованный пользователь не имеет прав
Security

Administrator

на сервере
MySQL

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

В связи с тем
,

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

не имеет каких либо
компонентовB Все компоненты в контейнере создаются динамически


истинг
3.2)
.

Листинг 3B2


Ди
намическое создание компонентов


var




PageControl1: TPageControl;


i: integer;


DG: array of TD
BGrid;




DS: array of TDataSource;

begin

PageControl1:=TPageControl.Create(nil);

PageControl1.Parent:=MainForm.StudentFrame1;

PageControl1.Align:=alClient;

MyQuery.Close;

MyQuery.SQL.Clear;

MyQuery.SQL.Add('select DISTINCT Nam
e as Группа, GaPeOfIecPure as
Дата, '+


'BeginTime as Время, Place as Аудитория, IecPurerFIO as
Преподаватель '+




19



= '+


CurrentID[0]+' W
DATE_ADD(CURDATE(), '+


'INTERVAI 14 day) order Ny Дата;');

MyQuery.Open;

i:=0;




if not MyQuery.IsEmpty the
n


begin










TaNSOeePBFapPion:='Расписание';




with DG[i] do


begin


DG[i]:=TDBGrid.Create(nil);




DG[i].align:=alClient;


with SDS[i] do


begin




sds[i].Connection:=MyCon;




Text;


sds[i].Open;


with DS[i] do


begin


DS[i]:=TDataSource.Create(nil);




DG[i].DataSource:=DS[i];


end;


end;


DG[i].Columns.Grid.Fields[3].DisplayWidth:=25;


DG[i].Columns.Grid.Fields[4].DisplayWidth:=25;


end;


inc(i);


end;

MyQuery.Close;

MyQuery.SQL.Clear;

MyQuery.SQL.Add('select DISTINCT SubjectName, K, ID from
extedu.groups join '+


'extedu.involvement where involvement.StudentID =
'+CurrentID[0]+';');

MyQuery.Open;

MyQuery.First;

if not MyQuery.IsEmp
ty then


begin


20



while not MyQuery.Eof do


begin




'+MyQuery.Fields[1].AsString;




with DG[i] do


begin


DG[i]:=TDBGrid.Crea
te(nil);




DG[i].align:=alClient;


with SDS[i] do


begin




sds[i].Connection:=MyCon;




Name as
Дисциплина, '+


'GaPeOfIecPure as Дата, visiPed as Посещаемость, '+


'resulP as Результат, POeme as Тема from exPeduBjournal wOere
GroupID like '+


MyQuery.Fields[2].AsString+' and StudentID like
'+CurrentID[0]+


' order Ny Дата;';


sds[i].Open;


with DS[i] do


begin


DS[i]:=TDataSource.Create(nil);




DG[i].DataSource:=DS[i];


end;


end;


end;


MyQuery.Next;


end;


MyQuery.First;


end;

end;


Из

данного

кода

(
Листинг

3.
2)

видно
,
что

таким

способом

динамически

создаются

компоненты

классов

TTabSheet, TDBGrid, TSimpleDataSet,
TDataSource, TPageControl
.
Компонент
TPageControl

создаётся один раз,
остальные
-

в зависимости от того
,

в скольких группах состоит ОбучаемыйB


На рис
унке 3B4 показан вид главной формы при авторизованном пользователе
с уровнем прав Обучаемый, в индивидуальный план обучения которого входит
две дисциплиныB


21



Рисунок 3B4


Главная форма с динамически созданными

компонентами

В приведённо
й процедуре (
листинг

3.2)

присутствует несколько
SQL

запросов:

1)

‘select SubjectName as Дисциплина, DateOfLecture as Дата, visited as Посещаемость, result
as Результат, theme as Тема from extedu.journal where GroupID like
'+MyQuery.Fields[2].AsString+' and StudentID like '+Curr
entID
[0]
+';’

2)

'select distinct Name as Группа, DateOfLecture as Дата, BeginTime as Время, Place as
Аудитория, LecturerFIO as Преподаватель from extedu.timetable JOIN extedu.involvement
+CurrentID
[0]
+'
WHERE DateOfLecture BETWEEN CURDATE() AND '+ 'DATE_ADD(CURDATE(), INTERVAL 14
day);'

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

допустимо изменя
ть значения заголовков полей для более удобного восприятияB

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

которы
е ссылаются друг на друга
B В данном
примере показана выборка из ‘Расписания’ для ‘Обучаемого’, о котором известно
только его ‘
ID
’B

Помимо этих двух запросов
,

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

Такой приём реализован в редакторе расписания (рисунок 3BD) доступном
пользователям с правами
«
Сотрудник
»

и
«
Администратор
»
.


22



Рисунок 3BD


Редактор расписания

На диаграмме базы данных (рисунок 3B2) элементы
employment

(Занятость
преподавателя)
,
subjects

(Дисциплины)
,
groups

(Группы)

связаны между собой
виртуальными связямиB


Пример кода с запросом
,

который
реализуе
т виртуальные связи

(листинг 3B3)
:

Листинг 3B3


О
б
работчик события
OnClick

компонента
TButton
, реализующий
запрос с виртуальными св
язями элементов базы данных
:


var i: integer;


selected: TDate;

begin

MyQuery.Close;

MyQuery.SQL.Clear;

MyQuery.SQL.Add('Select F, I, O from '+


'extedu.lecturers LEFT join extedu.employment ON lectu
rers.ID =
'+


'employment.LecturerID LEFT JOIN extedu.subjects ON
subjects.subject = '+


'employment.subject AND subjects.K = Employment.K JOIN
extedu.groups '+


'ON subjects.subject = groups.subject AND groups.Name = '+


QuotedStr(ComboBox1.Text)+';');

My
Query.Open;

if not MyQuery.IsEmpty then


Str:=MyQuery.Fields[0].AsString+'
'+Copy(MyQuery.Fields[1].AsString,1,1)+'. '+


Copy(MyQuery.Fields[2].AsString,1,1)+'.';

i:=0;


r2.Date) do


begin


DateOfLecture, '+


'BeginTime, Place, LecturerFIO, ItWas) VALUES (0,
'+QuotedStr(ComboBox1.Text)+






23



', '+QuotedStr(MaskEdit1.Text)+', '+QuotedStr(ComboBox2.Text)+',
'+


QuoPedSPr(SPr)+', ''Нет'');';


MyCon.ExecuteDirect(MySQL);


inc(i);


selected:=IncWeek(selected);


end;

end
;

В этом примере

(листинг 3B3)

осуществляется следующий алгоритм,
описанный в упрощённом виде:



осуществляется выборка Фамилии, Имени, Отчества преп
одавателя,
который преподаёт дисциплину
,

соответствующую условиям
‘Дисциплина’ и ‘Уровень изучения’ в ‘Занятости преподавателя’
,
которые
соответствуют ‘Дисциплине’ и ‘Уровню изучения’ в
определённой ‘Группе’
;



полученный результат записывается в строковую

п
еременную в виде
Фамилия ИBОB
;



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

определённая
пользователем
.

Из
-
за наличия виртуальных связей, при разработке приложения все
компоненты класса
DBGrid

были закрыты для редактирования с целью
сохранения

целостно
сти и структуры данныхB Все действия
,

которые необходимо
выполнить пользователю
,

реализованы через обработчики событий
:

OnClick
,

OnSelect
,
OnChange

и др
.

В этих обработчиках описаны алгоритмы, которые
выполняют:



проверку
,

заданных пользователем параметров
на соответствие
допустимых значений в базе данных
;



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

с зависимыми значениямиB

Пример обработчика события
,

в котором

осуществляется проверка введённых
данных

(листинг 3B4)
:

Листинг

3.4


Проверк
и

введённ
ых

значени
й

procedure TRequestForm.CUserFrame1Edit1Change(Sender: TObject);

begin

if (RequestForm.CUserFrame1.Edit1.Modified) or

(RequestForm.CUserFrame1.Edit2.Modified) then


if
(RequestForm.CUserFrame1.Edit1.Text=RequestForm.CUserFrame1.E
dit2.Te
xt) and


�(RequestForm.CUserFrame1.ComboBox1.TextNullAsStringValue) then


begin


RequestForm.CUserFrame1.CreateBtn.Enabled:=true;


RequestForm.CUserFrame1.CreateBtn.Default:=true;


24



RequestForm.CUserFrame1.CancelBtn.Default:=false;


RequestForm
.CUserFrame1.Label3.Font.Color:=clBlack;


end


else


begin


RequestForm.CUserFrame1.Label3.Font.Color:=clRed;


RequestForm.CUserFrame1.CreateBtn.Enabled:=false;


RequestForm.CUserFrame1.CreateBtn.Default:=false;


RequestForm.CUserFrame1.CancelBtn.Def
ault:=true;


end
;

end
;

Данный пример выявляет сопоставление введённых данных в компоненты
класс
ов

TEdit

и
TComboBox
B Е
сли введённые значения
допустимы
,

обработчик
события позволяет пользователю выполнить дальнейшее действие

с компонентом
класса
TButton
, у
станавливая его свойство доступности
Enabled

в
true
(доступен),
в противном случае блокирует егоB

Листинг 3BD
-

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


procedure TRequestFo
rm.CUserFrame1CreateBtnClick(Sender: TObject);

begin

if not MyQuery.IsEmpty then


begin


MyQuery.First;


while not MyQuery.Eof do


if
�MyQuery.Fields[0].AsStringRequestForm.CUserFrame1.ComboBox1.Text
then


MyQuery.Next


else


begin


MessageGlg('Не
возможно создать пользователя '+


RequestForm.CUserFrame1.ComboBox1.Text+#13+#10+


'Пользователь существуетB', mPError, LmNOk],0);


Exit;


end;


end;

MySQL:='CREATE USER
'+QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+


'@'+QuotedStr('%')+';';

MyCon.ExecuteDirect(
MySQL);

if RequestForm.CUserFrame1.ComboBox2.Text='
Сотрудник
' then


begin


MySQL:='GRANT CREATE USER, RELOAD, SHOW DATABASES ON *.* TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect
(MySQL);


mysql.user TO '+


25



QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+' WITH GRANT OPTION;';


MyCon.ExecuteDirect(MySQL);




QuotedStr(R
equestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+' = PASSWORD
('+QuotedStr(RequestForm.CUserFrame1.Edit1.Text)+


');';


MyCon.ExecuteDirect(MySQL);


ROUTINE, CREATE, '+


'CREATE ROUTI
NE, CREATE TEMPORARY TABLES, CREATE VIEW, DROP,
EVENT, '+


'EXECUTE, GRANT OPTION, INDEX, LOCK TABLES, REFERENCES, SHOW
VIEW, '+


'TRIGGER ON mysql.* TO
'+QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+


'@'+QuotedStr('%')+';';


MyCon.
ExecuteDirect(M
ySQL);


ROUTINE, CREATE, '+


'CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DROP,
EVENT, '+


'EXECUTE, GRANT OPTION, INDEX, LOCK TABLES, REFERENCES, SHOW
VIEW, '+


'TRIGGER ON extedu.* T
O
'+QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+


'@'+QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


end

else


begin




QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+' = PASSWORD
('+QuotedStr(
RequestForm.CUserFrame1.Edit1.Text)+


');'


MyCon.ExecuteDirect(MySQL);


if RequestForm.CUserFrame1.Combobox2.Text='
Студент
' then


begin


MySQL:='GRANT SELECT ON TABLE mysql.user TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedS
tr('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.groups TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.involvement

TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


26



MySQL:='GRANT SELECT ON TABLE extedu.journal TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


My
Con.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.lecturers TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.pay TO '+


QuotedStr(R
equestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.students TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(My
SQL);


MySQL:='GRANT SELECT ON TABLE extedu.subjects TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);




QuotedStr(RequestForm.CUser
Frame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


end


else


begin


MySQL:='GRANT SELECT ON TABLE mysql.user TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MyS
QL);


MySQL:='GRANT SELECT ON TABLE extedu.groups TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.involvement TO '+


QuotedStr(RequestForm.CUserF
rame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


extedu.journal TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDir
ect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.students TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


extedu.subjects TO '+



QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


27



MyCon.ExecuteDirect(MySQL);




QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


Quoted
Str('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.employment TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


MySQL:='GRANT SELECT ON TABLE extedu.lectur
ers TO '+


QuotedStr(RequestForm.CUserFrame1.ComboBox1.Text)+'@'+


QuotedStr('%')+';';


MyCon.ExecuteDirect(MySQL);


end;


end;

MyCon.ExecuteDirect('FLUSH PRIVILEGES;');

MessageDlg('
Создан

пользователь

'+RequestForm.CUserFrame1.ComboBox1.Text+


#13+#
10+'
Уровень

прав

'+


RequestForm.CUserFrame1.ComboBox2.Text, mtInformation, [mbOk],0);

RequestForm.CUserFrame1.Enabled:=false;

RequestForm.CUserFrame1.Visible:=false;

if not RequestForm.CUserFrame1.CheckBox1.Checked then


ParamFrame1CancelBtnClick(Self)

el
se if (RequestForm.CUserFrame1.ComboBox2.Text='
Студент
') then


ParamFrame1Button5Click(Self)

else if (RequestForm.CUserFrame1.ComboBox2.Text='
Преподаватель
')
then


ParamFrame
1
Button
6
Click
(
Self
);

end;

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

следующий визуальный контейнер

методом
эмуляции нажатия кнопки
ParamFrame
1
Button
5
Click
(
S
elf
)
,

в котором будет
выполнен алгоритм
,

зависимый от алгоритма приведённого вышеB


28


4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

1.1

Первичная

настройка приложения

Для работы приложения необходимо выполнить следующие условия:

1)

сервер баз данных с установленной на него
СУБД MySQI
;

2)

открытый порт 3306 для протокола
TCP

на сервере и на клиентском
оборудовании;

3)

первый запуск приложения в системе выпол
нен под учётными данными
администратора
СУБД MySQI

(логин rooP) и
выполнена

п
роцедура создания
базы данныхB Д
ля этого: запустить приложение, выполнить авторизацию

в
диалоге
«
Вход
» (рисунок 4B1), далее нажать кнопку «Создать» (рисунок 4B2),
единственная фун
кциональная кнопка при первом запуске приложения
, далее
нажать кнопку «Создать базу данных» (рисунок 4B3B) в появившемся окне запроса
,
получить подт
верждение (рисунок 4B4)
;


Рисунок 4B1


Вход


Рисунок 4B2


Главная форма приложения при первом запуске


29



Рисунок 4B3


Окно запроса «Создать»


Рисунок 4B4


П
о
дтверждение создания БД для работы приложения

4)

из приложения выполнена процедура создания пользо
вателя с уровнем прав
«
сотрудник
»B Д
ля этого:

из окна запроса «
Создать
» нажать кнопку «Создать

пользоват
еля
», в диалоге «Создать пользователя» в
вести пару логин
-
пароль для
пользователя
, в
ыбрать уровень прав «Сотрудник»
, далее нажать кнопку
«
Создать
» (рисунок 4BD),
сигналом правильного выполнения этого пункта служит
сообщение: «Создан пользователь Имя_пользов
ателяB Уровень прав «Сотрудник»
;


30



Рисунок 4BD


Диалог создания нового пользователя

5)

установленное клиентское приложение;

6)

наличие пары логин
-
пароль для авторизации в приложении;

7)

при первом запуске приложения на клиентском компьютере введён
корректный IP
-
ад
рес

или имя
сервера базы д
анных
, в дальнейшем это действие
не требуется
.


31


1.2

Работа в «Режиме управление
учебным

процессом»

Для
работы всех участников процесса необходимо выполнить наполнение
приложения информациейB В главной форме приложения (рисунок 4B2) в
ызвать
диалог «Создать» (рисунок 4B3)B На начальном этапе работы доступна одна
функция «Добавить рабочую программу», при нажатии на которую появляется
диалог

(рисунок 4B6)
, в котором необходимо ввести данные рабочей программы
по дисциплинеB К этим данным о
тносится информация: наименование
преподаваемой дисциплины, на каком уровне преподаётся предмет, тематический
план по дисциплине, продолжительность
изучения темыB

Важно
!

Несмотря на то, что
СУБД
MySQL

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

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


Рисунок 4B6


Диалог добавления рабочей программы

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



диалог
«Создать пользователя» (рисунок 4B
7
)
,

в котором пользователь с
уровнем прав
«С
отрудник
»

может создать пользователей с правами
«Преподаватель» и «Студент»
;



диало
г «Создать Группу» (рисунок 4B
8
), в котором вводится название
группы
,

и закрепляется за этой группой дисциплина, которая преподаётся
для этой группы;


32




диалог «Добавить преподавателя» (рисунок 4B
9
), в котором вводится
Фамилия, Имя, Отчество преподавателя и з
начение оплаты за услуги
,
оказываемые преподавателем

для дальнейших расчётов;



диалог «Добавить студента» (рисунок 4B
10
), в котором вводится Фамилия,
Имя, Отчество, телефон студента и телефон его представителяB


Рисунок 4B7


Диалог «Создать пользователя»
с развёрнутым списком
«Привилегий»


Рисунок 4B8


Диалог «Создать группу»


Рисунок 4B9


Диалог «Добавить преподавателя»


33



Рисунок 4B10


Диалог «Добавить студента»


Показанные на рисунках 4B7, 4B9, 4B10 диалоги в своём составе имеют
дополнительные функц
ииB Дл
я диалога создания пользователя
-

это функц
ия
«Ассоциировать пользователя»B

О
на позволяет (при выборе) сразу после создания
пользователя перейти в диалог «Добавить преподавателя» или «Добавить
студента» в зависимости от выбранной привилегииB В диалог
е добавления
преподавателя после нажатия кнопки «С
оздать» открывается доступ к кнопке
дисциплина, нажав которую можно указать
:

какой или каких дисциплин является
преподавательB
В диалоге добавления студента после нажатия кнопки «Создать»
открывается досту
п к кнопкам «Группа» и «Оплата»B Э
ти функции позволяют
создать записи о группах
,

в которых добавляемый будет обучаться
,

и оплатах за
образовательные услугиB

В связи с тем, что данные в
базе данных

зависимы, то в дополнительных
функциях диалогов «Добавить

B» в

наборе значений будут только те
,

что
«существуют» в информационной среде приложенияB Другим словами: нельзя
закрепить за преподавателем дисциплину, если она не добавлена ранее
,

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

и ей
не назначена изучаемая, в составе этой группы, дисциплинаB

В ос
новном окне приложения доступны: п
омимо кнопки «Создать
» есть ещё
два элемента
-


это ниспадающий список

просмотра элементов информационной
среды и редактор расписанияB

Редактор расписания (рисунок 4B11) позволяет
просматривать расписание и
редактировать его
.

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

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

эквивалентное
количеству недель между указанными датами, то есть создаётся расписание для

определённой группы с периодичность
ю

в одну неделюB Если занятие для группы
проводится несколько раз в неделю, например
,

в понедельник и в четверг,
то
необходимо добавить 2 записи:
для понедельника

-


с периодичностью неделя
,
для четверга
-

с той же пери
одичностьюB


34



Рисунок 4B11


Р
едактор расписания

Создание и редактирование расписания не влияет на журнал учёта
посещаемости и успеваемости обучаемых, так как информации о проведённых
занятиях там нет
,

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


необходимо:


в главном окне приложения из ниспадающего списка
«Просмотреть» выбрать «Расписание»
B И
з доступных записей выбрать нужное
занятие и нажать на кнопку «Сос
тоялось» на

панели инструментовB П
осле
нажатия на эту кнопку в журнале появится возможность редактировать данные на
дату этого занятия

(рисунок 4B12)B


Рисунок 4B12


О
сновное окно приложения

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

соответс
твующая выбранному элементу
,

и

появляется п
а
нель инструментов с
набором функций
,

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

(для ст
удентов) или дисциплин

(для
преподавателей)B



35


4B3 Описание режимов работы «Журнал» и «
Электронный

дневник»

Режим «Журнал» (рисунок 4B13) доступен для пользователей с привилегиями
«Преподаватель»
B Этот режим мало чем отличается от ведения обычного журналаB


Рисунок 4B13


Журнал

Чтобы просмотреть журнал
,

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

на

те даты, которые одобрены сотрудником, управляющим
образовательным п
роцессомB

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

ак это сделать
, описано выше);

далее выбрать дату

из доступного списка
значений;

далее нажать кнопку
«З
аполнить
»
.

После внесения информации нажать кнопку «Сохранить»B

Преподав
ателю недоступны к просмотру данные об обучаемых
,

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

зависит от закреплённых значений за
каждым преподавателемB

Режим «Электронный дневник» (рис
унок 4B14) доступен пользователям с
привилегией «Студент» и позволяет просматривать информацию, связанную с
этим пользователемB


Рисунок 4B14
-

Электронный дневник


36


ЗАКЛЮЧЕНИЕ

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

клиентское приложение для автоматизации
деятельности подготовительного отделения СибГУТИB По окончанию данного
проекта поставленная цель была достигнута, задачи выполн
еныB

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

п
одготовительного отделения школьников данного ВУЗа
использовал
ись следующие программные продукты:



dbForge

Studio

for

MySQL



для создания диаграммы базы данных,
кон
струирования
SQL

запросов;



Embarcadero

RAD

Studio

2010
, в состав которой входит среда
Delphi


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

Использование этих программных продуктов
позволило быстро и эффективно
выполнить все поставленные задачиB

Сам
ым

трудоемк
им

этапом

в
разработк
е

был
этап ра
зработки клиентского
приложения
,

в

состав программного кода

которого входят запросы на языке
SQL
B Правильность этих запросов напрямую влияет на корректность
работы
приложения и
информац
ии
,

предоставляемой пользователю
.

В п
роцессе разработки были выявлены следующие проблемы
:



при наличии записей в базе данных с одинаковыми значениями
,

оператор
UPDATE

языка
SQL

обновляет
все записи
,

соответствующие условиям
обновления,

описанным в этом оператореB

Д
анная особенность языка
SQL

с
пособствовала

введению идентификаторов в структуру базы данных и
увеличению параметров оператора, по которым происходит обновление;



различие формата даты и времени в
Delphi

потребовало скрупулезности в
составлении запросов, в которых использовались данные
форматыB

Выпускная
работа по автоматизации рабочего процесса подгот
овительных
курсов СибГУТИ способствует улучшению

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



улучшение качества труда
;



повышение эффективности работы п
редприятия
;



возможность справляться с большим объемом работ
;



управление рабочим расписанием
;



контроль оплат обучающихся
.

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

безусловно
,

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


37



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

1.

http://hr
-
portal.ru

2.

https://www.sibsutis.ru

3.

https://www.mysql
.
com

4.

http://www.mysql.ru/docs/

5.

Delphi

6
: для профессионалов, Марко Кэнту, Питер, 200
4


38



ПРИЛОЖЕНИЕ

А


Приложенные файлы

  • pdf 7775582
    Размер файла: 928 kB Загрузок: 0

Добавить комментарий