0

几天前,我发布了一个关于 fifo 编程以及如何进行的主题,因为该主题有点宽泛和模糊,并且缺乏编码示例,所以我遵循专家的建议并搜索了代码并尝试了一些编码。我很清楚我想做什么

我想使用 C# 作为我的编程语言为 FIFO(先进先出)调度算法创建一个 DES(离散事件模拟)。

所以我在网上搜索,我在 c# 中找不到真正有用的指导,但我在 java 代码中找到了我想要的东西。我现在将发布

初始化过程

    Queue q = new Queue();
    EventQueue eventq = new EventQueue();
    Random rand = new Random();
    Distribution interarrivalTimeDist =
    new ExponentialDistribution(lambda, rand);
    Distribution serviceTimeDist =
    new ExponentialDistribution(mu, rand);
    double t = 0;
    // generate first arrival
    eventq.addEvent(new Event(Event.ARRIVAL,
    interarrivalTimeDist.nextRandom()));

主程序

while (t < simLength) {
Event e = eventq.nextEvent();
t = e.getTime();
switch (e.getType()) {
case Event.ARRIVAL : {
// handle arrival
}
case Event.DEPARTURE : {
// handle departure
}
}
}

到货案例

case Event.ARRIVAL : {
// schedule next arrival
eventq.addEvent(new Event(Event.ARRIVAL,
t + interarrivalTimeDist.nextRandom()));
double serviceTime =
serviceTimeDist.nextRandom();
q.addCustomer(new Customer(t, serviceTime));
if (q.getSize() == 1) {
eventq.addEvent(new Event(Event.DEPARTURE,
t + serviceTime));
}
break;
}

离境案例

case Event.DEPARTURE : {
q.removeCustomer(t);
if (q.getSize() > 0) {
double serviceTime =
q.getCustomerAt(0).getServiceTime();
eventq.addEvent(new Event(Event.DEPARTURE,
t + serviceTime));
}
break;
}

任何线索或指导如何将此代码转换为 c#?? 和帮助将有助于高度赞赏 PS:- 如果我的主题不像你们想象的那么专业,请对专家表现出一些宽容,谢谢

4

1 回答 1

1

你的问题听起来很像“我如何编程这个想法”,这不是一个好的问题。你应该设计很多关于你想做的事情,逐步构建它,然后带着你有的具体问题来到这里,而不是宽泛的想法或大量的代码。

仅回答 FIFO,即queue. 阅读队列并与他们一起练习。

于 2012-04-25T03:59:28.457 回答