Разработка приложения операционной системы Windows "Схема гибели и размножения"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.06.2013
Размер файла 375,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Республики Башкортостан

ГОУ СПО Стерлитамакский сельскохозяйственный техникум

Курсовая работа

по дисциплине: «Математические методы»

на тему: Разработка приложения операционной системы WINDOWS «Схема гибели и размножения»

Выполнила:

студентка Рафикова Э.Р. 4 курса 423 гр.

Руководитель проекта:

преподаватель Михайлов Е.В.

Наумовка 2012 год

Задание

На выполнение курсовой работы студенки 4 курса специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем» Рафиковой Эльмиры Рафисовны.

Тема курсовой работы: Разработка приложения операционной системы WINDOWS «Схема гибли и размножения»

Дата выдачи задания: «_____»__________2012г.

Срок окончания работы: «_____»__________2012г.

Дата защиты курсового проекта: «_____»__________2012г.

Подпись студента курсовой работы ___________ Рафикова Э.Р.

Оценка ______________________________________________________

Руководитель _________________ Е.В. Михайлов.

Содержание

Введение

1. Назначение и область применения разработки

2. Постановка задачи

2.1 Состав выполняемых функций

2.2 Требования к входным и выходным данным

3. Описание метода решения

4. Разработка алгоритма

5. Обоснование выбора средств разработки

6. Описание основных программных модулей

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

Заключение

Библиография

Приложения

Введение

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

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

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

Особенность этого графа в том, что все состояния системы можно вытянуть в одну цепочку, в которой каждое из средних состояний (S1, S2, ..., Sn-1) связано прямой и обратной стрелкой с каждым из соседних состояний -- правым и левым, а крайние состояния (S0, Sn) -- только с одним соседним состоянием.

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

Предметом курсовой работы является графы, с помощью которых могут быть описаны многие структуры, представляющий практический интерес в математике и информатике.

Целью работы является разработка программного обеспечения для решения задач схемы гибели и размножения в системах массового обслуживания (СМО).

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

Моделирование хорошо тем, что не требуется вмешиваться в работу организации, после создания модели с ней можно проводить любые испытания и эксперименты. Практическое решение задачи осуществлено с Delphi 7.

1. Назначение и область применения разработки

Основной задачей данного курсового проекта является программная реализация моделирования работы СМО (системы массового обслуживания).

При запуске данной задачи должна появится форма настроек. С помощью настроек можно моделировать работу различных СМО, условия работы которых, схожи с данной задачей. А после обработки этих данных на экран должна выводиться статистика в текстовом и графическом виде. Необходимо предусмотреть различные исходы поиска, чтобы программа не выдавала ошибок и работала правильно.

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

2. Постановка задачи

Формулировка задачи

Построить модель СМО позволяющую моделировать работу СМО (системы массового обслуживания). После моделирования модели, программа должна выводить статистику в текстовом и графическом виде.

При запуске данной задачи появится форма настроек. С помощью настроек можно моделировать работу различных СМО, условия работы которых, схожи с данной задачей.

Описание системы:

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

Частота поступления заявок по промежуткам времени определяется пользователем.

Теоретическое представление задачи.

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

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

Пользуясь графом рис. 19.1, составим и решим алгебраические уравнения для финальных вероятностей состояний (их существование вытекает из того, что из каждого состояния можно перейти в каждое другое, и число состояний конечно). Для первого состояния S0 имеем:

(8.1)

Для второго состояния S1:

В силу (8.1) последнее равенство приводится к виду

далее, совершенно аналогично

и вообще

где k принимает все значения от 0 до n. Итак, финальные вероятности р0, p1,..., рn удовлетворяют уравнениям

(8.2)

кроме того, надо учесть нормировочное условие

p0 + р1+ р2+…+ рn=1 (8.3)

Решим эту систему уравнений. Из первого уравнения (8.2) выразим р1 через р0.

(8.4)

Из второго, с учетом (8.4), получим:

(8.5)

из третьего, с учетом (8.5),

(8.6)

и вообще, для любого k (от 1 до N):

(8.7)

Обратим внимание на формулу (8.7). В числителе стоит произведение всех интенсивностей, стоящих у стрелок, ведущих слева направо (с начала и до данного состояния Sk), а в знаменателе -- произведение всех интенсивностей, стоящих у стрелок, ведущих справа налево (с начала и до Sk).

Таким образом, все вероятности состояний p1, р2, …, pn выражены через одну из них (p0). Подставим эти выражения в нормировочное условие (8.3). Получим, вынося за скобку p0:

