
- •Курсовая работа
- •Задание на курсовую работу
- •Содержание
- •1.1 Сети массового обслуживания
- •1.2 Понятие системы массового обслуживания
- •1.3 Основные характеристики системы массового обслуживания
- •1.4 Классификация системы массового обслуживания
- •1.5 Функционирование системы массового обслуживания
- •1.6 Характеристики эффективности функционирования систем массового обслуживания
- •2 Моделирование процесса работы СеМо на примере регистратуры лечебно-профилактического центра.
- •2.1 Постановка задачи
- •2.2 Описание системы
- •2.3 Обобщенная схема моделируемого алгоритма (q – схема)
- •2.4 Детальная схема моделируемого процесса
- •2.5 Логическая схема (алгоритм работы) моделируемого процесса
- •2.6 Блок-схема программы
- •2.7 Описание программы
- •2.8 Анализ результатов
2.7 Описание программы
Я разработала программу, которая моделирует процесс работы регистратуры и дает отчет о работе 1 и 2 смены регистратуры, а также рассчитывает среднюю длину очереди. Программа написана в среде объектно-ориентированного программирования Delphi 7.0.
Основными критериями применяемости технических средств для разработки программы являются системные требования, предъявляемые к используемому программному обеспечению.
Блок-схема программы приведена на рисунке 7, листинг – в приложении А.
Главное окно программы имеет следующий вид (рис. 8).
Рисунок 8– Главное окно программы
В верхней части окна программы размещено меню: Файл «Выход», Справка «О программе».
В окне программы описывается промежуток времени через который приходят пациенты в какое-то определенное время. Также же в окне имеются данные о продолжительности обработки заявок в различных окнах. В главном окне есть кнопка “Расчет”, при нажатии которой, появляется статистика работы регистратуры. В этом окне выводится:
Интенсивность обслуживания пациентов в 1 окне;
Интенсивность обслуживания пациентов в 2 окне;
Интенсивность поcтупления пациентов в 1 смене;
Коэффициент загрузки для 1-го окна в 1 смену;
Коэффициент загрузки для 2-го окна во 1 смену;
Обслужено за 1 смену;
Интенсивность поcтупления пациентов во 2 смене;
Коэффициент загрузки для 1-го окна в 2 смену;
Коэффициент загрузки для 2-го окна во 2 смену;
Обслужено за 2 смену;
Средняя длина очереди.
При нажатии Справка «О программе» открывается окно с данными о программе и об авторе программы (рис. 9).
Рисунок 9–Окно «О программе»
2.8 Анализ результатов
В таблице 1 приведены выходные характеристики системы.
Таблица 1 – Варианты вводимых значений
Характеристики |
1 смена |
2 смена |
Интенсивность обслуживания пациентов в 1окне
|
0,142857 |
|
Интенсивность обслуживания пациентов в 2 окне |
0,25 |
|
Интенсивность поcтупления пациентов
|
0,214285 |
0,125 |
Коэффициент загрузки для 1-го окна |
1,5 |
0,875 |
Коэффициент загрузки для 2-го окна |
0,857142 |
0,5 |
Обслужено |
154 |
89 |
Средняя длина очереди |
2 |
Из таблицы видно, что интенсивность обслуживания пациентов во 2 окне больше, чем интенсивность обслуживания в 1 окне, это обусловлено тем, что время обработки заявок во 2 окне меньше. Т.е за одинаковое время 2 окно обслужит больше пациентов, чем первое. Также из таблицы 1 видно, что интенсивность поcтупления пациентов в 1 смене больше, чем во 2. Это происходит потому, что во вторую смену люди приходят через больший интервал времени, по сравнению с первой, проще говоря, во вторую смену людей приходит меньше, чем в первую. За 1 смену было обслужено пациентов больше, чем во вторую, вероятно причина такого результата заключается в том, что в первую смену пациенты приходили чаще, т.е их пришло больше, чем во вторую, поэтому число обслуженных больше. Из таблицы видно что средняя длина очереди составила 2 человека. Небольшая очередь получилась потому, что время прихода пациентов и время обслуживания заявок почти равны.
Таким образом, проанализировав полученные результаты можно сделать вывод о том, что наиболее эффективна работа 1 смены. И очередь в этой регистратуре небольшая.
Заключение
В данной курсовой работе было рассмотрено понятие сети и системы массового обслуживания, ее основные параметры и характеристики, функционирование и классификация. В качестве практического задания была рассмотрена работы регистратуры. Было приведено подробное описание данной системы. В завершении была создана программа, которая позволяет смоделировать данную систему и рассчитать ее основные характеристики
Список литературы
1. Моделирование систем с использованием теории массового обслуживания/Под ред. д.т.н. Д.Н.Колесникова: Учеб. пособие/СПбГПУ. СПб, 2003. – 180 с.
2. Советов Б.А., Яковлев С.А. Моделирование систем, М: Высшая школа, 1985.
3. Пронин Л. Н., Филиппов Н. А. Случайные величины. Элементы теории массового обслуживания — СПб, 1995
4. Лабскер Л. Г., Бабешко Л. О. Теория массового обслуживания экономической сфере — М.: Банки и биржи, 1998
5. http://www.dvo.sut.ru/libr/ius/i231kutu/index.htm
6. Советов Б.А., Яковлев С.А. Моделирование систем, М: Высшая школа, 1985.
Приложение А
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button1: TButton;
Label9: TLabel;
Label10: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Label11: TLabel;
Label12: TLabel;
Memo1: TMemo;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Tobs1,Tobs2,T:integer;
Tcr1, Tcr2:real; i1,i2,i3,i4,m1,m2 : real;
pt,e, et,ot, p1,p2,o,o2,o3,o4,o5,j : integer;
implementation
{$R *.dfm}
procedure TForm1.N3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
messagebox(0,pchar('Эта программа моделирует процесс работы регистратуры. Выполнила Вялых Екатерина БМ-052'),'О программе',0);
end;
procedure TForm1.FormCreate(Sender: TObject);
procedure TimePeriod(t: integer;i: real; var o: integer; var exec: integer);
begin
if ( (t*i) > (t*(m1+m2)) ) then
begin
o:=trunc(t*(i-m1-m2));
exec:=trunc(t*(m1+m2));
end
else
begin
o:=0;
exec:=trunc( t*i );
end;
end;
begin
//инициализация параметров СМО
randomize;
i1:=1/(1+random(4));
randomize;
i2:=1/(2+random(4));
randomize;
i3:=1/(1+random(6));
randomize;
i4:=1/(10+random(4));
randomize;
m1:=1/(4+random(6));
randomize;
m2:=1/(3+random(2));
//расчет
p1:= trunc( (2*60)*i1+(3.5*60)*i2+(0.5*60)*i3 );
p2:= trunc( (4*60)*i3+(2*60)*i4 );
TimePeriod(2*60,i1,ot,et);
e:=e+et;
o:=o+ot;
TimePeriod(trunc(3.5*60),i2,ot,et);
e:=e+et;
o:=o+ot;
TimePeriod(trunc(0.5*60),i3,ot,et);
e:=e+et;
o:=o+ot;
TimePeriod(4*60,i3,ot,et);
e:=e+et;
o:=o+ot;
TimePeriod(2*60,i4,ot,et);
e:=e+et;
o:=o+ot;
o:=trunc( o/4 );
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.LineS.Add('Статистика');
Tobs1:=6+random(4);
Tobs2:=4+random(1);
T:=3+random(2)+4+random(2)+4+random(3);
Tcr1:=T/3;
T:=4+random(3)+12+random(2);
Tcr2:=T/2;
Memo1.LineS.Add('Интенсивность обслуживания пациентов в 1 окне:'+floattostr(1/Tobs1));
Memo1.LineS.Add('Интенсивность обслуживания пациентов в 2 окне:'+floattostr(1/Tobs2));
Memo1.LineS.Add('Интенсивность поcтупления пациентов в 1 смене:'+floattostr(1/Tcr1));
Memo1.LineS.Add('Коэффициент загрузки для 1-го окна в 1 смену:'+floattostr(Tobs1/Tcr1));
Memo1.LineS.Add('Коэффициент загрузки для 2-го окна во 1 смену:'+floattostr(Tobs2/Tcr1));
Memo1.LineS.Add('Обслужено за 1 смену:'+floattostr(p1));
Memo1.LineS.Add('');
Memo1.LineS.Add('Интенсивность поcтупления пациентов во 2 смене:'+floattostr(1/Tcr2));
Memo1.LineS.Add('Коэффициент загрузки для 1-го окна в 2 смену:'+floattostr(Tobs1/Tcr2));
Memo1.LineS.Add('Коэффициент загрузки для 2-го окна во 2 смену:'+floattostr(Tobs2/Tcr2));
Memo1.LineS.Add('Обслужено за 2 смену:'+floattostr(p2));
Memo1.LineS.Add('Средняя длина очереди:'+floattostr(o));
end;
end.