Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
ATM. Getstatsutilization(). Mean() ⇐ ПредыдущаяСтр 4 из 4
ATM – это имя созданного объекта Delay. Функция getStatsUtilization() объекта Delay возвращает статистику занятости объекта, а функция mean() возвращает среднее из измеренных значений. Можно использовать и другие методы, например, min() и max(), для получения минимального и максимального измеренных значений соответственно. 1.8. Добавляем текстовую метку. Щелкаем мышью по кнопке панели инструментов Текст, и затем щелкаем по диаграмме под индикатором. Вводим текст, который будет отображен на анимации ATM utilization 1.9. Добавляем столбцовый индикатор текущей длины очереди Назовем его ATM q ueue size. Отображаемое значение q ueue.size()
Функция size() объекта Queue возвращает текущее количество людей в очереди. Установим максимальное отображаемое значение равное 15. 1.10. Запускаем модель Моделирование банковских кассиров Теперь усложняем нашу модель, добавив в нее служащих – банковских кассиров. Внесем в модель кассиров с помощью ресурсов. Ресурс – это специальный объект Enterprise Library, который может потребоваться заявке для выполнения какой-то задачи. В нашем примере посетителям банковского отделения (заявкам) необходимо получить помощь у банковских служащих (ресурсов). Изменяем блок-схему 2.1.1. Добавляем объект SelectOutput Объект SelectOutput является блоком принятия решения. В зависимости от заданного условия, заявка, поступившая в объект, будет поступать на один из двух выходов объекта. Оставим условие Select Condition: uniform()<0.5. В этом случае к кассирам и банкомату будет приходить примерно равное количество клиентов. 2.1.2. Добавляем объект ProcessQ Объект ProcessQ моделирует занятие заявкой ресурса на определенное время. С помощью этого объекта промоделируем обслуживание клиента кассиром. Назовем объект tellerLines Укажем, что в очереди к кассирам может находиться до 20 человек queue Capacity: 20 Задаем время обслуживания delay Time: triangular(2.5, 6, 11) Мы полагаем, что время обслуживания имеет треугольное распределение с минимальным значением равным 2.5, средним - 6, и максимальным - 11 минутам. 2.1.3. Добавляем объект Resource Объект Resource задает ресурсы определенного типа. Он должен быть подсоединен к объектам, моделирующим занятие и освобождение ресурсов (в нашем случае это объект ProcessQ). Назовем объект tellers Задаем число кассиров Capacity: 4
2.1.4. Запускаем модель и изучите ее поведение. Отображение кассиров на анимации Изменим анимацию модели Нарисуем очередь клиентов пользуясь инструментом Ломаная, ожидающих обслуживания. Назовем ее tellersQueue Поставим видимость кривой false Нарисуем комнату в которой располагаются стойки кассиров пользуясь инструментом Скругленный прямоугольник. Установим цвет прямоугольника на ваше усмотрение. Добавим на прямоугольник текстовую метку Teller lines. 2.2.2. Нарисуем Ломаную, чтобы указать на анимации места, в которых будут находиться банковские служащие. Точки ломаной линии будут соответствовать местоположению служащих на анимации. Назовем ломаную линию tellerLocations. Поставим видимость кривой false 2.2.3. Нарисуем кассиров внутри прямоугольника. С помощью разных изображений можно показать, обслуживает ли кассир в данный момент какого-нибудь клиента или нет. Щелкаем по кнопке Изображение и затем щелкаем по диаграмме. Изображение должно содержать рисунки работающего и отдыхающего кассира. Убедимся, что изображение названо image. Добавляем изображение отдыхающего кассира (файл Teller Idle.png) с помощью кнопки Добавить … на закладке Свойств Изображение Добавим изображение занятого кассира (файл Teller Buzy.png) Убедимся, что установлен флажок Исходный размер Убедимся, что индекс изображения не задан. Изображение может содержать несколько рисунков, показывая один из них в зависимости от значения заданного выражения. Если опция Исходный размер не будет выбрана, то размер изображения можно будет изменять. Выражение Индекс изображения определяет, какое изображение из списка отображать. Оставьте поле Индекс изображения пустым. 2.2.4. Создаем Группу фигур и добавим в нее созданное изображение. Щелкнем мышью по кнопке Группа фигур, а потом по диаграмме. Назовем группу фигур ShapeTeller Сделаем ее динамической установив флажок на значении Шаблон Динамические группы фигур создаются и добавляются на анимацию во время работы модели. Чтобы добавить фигуру в группу фигур, щелкаем правой кнопкой мыши по значку группы фигур и выберем Добавить / удалить фигуры из контекстного меню.
Затем щелкаем мышью по изображению для того, чтобы добавить его к этой группе фигур. Чтобы выйти из режима добавления/удаления, щелкаем мышью по анимационной диаграмме. 2.2.5. Поместим на диаграмму столбцовый индикатор, показывающий то, какую часть своего рабочего времени кассир в среднем тратит на обслуживание клиентов. Задаем следующие свойства индикатора: Измерим занятость кассиров в строке Отображает введите tellers.getStatsUtilization().mean() Чтобы измерить занятость ресурса, воспользуемся функцией getStatsUtilization() объекта Resource. Затем мы получим среднее значение с помощью функции mean(). Задаем минимальные и максимальные отображаемые значения 0 и 1 2.2.6. Нам необходимо, чтобы введенные в модель картинки менялись в зависимости от занятости кассиров. Для этого мы создадим новый класс сообщения, которые будут представлять в нашей модели кассиров. Щелкаем мышью по кнопке Новый класс сообщения. Назовем класс Teller. Вводим имя базового класса для созданного сообщения Entity 2.2.7. Создаем динамическую анимацию группы фигур ShapeTeller. Напишем следующий код в поле Дополнительный код класса: Main._Group.ShapeTeller shape = ((Main)Engine.getRoot()).animation.new ShapeTeller(); Напишем следующий код в поле Код конструктора: shape.setup(); setAnimation(shape); Напишем следующую функцию в поле Дополнительный код класса: void setBusy(boolean b) { shape.image.setIndex(b? 1: 0); } 2.2.8. Задаем анимационные свойства для объектов блок-схемы. Задаем следующие свойства объекта Tellerlines: Выбираем фигуру анимации
|
||||||
Последнее изменение этой страницы: 2021-01-08; просмотров: 135; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.172.252 (0.015 с.) |