Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ.doc
Скачиваний:
69
Добавлен:
18.12.2018
Размер:
631.81 Кб
Скачать

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.

45