Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2020-04-01 | 161 |
5.00
из
|
Заказать работу |
Таким образом, второй лист книги представляет собой совокупность исходных данных для работы программы составления расписания и должен заполняться в первую очередь. Все рассматриваемые далее процедуры используют эту начальную информацию.
Традиционно в наших разработках на первом листе рабочей книги располагаются элементы управления, связанные с основными действиями пользователя, и здесь также не будет исключения.
Основное содержание первого листа — регистрация заявок на проведение учебных занятий и аудиторий, которые для этих занятий выделяются. В верхней части листа располагаются элементы управления (эта область выделена чёрной заливкой). Об этих элементах мы поговорим позднее, но уже из названий, видимых на рис. 6.2, понятны их функции.
Посмотрим теперь на информацию, расположенную, начиная с четвертой строки листа (третья строка отводится для заголовков столбцов). Здесь каждая строка содержит заявку на проведение определенного занятия — новая заявка вводится в очередную свободную строку на этом листе.
При этом информацию по заявке условно можно разделить на две категории:
1)начальная информация о занятиях (номер, заявитель, преподаватель, день, время, группа, количество студентов в группе, название дисциплины и номера учебных недель, когда занятия должны проводиться);
2)информация об обслуживании данной заявки (обслужена ли она и номер аудитории, выбранной для проведения занятий по заявке).
Алгоритм подбора аудитории составляет важную содержательную часть в полненной разработки. Здесь учитывается много факторов — наличие групповых (для нескольких групп или потоков) лекций, наличие последовательных i времени занятий в группе (в этом случае подбирается одна аудитория — исключения переходов из одной комнаты в другую) и ряд других факторов.
Так, в каждой строке столбцы G и Н отводятся для записи информации обслуживании заявки (подобранной для неё аудитории). И если аудитор подобрана, то в столбец G программно записывается слово "да", а в следующий столбец вписывается номер аудитории.
Фактически, информация на первом листе представляет собой некоторую базу данных. Столбец Номер позволяет ввести для каждой заявки поясняют числовой или текстовый номер. При этом для определенного блока заявок если потребуется, можно указать один и тот же номер. Номер заявки определяет ее уникальность, а принадлежность заявки к определенной группе или блоку. Уникальность записи о заявке — это фактически уникальность каждой строки Microsoft Excel.
Следующие столбцы содержат информацию о заявителе, преподавателе, дне и времени проведения занятий. Эта информация не требует ручного заполнения, а извлекается из предварительно заполненного второго листа, как описано ранее. Непосредственно ввод данных будет выполняться с помощью специально разработанной формы ввода. Например, при вводе фамилии преподавателя мы будем выбирать ее из списка, предварительно заполненного на втором листе.
В столбце F для каждой заявки указывается количество студентов, которые учатся в данной группе. Эта информация вносится автоматически после выбора названия группы (вы уже видели, что на втором листе присутствуют два связанных столбца — название группы и число студентов в ней). В столбцах, начиная с К, отмечаются недели, когда должны проводиться занятия по данной заявке. Звездочка в соответствующем столбце говорит о том, что на этой неделе занятие проводится (на рис. 6.2 для всех заявок звездочками отмечены занятия на первой и второй неделе).
Нумерация учебных недель является типичной для учебных заведений. Это связано с тем, что количество аудиторных часов для разных дисциплин по учебному плану неодинаково. В связи с этим какие-то дисциплины в семестре ограничены семью занятиями, а какие-то продолжаются в течение семнадцати недель. Что касается нулевой недели, то ее введение относится к ситуации, когда день начала семестра расположен в середине недели (подобную неделю иногда называют нулевой).
Рассмотрим элементы управления на рис. 6.2. Это три кнопки, которые на листе расположены в области первых двух строк. В табл. 6.1 приведены значения их свойств Name и Caption.
Понятно, что заполнение информации о заявке и тем более подбор для нее подходящей аудитории требуют некоторой интеллектуальности алгоритма.
Так, программа должна обнаруживать возможный ввод некорректных заявок. Например, при вводе очередной заявки преподаватель может быть в указанное время уже занят. Другая возможная ситуация — для указанной в заявке группы уже зафиксировано другое занятие в это время. Все эти и другие подобные ситуации создаваемая разработка должна отслеживать. При этом автоматическая блокировка подобных накладок не требуется, т.к. возможно, они закладываются в расписание не случайно.
Для исключения ручного изменения информации на первом листе в книге предусматривается установка защиты этого листа от изменений. А такие технические действия, как формирование новых заявок и подбор аудитории для них, выполняются с помощью экранных форм. При этом программные процедуры этих форм самостоятельно снимают защиту с листа. В следующем разделе мы рассмотрим одну из экранных форм.
2.1.2 Выходные данные
Сводный отчет по загрузке. Фактически мы попробуем построить информационную систему для эффективного управления ресурсами. При этом основным ресурсом будет фонд аудиторий, где мы должны организовать учебный процесс, а в понятие управления вкладывается создание разнообразных сервисных функций для пользователя, необходимых ему при составлении расписания учебных занятий, например: создание интеллектуальных форм для ввода данных, представление имеющейся информации в виде разнообразных отчетов, удобные возможности корректирования уже имеющейся информации.
2.1.3 Схема и описание схемы алгоритма решения задачи
Перейдем к рассмотрению первого листа
Традиционно в наших разработках на первом листе рабочей книги располагаются элементы управления, связанные с основными действиями пользователя, и здесь также не будет исключения.
Основное содержание первого листа — регистрация заявок на проведение учебных занятий и аудиторий, которые для этих занятий выделяются. В верхней части листа располагаются элементы управления (эта область выделена серой заливкой).
Посмотрим теперь на информацию, расположенную, начиная с четвертой строки листа (третья строка отводится для заголовков столбцов). Здесь каждая строка содержит заявку на проведение определенного занятия — новая заявка вводится в очередную свободную строку на этом листе.
При этоминформацию по заявке условно можно разделить на две категории:
□ начальная информация о занятиях (номер, заявитель, преподаватель, день, время, группа, количество студентов в группе, название дисциплины и номера учебных недель, когда занятия должны проводиться);
□ информация об обслуживании данной заявки (обслужена ли она и номер аудитории, выбранной для проведения занятий по заявке).
Алгоритм подбора аудитории составляет важную содержательную часть выполненной разработки. Здесь учитывается много факторов - наличие групповых (для нескольких групп или потоков) лекций, наличие последовательных во времени занятий в группе (в этом случае подбирается одна аудитория - для исключения переходов из одной комнаты в другую) и ряд других факторов. Так, в каждой строке столбцы G и Н отводятся для записи информации об обслуживании заявки (подобранной для нее аудитории). И если аудитория подобрана, то в столбец G программно записывается слово "да", а в следующий столбец вписывается номер аудитории.
Фактически, информация на первом листе представляет собой некоторую базу данных. Столбец Номер позволяет ввести для каждой заявки поясняющий числовой или текстовый номер. При этом для определенного блока заявок, если потребуется, можно указать один и тот же номер. Номер заявки определяет не ее уникальность, а принадлежность заявки к определенной группе или блоку. Уникальность записи о заявке — это фактически уникальность каждой строки Microsoft Excel.
Следующие столбцы содержат информацию о заявителе, преподавателе, дне и времени проведения занятий. Эта информация не требует ручного заполнения, а извлекается из предварительно заполненного второго листа, как описано ранее. Непосредственно ввод данных будет выполняться с помощью специально разработанной формы ввода. Например, при вводе фамилии преподавателя мы будем выбирать ее из списка, предварительно заполненного на втором листе.
В столбце F для каждой заявки указывается количество студентов, которые учатся в данной группе. Эта информация вносится автоматически после выбора названия группы (вы уже видели, что на втором листе присутствуют два связанных столбца — название группы и число студентов в ней). В столбцах, начиная с К, отмечаются недели, когда должны проводиться занятия по данной заявке. Звездочка в соответствующем столбце говорит о том, что на этой неделе занятие.
Нумерация учебных недель является типичной для учебных заведений. Это связано с тем, что количество аудиторных часов для разных дисциплин по учебному плану неодинаково. В связи с этим какие-то дисциплины в семестре ограничены семью занятиями, а какие-то продолжаются в течение семнадцати недель. Что касается нулевой недели, то ее введение относится к ситуации, когда день начала семестра расположен в середине недели (подобную неделю иногда называют нулевой).
Рассмотрим элементы управления. Это три кнопки, которые на листе расположены в области первых двух строк. В табл. 7 приведены значения их свойств Name и Caption.
Таблица 7. Значения свойств кнопок
Name | Caption |
Input_New | Ввод новой заявки |
Input_auditoria | Подбор аудитории |
De_lete | Снятие с обслуживания |
Принято, что заполнение информации о заявке и тем более подбор для нее подходящей аудитории требуют некоторой интеллектуальности алгоритма.
Так, программа должна обнаруживать возможный ввод некорректных заявок. Например, при вводе очередной заявки преподаватель может быть в указанное время уже занят. Другая возможная ситуация — для указанной в заявке группы уже зафиксировано другое занятие в это время. Все эти и другие подобные ситуации создаваемая разработка должна отслеживать. При этом автоматическая блокировка подобных накладок не требуется, т. к. возможно они закладываются в расписание не случайно.
Для исключения ручного изменения информации на первом листе в книге предусматривается установка защиты этого листа от изменений. А такие технические действия, как формирование новых заявок и подбор аудитории дляних, выполняются с помощью экранных форм. При этом программные процедуры этих форм самостоятельно снимают защиту с листа. В следующем разделе мы рассмотрим одну из экранных форм.
Сводный отчет по загрузке
В этом разделе мы рассмотрим еще одну возможность работы с расписанием. Рассмотрим лист с названием Отчет 2. Фактически это отчет, который позволяет показать загруженность фонда аудиторий по заявителям (кто использует фонд аудиторий больше, а кто меньше).
Если фонд аудиторий ограничен и между разными факультетами возникают противоречия по поводу его загрузки, представляет интерес такой сводный отчет, в котором наглядно отражены занятия по различным факультетам. Эта ситуация вполне типична для сегодняшнего дня, когда в вузах, наряду с бюджетным обучением, есть и коммерческое. Многие возникающие вопросы по фонду аудиторий могут быть успешно решены с помощью предлагаемого в этом разделе отчета.
На листе по горизонтали в пятой и шестой строках выводятся дни и время начала занятий (фактически в этих строках перечислены все занятия в течение недели). В первом столбце указаны все аудитории, которыми располагает учебное заведение. И если в определенный день и конкретное время в аудитории по расписанию поставлено занятие, то в соответствующей ячейке это отмечается определенной заливкой (для каждого факультета свой цвет заливки) и отображается количество студентов..
Рассмотрим программный код, реализующий построение данного отчета, и в качестве первого шага прокомментируем элементы управления.
В левом верхнем углу находится поле со списком (Name = L1). Этот элемент при открытии книги автоматически заполняется информацией об учебных неделях (процедура workBook_open). Справа от поля со списком располагается кнопка Заполнить (Name = coml), позволяющая заполнить лист информацией. В результате щелчка по этой кнопке ячейки листа заполняются информацией (количество занимающихся студентов и заявитель).
На этом листе мы легко можем посмотреть информацию о вместимости конкретной аудитории. Для этого нужно лишь щелкнуть по ячейке, содержащей номер аудитории.
Теперь прокомментируем некоторые программные конструкции, выполняемые по щелчку на кнопке Заполнить. Полный текст процедуры обработки щелчка по этой кнопке приведен в приложении 1. В начале процедуры в массиве colors устанавливаются цвета для заливки ячеек с заявками различных факультетов, что обеспечивает наглядность представления информации.
После установки заливки ячеек (определенный цвет связан с конкретным заявителем) сначала выполняется очистка области для вывода:
Range("a5:ZZ200").Select Selection.ClearContents
Также устанавливается белый цвет заливки для области, где будет присутствовать информация о занятиях:
Range("b7:ZZ200").Select
With Selection.Interior
.ColorIndex = 0
.Pattern = xlSolid
End With
После этого подсчитывается количество заявителей на втором листе:
N_Boss = О
While Worksheets(2).Cells(N_Boss + 2, 6).Value <> ""
N_Boss = N_Boss + 1
Wend
В качестве следующего действия на лист выводятся названия заявителей и соответствующие им цвета. Для вывода этой информации используются первая и вторая строки листа:
For i = 1 То N_Boss
Cells(2, 2 + i * 2).Select With Selection.Interior
.ColorIndex = colors (i)
.Pattern = xlSolid
End With
Cells (1, 2 + i * 2).Value = Worksheets(2).Cells(i + 1, 6).Value
Next
Следующий фрагмент позволяет установить в пятой и шестой строках подписи время начала занятий:
St = 1
For I = 1 To N_Day
For j = 1 To N_Times
St = St + 1
Cells (5, st).Value = Worksheets (2).Cells (i = 1, 4).Value
Cells (6, st).Value = Worksheets (2).Cells (i = 1, 5).Value
Next
Next
На этом подготовительная часть для формирования отчета завершена, и далее заполнения отчета в цикле просматриваются все заявки. Если заявка обслужена (для нее подобрана аудитория) и на указанной неделе занятие по заявке проводится, то далее она анализируется. В противном случае иного отчета она не рассматривается.
В следующем фрагменте производится вычисление номера строки, где она а быть отражена:
Stroke = 0
For I = 1 To nom
If N_Ayd = CStr(Cells(i + 6, 1).Value) Then
Stroke = i + 6
Exit For
End if
Next
Аналогично вычисляется значение столбца на листе АФ, где необходимо отобразить отданную заявку:
For m = 1 To DaysTimes
If CStr (Workssheets(1).Cells(i, 4).Value)_
= CStr (Cells(5, 1 + m). Value) Then
If CStr (Workssheets(1).Cells(i, 5).Value)_
= CStr (Cells(6, 1 + m). Value) Then
Stolbec = 1 + m
Exit For
End If
End If
Next
Таким образом, мы определили ячейку на листе, где следует отразить информацию по данной заявке.
Следующее действие — закраска ячейки цветом того факультета, к которому данная заявка относится:
Name_Boss = CStr(Worksheets(1).Cells(i, 2).Value)
For nomer = 1 To N_Boss
If Name_Boss = CStr(Worksheets(2).Cells(nomer + 1, 6).Value) Then
Exit For
End If
Next
Cells(stroka, stolbec).Select With Selection.Interior
.ColorIndex = colors(nomer)
.Pattern = xlSolid End With
Теперь осталось в выбранной ячейке указать количество студентов, занимающихся в аудитории. Программно это реализуется с помощью одной строки:
Cells(stroka, stolbec).Value = Cells(stroka, stolbec).Value +
Worksheets(1).Cells(i, 6).Value
Мы говорили, что на этом листе можно посмотреть информацию о вместимости аудитории. Для этого разработана следующая предопределенная процедура, которая выполняется при выделении той или иной аудитории. В результате необходимая информация выводится в окно для сообщений (листинг 21).
Листинг 21. Предопределенная процедура selection С ha т ge
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Вычисление строки и столбца выделенной ячейки
Stroka = ActiveCell.Row
Stolbec = ActiveCell.Column
If Stolbec <> 1 Then
‘ Информационное окно видимо только при выделении первого столбца
Infl.Visible = False
Elself Stroka > 6 Then
Infl.Visible = True
Infl.Text = "Вместимость " + _
Str(Worksheets(2).Cells(Stroka - 5, 2)) + "чел"
End If
End Sub
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!