27.11.2012, 13:19. Просмотров 676. Ответов 6
Вот задание:
Сервис-центр занимается посреднеческой деятельностью по продаже ж\д билетов и делает это по 3-м телефонным линиям. В сервис-центр поступает 75+-10 двзонков в час. Время обслуживания одного дзвонка составляет 2+-1 минута. Заявка что не обслужывается в даний момент, ожидает в очереди. Если заявка ожидает в очереди больше 35 минут - она получает отказ. Смоделировать работу смо в течении 3-х суток. Определить вероятность отказов, вероятность занятости каналов и количество заявок что получили отказ.
Проблема в том что я не знаю как правильно реализовать поступление заявок в очередь и их выбор на обработку: это время меня сбивает... количество заявок задано за один час а как это все сделать под заданое время мне в голову не приходит... ну и еще не знаю как поступать с заявками которые висели в очереди больше 35 минут: каждую минуту пробегать по очереди и удалять из самой очереди , или уже когда заявка подходит к линии на обработку тогда по условию если она висела больше 35 минут , её просто выбрасывать ? первый вариант более подходит к моему заданию но требует много ресурсов, второй почти не требует ресурсов но не совсем по моему заданию, так как заявка может висеть и больше 35 минут...
Кое-что я сделал, а именно я написал(почти) свою очередь :
// queue.cpp
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| #include "queue.h"
#include "element.h"
void Queue::Enqueue(Element el)
{
if (head == NULL) // первый элемент
{
head = new Element;
tail = head; // head == tail в очереди присутствует один элемент
head->iValue = el.iValue;
head->next = NULL;
}
else
{
tail->next = new Element;
tail->next->iValue = el.iValue;
tail->next->next = NULL;
tail = tail->next;
}
size++;
}
int Queue::isEmpty()
{
if (getQueueSize() == 0)
return 1;
else
return 0;
}
int Queue::getQueueSize()
{
return size;
} |
|
// queue.h
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| #ifndef QUEUE_H
#define QUEUE_H
#include "element.h"
#include <iostream.h>
class Queue
{
public:
int size;
Element* head;
Element* tail;
Queue()
{
size = 0;
head = NULL;
tail = NULL;
} //default constructor
void Enqueue(Element);
Element Dequeue();
int isEmpty();
int getQueueSize();
};
#endif |
|
// element.h
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
| #ifndef ELEMENT_H
#define ELEMENT_H
class Element
{
public:
int iValue;
Element* next; // Следующий элемент в очереди
};
#endif |
|