отсюда получим выражение для р0.

(8. 8)

(скобку мы возвели в степень -1, чтобы не писать двухэтажных дробей). Все остальные вероятности выражены через р0 (см. формулы (8.4) -- (8.7)). Заметим, что коэффициенты при p0 в каждой из них представляют собой не что иное, как последовательные члены ряда, стоящего после единицы в формуле (8.8). Значит, вычисляя р0, мы уже нашли все эти коэффициенты.

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

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

Всякая СМО предназначена для обслуживания какого-то потока заявок (или «требований»), поступающих в какие-то случайные моменты времени. Обслуживание заявки продолжается какое-то, вообще говоря, случайное время Тоб, после чего канал освобождается и готов к приему следующей заявки. Случайный характер потока заявок и времен обслуживания приводит к тому, что в какие-то периоды времени на входе СМО скапливается излишне большое число заявок (они либо становятся в очередь, либо покидают СМО необслуженными); в другие же периоды СМО будет работать с недогрузкой или вообще простаивать.

В СМО происходит какой-то СП с дискретными состояниями и непрерывным временем; состояние СМО меняется скачком в моменты появления каких-то событий (или прихода новой заявки, или окончания обслуживания, или момента, когда заявка, которой надоело ждать, покидает очередь). Чтобы дать рекомендации по рациональной организации этого процесса и предъявить разумные требования к СМО, необходимо изучить СП, описать его математически. Этим и занимается теория МО.

2.1 Состав выполняемых функций

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

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

а) вводятся условия установки модели (количество выполненных заявок, время

б) источник заявок (время, точность);

в) канал (количество, время, точность);

вывод результата - программа выводит статистику в текстовом и графическом виде;

вывод справки по пользованию данной программой;

выход из приложения.

2.2 Требования к входным и выходным данным

Исходными данными для данной программы являются - число заявок, интервал времени, точность, емкость накопителя. Данные вводятся с клавиатуры.

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

Так же пользователь может указать количество каналов, есть ли накопитель, время точность.

Конечным результатом будет вывод статистики в текстовом и графическом виде. Текстовую статистику о работе модели можно отключить.

Вычисления выводится в окне консоли по нажатию кнопки «Старт».

Примечание:

В данной задаче есть ограничение - количество каналов может быть не больше 7.

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

Источник заявок - задает время появления заявок.

Канал - задает время выполнения заявок. Если канал занят обслуживанием заявки, то пришедшая в данный момент заявка не может занять канал. Если канал занят, но есть накопитель, тогда пришедшая заявка поступает в накопитель (стает в очередь).

Накопитель - задает ёмкость накопителя, т.е. количество заявок, которые ожидают освобождение канала. Когда канал становится свободным (заявка обслужена), тогда заявки, из накопителя поступают в канал на обслуживание. Если канал занят и ёмкость накопителя полная, тогда заявка покидает систему не обслуженной.

3. Описание метода решения

При запуске программы, для начала процесса моделирования, необходимо ввести параметры моделирования. Во всех полях введены значения по умолчанию. При нажатии на кнопку “Старт" происходит инициализация всех переменных, и чтение параметров моделирования.

После того как все параметры считаны, запускается процедура Timer1Timer, в которой 0,001 с реального времени соответствует 1 с модельного времени. Эта процедура предназначена для того, чтобы каждую секунду модельного времени фиксировать состояние системы (появилась ли заявка, освободилась ли процедура, просматривание очередей и постановка на обслуживание, удаление из очередей и т.д.).

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

В программе используются глобальные переменные которые характеризуются время, пройденным с момента появления заявки, текущее время, время обслуживания. На каждое выполнение таймера происходит инкрементация этих переменных. Если время пребывания заявки в системе становится равной максимальному времени ожидания в системе, она теряется (покидаем систему).

После появления заявки:

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

Если заявка поступила на обслуживание, для нее генерируется количество процедур, на которые она пойдет и список процедур.

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

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

Проверяются очереди, процедуры на потерю заявок (заявка теряется, если время пребывания в системе равно максимальному времени пребывания в системе)

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

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

Наращивается текущее время моделирования.

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

Заявки поступают на обслуживание из очереди в соответствии с приоритетом (сначала на обслуживание идут приоритетные заявки). Каждую секунду состояние системы визуально отображается с помощью графиков и таблицы, которые будут описаны в руководстве пользователя.

программный моделирование обслуживание алгоритм

4. Разработка алгоритма

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

