"顾客进门"事件的处理: 1.生成"本顾客理发所需时间 durtime" 和 "下一顾客到达的时间间隔 intertime" 两个随机数; 2.若下一顾客到达的时刻没有超过营业时间,则产生一个新的"进门事件"插入事件表; 3.若此时理发馆内尚有空理发椅,则空椅子数减1且产生一个新的"出门事件"插入事件表,并累计顾客逗留时间; 4.否则将该"顾客"插入"候理队列"; 5.累计顾客人数和排队长度。 |
1.可从C语言的随机数函数得到。 2.假设当前事件发生的时刻为 occurtime,则下一顾客进门事件发生的时刻则为occurtime + intertime。 3.表明该顾客在当前时刻开始理发,经过 durtime 时间之后便可离开理发馆,则应发生时刻为 occurtime + durtime 的出门事件,且该顾客在理发馆内逗留的时间即为他理发所需时间。 |
|||
"顾客出门"事件的处理: 1.若候理队列为空,则空椅子数增1; 2.否则删除队头"顾客",并产生一个新的"出门事件"插入事件表,且累计顾客逗留时间; 3.累计空椅子数。 |
当出门事件发生时,表明有理发椅空出,若此时队列不空,则排在队头的顾客开始理发,此时也应产生一个出门事件插入事件表。同时该顾客的逗留时间应为他在这之前在馆内的"等待时间"(此时刻-顾客到达时刻)和他理发所需时间之和。 |