队列课下作业(补博客)

活动要求:

  • 1 补充课上没有完成的作业
  • 2 参考15.3节,用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能
  • 3 用JDB或IDEA单步跟踪排队情况,画出队列变化图,包含自己的学号信息
  • 4 把代码推送到代码托管平台
  • 5 把完成过程写一篇博客:重点是单步跟踪过程和遇到的问题及解决过程
  • 6 提交博客链接

    活动过程:

  • 首先我们先把书上的代码敲了(15.3、15.4)
  • 然后我们开始对15.4进行分析。首先要提的一点是,课本上的注释非常非常非常重要(重要的事情说三遍)
  • 首先我们来翻译一下课本上的注释:
  • // process the simulation for various number of cashiers:过程模拟为各种数量的收银员
  • // load customer queue:加载客户队列
  • // process all customers in the queue:处理所有客户在队列中
  • // output results for this simulation:这个模拟的输出结果
  • 现在我们来观察一下这个代码。
  • 第一个for循环的作用:将所有cashiers(10个)加载进队列中
  • 第二个for循环的作用:将cashiers的时间归零
  • 第三个for循环的作用:加载客户
  • while循环:计算客户办理业务的平均时间。
  • 注意:这个代码计算的是柜台办理“一次”业务的平均时间而不是一个柜员办理业务所需的平均时间。

    遇到的问题:

  • 应该不算是遇到的,是我的结对伙伴刘伟康康哥给我提出来的,他问:for (int cashiers=0; cashiers < MAX_CASHIERS; cashiers++)这个for循环中设置的cashiers为0时为什么时间不是正无穷(cashiers=0相当于柜台没人,那么顾客等待的时间不是正无穷吗?)
  • for (int count=0; count <= cashiers; count++)这里的cashiers和count没有关系,但由于我们在输出的时候给cashiers+1System.out.println ("Number of cashiers: " + (cashiers+1));所以 count=0的时候输出的是cashier=1的结果。所以cashiers=0或者是cashiers=1和count没有关系。但是count必须等于0因为count跟数组下标有关系,cashier=0或者是1我们都可以调整代码得到我们想要的结果。

    单步跟踪图片

    1063999-20171025235459519-938083651.png

转载于:https://www.cnblogs.com/Mosemonkey/p/7712475.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值