Программа позволяет моделировать работу СМО (системы массового обслуживания). После моделирования модели, программа выводит статистику в текстовом и графическом виде.

При запуске данной задачи появится форма настроек. С помощью настроек можно моделировать работу различных СМО, условия работы которых, схожи с данной задачей. Результатом программы является вывод на экран каналов, через которые проходит минимальный путь. Если канал занят или свободен - выводится соответствующее сообщение. Ниже приведена наглядная форма:

5. Обоснование выбора средств разработки

Для создания программы курсового проекта я выбрала язык программирования - Delphi. Delphi -- это язык программирования, который используется для создания разнообразных продуктов ПО. До недавнего времени он имел другое название -- Object Pascal. Delphi представляет собой объектно-ориентированное программирование, которое предполагает существование определенной объектной библиотеки или так называемой библиотеки прототипов, использование которой больше не характеризует процесс программирования как громоздкое и сложное мероприятие.

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

Специфической особенностью и вместе с тем недостатком Delphi являлось то, что использование подобного языка программирования на первых порах возможно было только в рамках операционной системы Microsoft Windows. Сейчас же работа с Delphi осуществляется и на таких платформах, как GNU/Linux, Mac OS X и Windows CE.

Во многом Delphi стал основой для создания такого языка программирования как С#.

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

Delphi имеет особенность постоянно модернизироваться, о чем свидетельствует периодическое обновление в виде появления новых версий. На сегодняшний день, последней, 12 версией программного средства является Delphi 2009, которая подразумевает некоторые совершенствования в системе языка программирования. Во-первых, модернизация элементов Delphi касается уникода, а именно, предполагается полная его поддержка. Во-вторых, наличие элементов для осуществления обобщенного программирования, которое подразумевает разработку алгоритмов, применимых к разным типам данных. В-третьих, использование безымянных функций, которые не предполагают лексического токена, а именование сущностей делает возможным ссылки на них, которые могут использоваться позже.

6. Описание основных программных модулей

Все файлы проекта располагаются в директории с наименованием СМО. В проект входят: файл проекта Delphi SMO. dpr, файлы исходного текста:

Unit1 - основной модуль

Unit2 - модуль для заполнения параметров каналов обслуживания (процедур)

Unit3 - модуль для заполнения параметров очередей

Unit4 - модуль для заполнения параметров потоков входных заявок

Unit5 - модуль для демонстрации приветствия

Файл справки (Руководство пользователя) в формате HTML, и исполняемый файл SMO. exe.

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

При написании программы следует применять операторы, позволяющие использовать основные алгоритмические структуры.

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

В столе заказов универсама установлены n телефонов, по которым принимаются заказы, поступающие с интенсивностью л заявок в минуту. Каждая телефонистка оформляет в среднем м заявок в минуту. Данные задачи указаны в таблице:

Таблица 1

n

(заявка/мин)

Tобс, (заявка/мин)

3

3

3/2

Для данной СМО необходимо:

а) определить тип;

б) указать все возможные состояния;

в) построить размеченный граф состояний;

г) определить основные параметры, характеризующие ее работу (вероятность отказа, относительную пропускную способность, абсолютную пропускную способность, вероятность того, что все каналы заняты, вероятность наличия очереди, среднее число заявок в СМО, среднее число занятых каналов); д) интерпретировать полученные характеристики; е) сделать вывод об эффективности работы СМО и рекомендации руководству предприятия по улучшению ее работы.

Для описания математической модели:

а) определим тип СМО;

б) укажем все возможные состояния СМО;

в) построим размеченный граф состояний СМО.

Данные задачи выражены в одних единицах измерения.

а) Тип СМО: многоканальная (n=3), с отказом

б) Состояния системы:

- система свободна (все телефоны свободны),

- 1 телефон занят, 2 телефона свободны,

- 2 телефона занято, 1 телефон свободен,

- все телефоны заняты.

в) Размеченный граф состояний изображен на рис. 1

P0+P1+P2+P3=1

Анализ работы СМО

Основные параметры, характеризующие работу СМО:

1. Вероятность простоя системы

Данное значение говорит о том, что около 15,8% всего времени обслуживания система будет простаивать, все телефоны свободны.

2. Вероятность отказа (все каналы заняты)

Полученное значение показывает, что примерно 21% всех заявок не будут обслужены.

3. Относительная пропускная способность

Это свидетельствует о том, что почти 79% всех поступивших заявок будет обслужено

4. Абсолютная пропускная способность

Данный результат означает, что в минуту будет обслужено 2, 37 заявок.

