Автор работы: Пользователь скрыл имя, 09 Января 2012 в 01:09, курсовая работа
Теория массового обслуживания впервые применялась в телефонии, а затем и в других областях хозяйственной деятельности, где и сейчас занимает важное место. Примерами СМО могут служить телефонные станции, ремонтные мастерские (заводы, базы, бригады), погрузочно-разгрузочные комплексы (порты, товарные станции), транспортные системы, автозаправочные станции, больницы, торговые точки, предприятия бытового обслуживания и т. д..
Введение: СМО и их актуальность.
Обзор типов СМО.
СМО с ожиданием: математическая модель и алгоритм работы.
3. Постановка задачи, математическая модель задания, алгоритм выполнения задания.
4. Программная реализация.
Заключение.
Приложения
6. 1. Листинг программы
7. Список используемых источников.
double r2 = ((1 - p) * (1 - step2));
double r = r1 / r2;//средняя длина очереди
double w = (p - step2) / (1 - step2);//среднее число заявок, находящихся на обслуживании
double k = r + w;//число заявок, связанных с системой
double Toj = r / la;//время ожидания заявки
double Tobsl = q / mu;//время обслуживания заявки
double Tsmo = Toj + Tobsl;//время нахождения заявки в СМО
string
Votk = Convert.ToString(Potk);//
string
Otnosit = Convert.ToString(q);//
string Absolut = Convert.ToString(A);//...
string Sredn = Convert.ToString(r);//...
string Obsluj = Convert.ToString(w);//...
string Svyaz = Convert.ToString(k);//...
string toj = Convert.ToString(Toj);//...
string tobsl = Convert.ToString(Tobsl);//...
string tsmo = Convert.ToString(Tsmo);//...
richTextBox1.Text = Votk;//Вывод полученных данных
richTextBox2.Text = "Относительная пропускная способность - " + Otnosit + "\r\n" +
"Абсолютная пропускная способность - " + Absolut + "\r\n" + "Среднее время нахождения заявки в очереди - " + Sredn + "\r\n" +
"Среднее время обслуживания заявки - " + Obsluj + "\r\n" + "Кол-во заявок связанных с системой - " + Svyaz + "\r\n" +
"Время ожидания заявки - " + toj + "\r\n" + "Время обслуживания заявки - " + tobsl + "\r\n" + "Время нахождения заявки в СМО - " + tsmo;
//вывод полученных выше данных
}
private void button2_Click(object sender, EventArgs e)
{
PointPairList list = new PointPairList();//лист для записи переменных
PointPairList list2 = new PointPairList();//лист для записи переменных
GraphPane pane = new GraphPane();
zedGraphControl1.GraphPane = pane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear();//
double xmin = 0;//задание минимальной координаты Х
double
xmax = 200;//задание
максимальной координаты Х
double ymin = 0;//задание минимальной координаты Y
double ymax = 2;//задание максимальной координаты
//Далее
следует ввод и рассчет
double
Y = Convert.ToDouble(textBox1.
double
X = Convert.ToDouble(richTextBox1.
double Y3 = 0;
double X3 = 0;
double mu = Convert.ToDouble(textBox2.
double
m = Convert.ToDouble(textBox3.
double x;//переменная для рассчета
for (double y = 0; y <= Y; y++)//цикл для определения точек
//далее следуют рассчеты
{ double p = y / mu;
double step = Math.Pow(p, m);
double step1 = Math.Pow(p, m + 1);
double step2 = Math.Pow(p, m + 2);
x = (step1 * (1 - p)) / (1 - step2);//определение координат по оси x
list.Add(y, x);//вывод этих координат в лист
}
LineItem myCurve = pane.AddCurve("P_отк", list, Color.Green, SymbolType.Circle);//
//парамметров точки
myCurve.Line.IsVisible = false;
myCurve.Symbol.Fill.Color = Color.Green;//цвет зеленый
myCurve.Symbol.Fill.Type = FillType.Solid;//тип точки
myCurve.Symbol.Size = 5;//размер
точки
double x1;//переменная для рассчетов
for (double y = 0; y <= Y; y++)//цикл для определения точек
//далее следуют рассчеты
{
double p = y / mu;
double step = Math.Pow(p, m);
double step1 = Math.Pow(p, m + 1);
double step2 = Math.Pow(p, m + 2);
x1 = (step1 * (1 - p)) / (1 - step2);
double x2 = 1 - x1;//определение координат x для пропускной способности
list2.Add(y, x2);//занесение этих координат в лист2
}
LineItem myCurve1 = pane.AddCurve("Q", list2, Color.Red, SymbolType.Circle);//
//парамметров точки
myCurve1.Line.IsVisible = false;
myCurve1.Symbol.Fill.Color = Color.Red;//цвет зеленый
myCurve1.Symbol.Fill.Type = FillType.Solid;//тип точки
myCurve1.Symbol.Size = 5;//размер точки
// Устанавливаем интересующий нас интервал по оси X
pane.XAxis.Scale.Min = xmin;
pane.XAxis.Scale.Max = xmax;
//
Устанавливаем интересующий
pane.YAxis.Scale.Min = ymin;
pane.YAxis.Scale.Max = ymax;