у меня такая задача:
В рамках системы массового обслуживания разработать программу для моделирования работы банка,обслуживающего клиентов.
Имеется банк,в котором N касс. Клиенты приходят в банк с интервалом F1(N1,N2) минут. Каждый кассир обслуживает клиента в течение F2(N3,N4) минут. Все клиенты находятся в очереди. После того, как кассир обслужил клиента, он может заняться другим клиентом, находящимся в очереди первым. Через определенный промежуток времени (N5 минут) у каждого кассира имеется перерыв (продолжительность N6 минут). После окончания времени работы (T минут ),все клиенты ,которые находятся в банке,должны быть обслужены. Здесь Fi(x,y) -некоторый закон распределения случайной велечины(может быть как равномерным,так и нормальным),зависящей от параметров x и y.
Нужен вывод результатов моделирования с указанием всех событий,призошедших в системе и статистика работы кассиров.
я хочу попробовать сделать так сказать взаимодействие между классами...
вот например
объект клиент,
объект-обработчик кассир,
объект-событие приход,очередь,начало обслуживания,конец обслуживание,и тд
только вот конкртено пока ничего сделать не могу.может есть какие-нибудь идеи?
или подскажете с чего начать?
class TClient {
// нужные тебе поля, скажем, ID клиента
};
template <class T>
class TQueue {
// реализация очереди, если нужно - могу привести
// реализацию С. Липпмана из "С++ Primer (2nd Edition)"
};
class TCasher {
// Тут - все, что тебе нужно, например, состояние кассира
// (работает он или отдыхает), время окончания последнего перерыва, ...
};
а как насчет взаимодействия классов?
мне особо непонятен именно этот момент...
не могли бы вы привести какой-нибудь пример?=)
кстати,реализация очереди не помешает=)...
только опять же непонятно,как её пименять...
Сейчас набросаю что-нибудь простое, чтобы понятна была структура...
а статус кассира стоит делать логической величиной?...)
и кстати как поступить с его конструктором?
а что он делает и чего не делает?
и можно небольшие пояснения?=)
и еще вопрос:когда в классе переменные объвляются вне public,то с ними можно рабтать только внутри этого класса?
мне бы смысловую нагрузку того,что написано....
а из конкретного мне не понятны выражения:
back -> next = pt;
exit(-1);
if(!this_client) state = _waiting, changed = 1;
TCasher(int _id, int _work):ID(_id), work_time(_work), state(_waiting)
а где происходит передача начального значения current_time?здесь?
TManager :: TManager():current_time(0), after_prev_enter(0)
в чем может быть причина того,что BorlandС++Builder5 ф-ия random считывается с stdlib.h,
а в CodeBlocks v1.0 нет?можно ли это исправить?
я вот попыталась написать ф-ию перевода времени из минут в часы-минуты...
int M,H;<-- глобальные переменные
...
clock(current_time);
cout << "casher #" << i << " goes to rest at:: " << H<<":"<<M << endl;
...
void clock(int time)
{
M=time;
H=0;
while (M>59)
{
M-=60;
H++;
};
}
cout << "casher #" << i << " goes to rest at:: " << current_time / 60 <<":"<< current_time % 60 << endl;
back -> next = pt;
exit(-1);
if(!this_client) state = _waiting, changed = 1;аналогично
if(!this_client) {
state = _waiting; changed = 1;
}
а в принципе что за оператор -> ?=)
В Паскале разницу между
X.nextи
X^.nextчувствуешь? Второй - выбор поля по указателю... Это как раз и есть -> в С++
может всё-таки дадите комментарии по программе?=)
а то я никак не могу вникнуть в алгоритм=(
ну или опишите хотя бы сам алгоритм организации очереди и действия менеджера,пожалуйста...
Вот откомментированная программа (текст - файл в Unicode):
bank.txt ( 16.02 килобайт )
Кол-во скачиваний: 695
огромное спасибо!
а как насчет того,чтобы через какой-то промежуток времени давать клиенту возможность выбора уйти из очереди или нет,за исключением варианта,что он первый в очереди?
в общем вот здесь я добавила счетчик времени пребывания клиента в очереди.сделала для этого массив клиентов.есть ли в этом смысл?
if(after_prev_enter > f1())
{
after_prev_enter = 0;
TClient client(++client_entered);
clients[client_entered].time_in_queue=0;
queue.put(client);
}
current_time += 1;
int k;
for (int i=0;i<client_entered;i++)
{
clients[i].time_in_queue++;
if (clients[i].time_in_queue==n7)
{
k=random(2)-1;
switch(k)
{
case 0: break;//клиент решает остаться
case 1: client(i-1)=queue.get;//клиент решает уйти<<---здесь вообще очень криво=(
}
}
}
Извините а на Паскале где-нибудь эту программку получить нельзя?
М | Здесь лежит программа на Паскале: http://forum.pascal.net.ru/index.php?s=&showtopic=15420&view=findpost&p=90430 volvo |
Buy Propecia Paypal
Your writings and news are really interesting to me. There are numerous advantages to the contents. Thank you so much. My site:: https://www.chokdeebacarrat.com/ole777/
Надо получить правильную дендрограмму, т.е все возможные кластера.
Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. https://www.tastybooktours.com/lifestyle/the-south-koreans-love-for-gambling/
I’m hoping you would share your thoughts on how important it is to reply to comments on your blog.
https://poker-dewa88.net
Добавлено через 16 мин.
I’m hoping you would share your thoughts on how important it is to reply to comments on your blog.
https://hunter-game.org
It is critical to have high-quality content in terms of attracting people to come see the website, and that is exactly what this website provides. My site: https://name-pics.com/ko-kr/바카라/