5. Вероятность наличия очереди = 0

6. Среднее число занятых каналов

В среднем будет занято 1,58 каналов

7. Относительное число занятых каналов

8. Среднее число заявок в минуту

Итак, данная СМО многоканальная, с отказом, что исключает возникновение очереди. В связи с отсутствием очереди часть клиентов теряется, поэтому данная СМО, скорее всего, работает не достаточно эффективно. Относительная пропускная способность Q составляет около 79% (что тоже, говорит о неидеальной эффективности), обслужено будет 2,37 заявок из трех (т. к. абсолютная пропускная способность А равна 2,37). Однако среднее число занятых каналов - 1,58 (из трех возможных, т.е. почти половина каналов свободна), поэтому, я думаю, можно сократить количество каналов до двух, тем самым уменьшив персонал и сэкономив на оплате труда работников.

Заключение

В результате работы была разработана упрощенная модель СМО. В модель можно ввести реальные данные, такие как условия остановки модели, источник заявок, количество каналов и так далее.

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

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

Библиография

1. Лифшиц А.Л. Статистическое моделирование СМО, М., 1978.

2. Советов Б.А., Яковлев С.А. Моделирование систем, М: Высшая школа, 1985.

3. Гмурман В.Е. Теория вероятностей и математическая статистика, М: Высшая школа, 2001.

4. Пригодин Н.В. Системный подход в моделировании. М., 1986.

5. В.П.Морозов, В.В. Шураков Основы алгоритмизации .Алгоритмические языки и системное программирование .-М:. Финансы и статистика, 2003

6. А.Я.Савельев Технология подготовки задач для решения на ЭВМ.-

М:.Высшая школа, 2004

7. Ю.М.Коршунов Математические основы кибернетики

8. Федосеев В.В. и др. Экономико-математические методы и прикладные модели: учебное пособие для ВУЗов. - М.: Юнити, 2002.

9. Т.Л. Партыкина, И.И. Попов Математические методы: учебник. - М.: ФОРУМ: ИНФА-М, 2005. - 464 с.: ил - (профессиональное образование)

10. Сеть Internet

11. Симонович С., Г. Евсеев. «Практическая информатика: Учебное пособие для средней школы. Универсальный курс». - М.: Аст-пресс: Инфорком-пресс, 2001.

Приложения А

Листинг программы

{модуль для проведения моделирования}

unit Zad1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls,UnitGenerate,UnitKanal,UnitNakopitel;type

TFrZad1 = class(TForm)

Button1: TButton;

Label1: TLabel;

Button2: TButton;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Edit1: TEdit;

GroupBox3: TGroupBox;

Label2: TLabel;

Label3: TLabel;

Edit2: TEdit;

Edit3: TEdit;

GroupBox4: TGroupBox;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Edit5: TEdit;

Label6: TLabel;

Edit6: TEdit;

GroupBox5: TGroupBox;

Label7: TLabel;

Edit7: TEdit;

CheckBox1: TCheckBox;

GroupBox6: TGroupBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

CheckBox5: TCheckBox;

CheckBox6: TCheckBox;

CheckBox7: TCheckBox;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

end;

var

FrZad1: TFrZad1;

G:TGenerate;

K:TKanal;

implementation

uses Zad1Statistica,Main;

{$R *.dfm}

// СТАРТ МОДЕЛИРОВАНИЯ

procedure TFrZad1.Button1Click(Sender: TObject);

var

i:byte;

p:real;

begin

FrZad1Statistica.Init;

FrZad1Statistica.Show;

FrZad1Statistica.Memo1.Clear;

GlobalTime:=0;

G:=TGenerate.Create;

G.Init('Источник_1',0,strtoint(Edit2.Text)-1,strtoint(Edit3.Text));

K:=TKanal.Create;

if CheckBox1.Checked then

begin

K.Init('Канал_1',strtoint(Edit4.Text),true,0,strtoint(Edit5.Text)-1,strtoint(Edit6.Text));

K.N.Init('Накопитель_1',strtoint(Edit7.Text));

end else K.Init('Канал_1',strtoint(Edit4.Text),false,0,strtoint(Edit5.Text)-1,strtoint(Edit6.Text));

FrZad1Statistica.Memo1.Lines.Add('ПАРАМЕТРЫ МОДЕЛИРОВАНИЯ');

if RadioButton1.Checked then FrZad1Statistica.Memo1.Lines.Add('Условие остановки модели: Время='+Edit1.Text)

