Фрагмент для ознакомления
2
ВВЕДЕНИЕ
Целью данного проекта является выработка умений и навыков проектирования структуры базы данных, предназначенной для функционирования автоматизированной информационной системы. Для достижения этой цели в данном проекте выполняется разработка структуры реляционной базы данных для гипотетической информационной системы «музыкальная школа».
Информационная система «музыкальная школа» предназначена для сбора, хранения, поиска, обработки и выдачи необходимой информации о данной предметной области.
Разрабатываемая база данных предназначена для повышения эффективности управления и контроля над учебным процессом в музыкальной школе.
1 Выбор автоматизируемых функций и информационного
обеспечения
1.1. Краткое описание предметной области
В этом разделе представлен краткий обзор предметной области, в которой будет работать информационная система музыкальной школы. В нем описывается операционная среда, объекты и субъекты управления, а также цели и задачи процесса управления.1.1.1 Операционная среда
Рабочая среда системы "Город" включает в себя музыкальную школу, которая необходима для развития музыкальных способностей учащихся.
1.1.2 Объекты управления
Объектами управления являются учебный процесс, учащиеся и сотрудники.
1.1.3 Субъект управления
Субъектом управления является администрация музыкальной школы.
1.1.4 Цели и задачи
Целью управления является повышение эффективности управления образовательным процессом. Для достижения этого выполняется несколько задач:
- Повышение эффективности хранения и извлечения информации о сотрудниках
- Повышение эффективности сбора и хранения данных об учащихся
- Оптимизация процессов проведения экзаменов
- Оптимизация планирования и выполнения образовательной программы В этом разделе мы обсудим пять важных функций системы управления, которые выбираются для автоматизации с использованием разрабатываемой информационной системы. Будет представлено краткое описание каждой функции, а также краткое описание соответствующих объектов в предметной области, которые будут задействованы в реализации этих автоматизированных функций.
1.2.1 Автоматизированные функции
В рамках этого проекта мы определили следующие пять ключевых функций для автоматизации в системе музыкальных школ:
1) Учет персонала
2) Прием студентов
3) Проведение экзаменов
4) Планирование обучения
5) Составление расписания занятий
1.2.2 Функция учета персонала
Функция учета персонала отвечает за хранение и управление информацией обо всех сотрудниках музыкальной школы. Она собирает и систематизирует данные о каждом отдельном сотруднике, обеспечивая точность и актуальность записей. Основным объектом этой функции является персонал организации.Автоматизация этой функции повысит эффективность использования данных сотрудников и ускорит процесс получения необходимой информации за счет интеграции данных. В результате все данные представляются пользователям и их прикладным программам в виде единого источника информации.
1.2.3 Функция 2: Прием учащихся
Эта функция предназначена для сбора и хранения информации обо всех учениках музыкальной школы. Эта цель достигается за счет использования всей возможной информации о каждом ученике для реализации функции.
Особенности этой реализации заключаются в том, что, в отличие от обычной государственной школы, учащиеся музыкальной школы выбирают музыкальный инструмент, который они хотят изучать, и, помимо обязательных предметов (музыкальной грамоты и сольфеджио), они также могут посещать факультативные занятия.
Одним из ключевых компонентов, задействованных в этой функции, являются сами учащиеся
.Автоматизация этой функции позволит вам эффективно хранить, изменять и оперативно получать доступ к информации о студентах, поскольку все данные представляются пользователю и его прикладным программам в виде единого информационного массива.
1.2.4 Функция 3 «сдача экзаменов»
Эта функция предназначена для хранения и получения информации об экзаменах с целью эффективного мониторинга процесса обучения. Для этого используется вся необходимая информация, объективно необходимая для проведения экзамена.
Специфика этой функции заключается в том, что она реализована в музыкальной школе, где экзамены сдаются одновременно нескольким учащимся. В реализации этой функции задействованы следующие объекты предметной области: учащиеся, сотрудники и сам образовательный процесс.
Автоматизация этой функции позволяет эффективно хранить, извлекать и изменять информацию о процессе экзамена благодаря возможности интеграции данных.
Функция 4: Планирование образовательного процесса
Эта функция предназначена для обеспечения плавного и эффективного управления процессом планирования образования. Это достигается за счет сбора всей необходимой информации об образовательном процессе.Специфика реализации этой функции заключается в том, что музыкальная школа в первую очередь предлагает индивидуальные занятия.
В реализации этой функции участвуют следующие субъекты предметной области: учащиеся, сотрудники и учебный процесс.
Автоматизация этой функции позволила бы эффективно использовать и извлекать информацию об учебной программе, поскольку все данные представляются пользователям и их приложениям в едином информационном формате.
1.2.6 Функция 5: Проведение занятий
Эта функция предназначена для эффективного и удобного мониторинга хода занятий. Эта цель достигается за счет адекватного использования всей необходимой информации, относящейся к учебному процессу. Конкретная реализация этой функции основана на принципе предоставления индивидуальных занятий в музыкальной школе.В реализации этой функции участвуют следующие объекты из предметной области: учащиеся, сотрудники и образовательный процесс. Автоматизация этой функции позволит эффективно использовать и извлекать информацию об образовательном процессе за счет возможности интеграции данных.
2. Алгоритмы поиска
В этом разделе будут описаны три алгоритма поиска, используемые в курсовом проекте, - прямой, бинарный и интерполяционный.
2.1 Прямой поиск
Этот метод поиска является базовым и основан на прямом поиске в массиве путем проверки равенства между элементами массива и требуемым значением, отсюда и его название - прямой поиск. Его реализация может выглядеть примерно так:
long DirectFind(длинный массив[], длинный размер, длинный что) {
давно я, нашел;
найдено = -1;
для (i = 0; i < размер; i++) {
если (массив[i] == что) {
найдено = i;
перерыв;
} }
возвращает найденное;}
2.2 Двоичный поиск
Для работы этого метода необходим предварительно отсортированный массив. Этот метод особенно полезен, если исходный массив уже был отсортирован во время работы программы и вам нужно быстро найти в нем конкретное значение, так как его работа более эффективна, чем метод прямой итерации, особенно для больших массивов.
Основная идея метода заключается в том, чтобы разделить (предварительно отсортированный) массив на две половины и сравнить желаемое значение со средним элементом между этими половинами. В зависимости от того, соответствует ли желаемое значение среднему элементу, дальнейший поиск будет выполняться только в одной половине, повторяя аналогичные шаги. В результате каждый раз, когда мы выполняем проверку, область поиска уменьшается вдвое.
Вот реализация функции BinaryFind:
long BinaryFind(длинный массив[], длинный размер, длинный что)
{
длинный i;
long M; // Вспомогательная переменная для определения принадлежности значения к определенному диапазону поиска
long found = -1; // Найденная позиция
// Цикл до тех пор, пока мы не найдем нужное значение или не дойдем до конца массива
, пока (i < размер) {
M = (i + размер) / 2;
// Проверьте, совпадает ли желаемое значение со средним элементом
если (массив[M] == что) {
найдено = M;
перерыв;
} else if (array[M] > what) _BOS_ // Если средний элемент больше желаемого значения, выполните поиск в правой половине
i = M + 1;
} else { // Если средний элемент меньше требуемого значения, выполните поиск в левой половине
размер = M - 1;
} }
возвращает найденное;
}Short Lb = 0; // Нижняя граница диапазона поиска
Short Ub = размер - 1; // Верхняя граница поиска
// Цикл двоичного поиска
Выполняем {
M = (Lb + Ub) / 2; // Находим середину диапазона поиска
// Искомое число находится в первой половине
диапазона поиска //?
If (What < массив[M])
Ub = M - 1; // Если да, то назначьте новую верхнюю границу для нового диапазона поиска
Else { // Если нет,
то // Это число во второй половине?
Если (Что > массив[M]
Lb = M + 1 // Если да, назначьте новую нижнюю границу для следующего поиска
Еще {
Найдено = M + 1