Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Доход от обслуживания вызовов




В нашей модели сделаем следующие добавления. Все цены будем считать в у. е., единица модельного времени будет соответствовать одной минуте реального времени.

Для подсчета длительности состоявшегося телефонного разговора введем новый тип сообщения (), который назовем call. Этот тип будет насле­доваться от базового класса Entity и иметь два вещественных поля, tstart и tFinish (рис. 9.13).

В блоке source параметр newEntity определим как Call.class (используя выпадающее меню). В этом поле определяется класс тех объектов, которые


 


будут генерироваться данным источником. В языке Java <имя_класса>. class как раз задает класс объектов.


В блоке processQ параметр onEnter определим как:

((Call)entity).tStart=getTime();

а параметр onExit как:

((Call)entity).tFinish=getTime();

Во всех блоках Enterprise Library имя текущего объекта (сообщения) по умолчанию установлено как entity. Для того чтобы пользоваться элемента­ми структуры текущего сообщения (здесь — данными tstart и tFinish). необходима операция явной конверсии типов (call(entity, указывающая, что этот объект имеет тип call. Операция кастинга имеет меньший приори­тет, чем точка, поэтому выражение это нужно взять в скобки, чтобы затем использовать "точечную" операцию доступа к данным этого объекта.

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

Зададим теперь правило расчета за состоявшиеся телефонные переговоры. Его удобно определить алгоритмической функцией. Щелкните на кнопке или выберите команду Новая алгоритмическая функция в контекстном

меню при выделенном корневом объекте модели Main. Назовите функцию callPrice. У нее должен быть один вещественный параметр, назовите его t. Саму функцию в окне Тело функции определите так (рис. 9.14):

return t<=l? minPrice: t*minPrice;

Функция callPrice (t) определяет стоимость разговора так: если длитель­ность t разговора не больше одной минуты, то взимается плата за одну ми­нуту В размере minPrice, если больше, ТО t*minPrice. Параметр minPrice

(цена минуты разговора) задайте как вещественный параметр модели со значением 0.12.


Введите в модель вещественную переменную income, суммирующую полу­ченный с течением времени доход от предоставления соединения (с началь­ным значением 0). Каждый раз, как обслуженная заявка попадает в блок sink, величина income должна возрастать на величину:

callPrice(((Call)entity).tFinish-((Call)entity).tStart);

Как только получено новое значение суммарной величины дохода income, можно вычислить новую реализацию среднего дохода gain, которая равна Invcome/getTime (). Поэтому в поле с именем onEnter окна свойств блока sink следует вставить следующие операторы (рис. 9.15):

Income += callPrice(((Call)entity).tFinish-((Call)entity).tStart);

gain.add (Income/getTime());





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 411 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Либо вы управляете вашим днем, либо день управляет вами. © Джим Рон
==> читать все изречения...

2288 - | 2025 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.