else FrZad1Statistica.Memo1.Lines.Add('Условие остановки модели: Количество выполненных заявок='+Edit1.Text);

FrZad1Statistica.Memo1.Lines.Add('Источник заявок: Время='+Edit2.Text+' Точность='+Edit3.Text);

if CheckBox1.Checked then FrZad1Statistica.Memo1.Lines.Add('Канал: Количество='+Edit4.Text+'Время='+Edit5.Text+'Точность='+

Edit6.Text+'Есть накопитель=да'+'Емкость='+Edit7.Text) else

FrZad1Statistica.Memo1.Lines.Add('Канал: Количество='+Edit4.Text+' Время='+Edit5.Text+' Точность='+Edit6.Text+' Есть накопитель=нет');

FrZad1Statistica.Memo1.Lines.Add('СТАРТ МОДЕЛИРОВАНИЯ!');

repeat

if CheckBox2.Checked then FrZad1Statistica.Memo1.Lines.Add('Текущее время = '+inttostr(GlobalTime));

if G.Run then {=появление новой заявки=}

begin

if CheckBox3.Checked then

begin

FrZad1Statistica.Memo1.Lines.Add('='+inttostr(GlobalTime)+'= Появление заявки.'+

' Всего создано заявок='+inttostr(G.AllCount)+

' Время след.заявки='+inttostr(G.NextTimeRun));

end;

FrZad1Statistica.Series1.AddXY(GlobalTime,0);

end;

if G.Zayavka>0 then {=занятие канала=}

begin

K.ZayavkaIn(false);

if (K.InKanal=false)and(K.InNakopitel=false) then

begin

G.ZayavkaOut(true);

FrZad1Statistica.Series4.AddXY(GlobalTime,-1);

end else G.ZayavkaOut(false);

end else K.ZayavkaIn(true);

if CheckBox7.Checked and K.KanalFromNakopitel then

begin

FrZad1Statistica.Memo1.Lines.Add('='+inttostr(GlobalTime)+

'= Заявка освободила накопитель. Количество заявок в накопителе='+

inttostr(K.N.Emkost)+' Всего вышло заявок='+inttostr(K.N.ZayavkaRun));

end;

if K.KanalFromNakopitel then

begin

FrZad1Statistica.Series3.AddXY(GlobalTime,2);

end;

if CheckBox6.Checked and K.InNakopitel then

begin

FrZad1Statistica.Memo1.Lines.Add('='+inttostr(GlobalTime)+

'= Заявка заняла накопитель. Количество заявок в накопителе='+

inttostr(K.N.Emkost)+' Всего поступило заявок='+inttostr(K.N.AllCount));

end;

if K.InNakopitel then

begin

FrZad1Statistica.Series2.AddXY(GlobalTime,1);

end;

if CheckBox4.Checked and (K.InKanal or K.KanalFromNakopitel) then

begin

FrZad1Statistica.Memo1.Lines.Add('='+inttostr(GlobalTime)+'= Занятие канала №'+

inttostr(K.KanalNFree)+'. Всего поступило заявок='+inttostr(K.AllCount)+

'. Время обсл.этой заявки='+inttostr(K.NextTimeRun[K.KanalNFree]));

end;

if K.InKanal or K.KanalFromNakopitel then FrZad1Statistica.DownUpDown;

while K.Run do {=освобождение канала=}

begin

if CheckBox5.Checked then

begin

FrZad1Statistica.Memo1.Lines.Add('='+inttostr(GlobalTime)+'= Освобождение канала №'+

inttostr(K.KanalN)+'. Всего обслужено заявок='+inttostr(K.AllZayavkaRun));

end;

FrZad1Statistica.Down; end;

if K.ErrorLevel<>0 then

begin

FrZad1Statistica.Memo1.Lines.Add('ОШИБКА №'+inttostr(K.ErrorLevel));

Button2Click(Sender);

end;

inc(GlobalTime);

until (RadioButton1.Checked and(GlobalTime>strtoint(Edit1.Text)))OR

(RadioButton2.Checked and(K.AllZayavkaRun>=strtoint(Edit1.Text)));

dec(GlobalTime);

FrZad1Statistica.EndDown;

FrZad1Statistica.Memo1.Lines.Add('КОНЕЦ МОДЕЛИРОВАНИЯ!');

FrZad1Statistica.Memo1.Lines.Add('РЕЗУЛЬТАТЫ МОДЕЛИ');

FrZad1Statistica.Memo1.Lines.Add('Время работы модели: '+inttostr(GlobalTime));

FrZad1Statistica.Memo1.Lines.Add('Создано заявок: '+inttostr(G.AllCount));

FrZad1Statistica.Memo1.Lines.Add('Обслужено заявок: '+inttostr(K.AllZayavkaRun));

FrZad1Statistica.Memo1.Lines.Add('Потеряно заявок: '+inttostr(G.ZayavkaLoss));

for i:=1 to K.MaxKanal do

begin

if K.KanalCount[i]=0 then K.KanalTime[i]:=0;

FrZad1Statistica.Memo1.Lines.Add('Время работы канала №'+inttostr(i)+': '+inttostr(K.KanalTime[i]));

FrZad1Statistica.Memo1.Lines.Add('Поступило заявок в канал №'+inttostr(i)+': '+inttostr(K.KanalCount[i]));

FrZad1Statistica.Memo1.Lines.Add('Обслужено заявок в канале №'+inttostr(i)+': '+inttostr(K.ZayavkaRun[i]));

p:=K.KanalTime[i]*100/GlobalTime;

FrZad1Statistica.Memo1.Lines.Add('Коэффициент занятости канала №'+inttostr(i)+': '+format('%4.1f',[p])+'%');

FrZad1Statistica.Memo1.Lines.Add('Коэффициент простоя канала №'+inttostr(i)+': '+format('%4.1f',[100-p])+'%');

end;

if K.WithNakopitel then

begin

if K.N.ZayavkaRun<>0 then p:=K.N.AllTime/K.N.ZayavkaRun else p:=0;

FrZad1Statistica.Memo1.Lines.Add('Среднее время пребывания заявки в накопителе: '+format('%5.1f',[p]));

FrZad1Statistica.Memo1.Lines.Add('Поступило заявок в накопитель: '+inttostr(K.N.AllCount));

FrZad1Statistica.Memo1.Lines.Add('Число заявок поступивших на обслуживание в канал из накопителя: '+

inttostr(K.N.ZayavkaRun));

p:=K.N.AllTime*100/GlobalTime;

FrZad1Statistica.Memo1.Lines.Add('Коэффициент занятости накопителя: '+format('%4.1f',[p])+'%');

FrZad1Statistica.Memo1.Lines.Add('Коэффициент простоя накопителя: '+format('%4.1f',[100-p])+'%');

FrZad1Statistica.Memo1.Lines.Add('Максимально заявок было в накопителе: '+inttostr(K.N.EmkostMaximum));

end; end;

// ОСТАНОВКА МОДЕЛИРОВАНИЯ

procedure TFrZad1.Button2Click(Sender: TObject);

begin

RadioButton1.Checked:=true;

GlobalTime:=strtoint(Edit1.Text)+1;

FrZad1Statistica.Memo1.Lines.Add('ОСТАНОВКА МОДЕЛИРОВАНИЯ!');

end;

procedure TFrZad1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

FrZad1.Destroy;

FrMain.N11.Enabled:=true;

end; end.

{модуль вывода информации о ходе моделирования}

unit Zad1Statistica;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Series, TeEngine, ExtCtrls, TeeProcs, Chart, StdCtrls;

type

TFrZad1Statistica = class(TForm)

Memo1: TMemo;

Label1: TLabel;

Chart1: TChart;

Series1: TPointSeries;

Series2: TPointSeries;

Series3: TPointSeries;

Series5: TLineSeries;

Series6: TLineSeries;

Series4: TPointSeries;

Series7: TLineSeries;

ScrollBox1: TScrollBox;

Label2: TLabel;

Memo2: TMemo;

Label3: TLabel;

Edit1: TEdit;

Label4: TLabel;

Edit2: TEdit;

Button1: TButton;

Series8: TLineSeries;

Series9: TLineSeries;

Series10: TLineSeries;

Series11: TLineSeries;

PROCEDURE Init;

PROCEDURE DownUpDown;

PROCEDURE Down;

PROCEDURE EndDown;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject); end;

var

FrZad1Statistica: TFrZad1Statistica;

implementation

uses Main, Zad1;

var

max_time:longint;

{$R *.dfm}

// НАЧАЛЬНЫЕ ЗНАЧЕНИЯ ДЛЯ ПОСТРОЕНИЯ ДИАГРАММЫ

PROCEDURE TFrZad1Statistica.Init;

var

i:byte;

BEGIN

Chart1.RemoveAllSeries;

Series1.Clear;

Chart1.AddSeries(FrZad1Statistica.Series1);

Series2.Clear;

Chart1.AddSeries(FrZad1Statistica.Series2);

Series3.Clear;

Chart1.AddSeries(FrZad1Statistica.Series3);

Series4.Clear;

Chart1.AddSeries(FrZad1Statistica.Series4);

for i:=5 to 4+strtoint(FrZad1.Edit4.Text) do

begin

with TLineSeries(FindComponent('Series'+inttostr(i)))do

begin

Clear;

AddXY(0,2*(i-4)+1);

end;

Chart1.AddSeries(TLineSeries(FindComponent('Series'+inttostr(i))));

end;

max_time:=0;

END;

// ставит 4 точки: канал свободен, канал занят, канал свободен

PROCEDURE TFrZad1Statistica.DownUpDown;

var

i:byte;

BEGIN

with TLineSeries(FindComponent('Series'+inttostr(4+K.KanalNFree)))do

begin

AddXY(GlobalTime,2*K.KanalNFree+1);

AddXY(GlobalTime,2*K.KanalNFree+2);

AddXY(K.NextTimeRun[K.KanalNFree],2*K.KanalNFree+2);

AddXY(K.NextTimeRun[K.KanalNFree],2*K.KanalNFree+1);

if max_time<K.NextTimeRun[K.KanalNFree] then max_time:=K.NextTimeRun[K.KanalNFree];

end;

END;

// ставит точку: канал свободен

PROCEDURE TFrZad1Statistica.Down;

var

i:byte;

BEGIN

with TLineSeries(FindComponent('Series'+inttostr(4+K.KanalN)))do

AddXY(GlobalTime,2*K.KanalN+1);

END;

// после завершения моделирования ставит точку: канал свободен

PROCEDURE TFrZad1Statistica.EndDown;

var

i:byte;

BEGIN

Memo2.Clear;

Memo2.Lines.Add('Ось X: время');

Memo2.Lines.Add('Ось Y: состояние объектов модели');

if G.ZayavkaLoss>0 then Memo2.Lines.Add('-1 = Потеря заявки');

Memo2.Lines.Add(' 0 = Появление заявки');

Memo2.Lines.Add(' 1 = Заявка заняла накопитель');

Memo2.Lines.Add(' 2 = Заявка освободила накопитель');

for i:=5 to 4+strtoint(FrZad1.Edit4.Text) do

if K.KanalCount[i-4]>0 then

begin

with TLineSeries(FindComponent('Series'+inttostr(i)))do AddXY(max_time,2*(i-4)+1);

Memo2.Lines.Add(' '+inttostr((i-4)*2+1)+' = Канал №'+inttostr(i-4)+' свободен');

Memo2.Lines.Add(' '+inttostr((i-4)*2+2)+' = Канал №'+inttostr(i-4)+' занят');

end; END;

// активизация формы

procedure TFrZad1Statistica.FormActivate(Sender: TObject);

begin

Edit1.Text:='406';

Edit2.Text:='876';

Button1Click(Sender); end;

// изменение размеров диаграммы

procedure TFrZad1Statistica.Button1Click(Sender: TObject);

begin

Chart1.Height:=strtoint(Edit1.Text);

Chart1.Width:=strtoint(Edit2.Text); end; end.

Размещено на Allbest.ru

...

Подобные документы

  • Характеристика системы массового обслуживания, куда поступают заявки обслуживания. Особенности моделирования системы массового обслуживания. Имитация работы системы массового обслуживания с относительными приоритетами. Отчеты полного факторного плана.

    курсовая работа [1,1 M], добавлен 14.07.2012

  • Методика системного исследования реальной динамической сложной системы посредством разработки ее имитационной модели. Разработка программы реализации алгоритма имитационного моделирования системы массового обслуживания "Интернет-провайдерская фирма".

    курсовая работа [2,0 M], добавлен 20.01.2010

  • Создание библиотеки классов имитационного моделирования и реализация алгоритма имитационного моделирования системы массового обслуживания "Модель комиссионного магазина". Использование для разработки среды программирования C++. Словарь предметной области.

    курсовая работа [581,0 K], добавлен 23.01.2013

  • Построение имитационной модели системы массового обслуживания, список и содержание ее активностей. Блок-схема алгоритма моделирования и текст процедуры. Моделирование случайных независимых величин и процессов. Оптимизация системы массового обслуживания.

    курсовая работа [4,0 M], добавлен 28.05.2013

  • Характеристика функций имитационного моделирования. Знакомство с особенностями имитационного моделирования агрегированной системы массового обслуживания. Анализ программы GPSSWorld: рассмотрение возможностей, способы составления имитационной модели.

    курсовая работа [1,6 M], добавлен 27.05.2013

  • Разработка решения задачи имитационного моделирования системы массового обслуживания (СМО), на примере склада продукции. Построение концептуальной модели системы. Сравнение результатов имитационного моделирования и аналитического расчета характеристик.

    курсовая работа [75,5 K], добавлен 26.06.2011

  • Компоненты и классификация систем массового обслуживания. Разработка СМО для лечебно-профилактического центра. Графическое представление СМО регистратуры ЛПЦ. Исследование режима функционирования обслуживающей системы. Алгоритм работы поликлиники.

    курсовая работа [715,3 K], добавлен 28.01.2016

  • Разработка программы для операционной системы Windows с использованием VisualC++ (6.0, .NET). Рассмотрение основ программного моделирования работы прибора (электрического чайника). Правила создания классов устройства и его графического интерфейса.

    курсовая работа [424,3 K], добавлен 03.06.2014

  • Технология разработки и тестирования программного обеспечения в среде Visual Studio на примере создания программы моделирования систем массового обслуживания. Аналитические и имитационные методы моделирования с разными дисциплинами обслуживания заявок.

    дипломная работа [1,1 M], добавлен 09.09.2012

  • Концептуальная модель процесса обслуживания покупателей в магазине. Описание системы моделирования GPSS. Разработка моделирующей программы на специализированном языке имитационного моделирования в среде AnyLogic. Результаты вычислительных экспериментов.

    курсовая работа [906,9 K], добавлен 12.07.2012

  • Сфера применения имитационного моделирования. Исследование и специфика моделирования системы массового обслуживания с расчетом стационарных значений системы и контролем погрешности получаемых значений. Реализация ее в GPSS и на языке высокого уровня Java.

    курсовая работа [818,7 K], добавлен 23.05.2013

  • Расчет параметров моделирования в системе Fortran. Описание алгоритма и математической модели системы, их составляющих. Моделирование шума с заданной плотностью распределения вероятностей. Выполнение моделирования работы системы при входном сигнале N(t).

    курсовая работа [896,3 K], добавлен 20.06.2012

  • Система GPSS World как мощная универсальная среда моделирования как дискретных, так и непрерывных процессов, предназначенная для профессионального моделирования самых разнообразных процессов и систем. Системы массового обслуживания. Листинг программы.

    курсовая работа [499,6 K], добавлен 25.12.2013

  • Изучение основных аспектов моделирования операционной системы. Исследование принципов организации псевдопараллельной работы процессов. Анализ алгоритмов диспетчеризации процессов. Проектирование подсистемы управления памятью и запоминающими устройствами.

    курсовая работа [1,7 M], добавлен 12.01.2014

  • Описание области применения операционной системы (ОС) Windows 7, ее основные характеристики и причины для сбоев в работе. Выбор программного обеспечения и алгоритма для диагностики и восстановления ОС. Расчет экономических затрат на реализацию проекта.

    дипломная работа [2,3 M], добавлен 10.04.2017

  • Мониторинг операционной системы в современном мире. Программа для операционной системы Windows как средство для его проведения. Особенности разработки программы в Delphi 7.0. Описание работы программы, порядок выполняемых действий, и программная часть.

    курсовая работа [2,7 M], добавлен 02.12.2009

  • Основное назначение систем массового обслуживания (СМО): обслуживание потока заявок. Моделирование СМО для стоянки такси, определение характеристик эффективности работы в качестве статистических результатов моделирования. Схема процесса функционирования.

    курсовая работа [1,2 M], добавлен 27.12.2011

  • Метод имитационного моделирования, построение программа на языке GPSS\PS. Укрупненная схема моделирующего алгоритма. Математическая модель и ее описание. Возможные улучшения в работе системы. Результаты моделирования оптимизации работы поликлиники.

    курсовая работа [148,6 K], добавлен 29.06.2011

  • Основы работы с многооконным графическим пользовательским интерфейсом операционной системы Windows95/NT. Основы работы с прикладными программами Windows и DOS. Разработка простого приложения для Windows при помощи средства разработки приложений DELPHI.

    контрольная работа [281,0 K], добавлен 15.01.2009

  • Основные элементы системы массового обслуживания, ее модель, принципы и задачи работы. Выбор входных распределений. Построение генераторов случайных чисел. Логика работы программы, планирование эксперимента. Результаты моделирования и рекомендации.

    курсовая работа [2,5 M], добавлен 05.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.