美文网首页
Java模拟客户银行取款案例

Java模拟客户银行取款案例

作者: 清阳_ | 来源:发表于2019-06-09 23:43 被阅读0次

首先我们来看一下这个题的题目:

  • 某银行有4个柜台,假设某天有若干位客户来办理业务,每个客户到达银行的时间和取款需要的 时间分别用两个数组arrvie_time(已经按到达时间排序)和process_time来描述。假设每个客户在取款之前先拿号排队,然后在任意一个 柜台有空闲的时候,号码数最小的客户上去办理,假设所有的客户拿到号码之后都不会失去耐心走掉 , 请写程序计算所有客户的平均等待时间。

  • 要求实现:输入 arriveTime[1,2,3,4,4,8] , processTime[50, 20, 11, 25, 30, 40] , 输出:4.0 . 像这样


    1.PNG

解决思路:

那么这道题的解决思路是怎样的呢,前四个不用等待有空闲柜台,第五个客户需要等待,必须等到第一个先办理完取款的人离开才能办理,那么他的等待时间就是第一个办理完人的到达时间+办理时间-自身的到达时间。后面的依次类推。如果前面的人有等待的时间,还要把这个时间算进去。 每循环一次,都需要将办理柜台取款的人的办理后的时间进行重新排序计算出最先办理完取款的人。 排序这里用的是java的Comparator接口 那么就需要两个数组,一个存所有客户按到达时间排序的数组,一个存办理取款的人的数组。每当办理取款的数组排序完毕后就相当于有人已经取完款了,这时最新办完取款的客户移除,将下一个客户添加到柜台取款的数组中,随后进行排序。 最后将所有客户的等待时间进行算数平均值计算。

解决:
  • 1:定义一个Person类,属性存入到达时间,办理业务时间,等待时间.


    2.PNG
  • 2:在测试类main方法中,首先做一些基础操作


    3.PNG
  • 3:创建一个存入客户的数组,数组长度等于arriveTime数组或process数组的长度


    4.PNG
  • 4:初始化操作并将客户数组按到达时间进行排序,截取排好序的数组的前四个数据存入新数组,代表正在柜台办理业务的客户:


    5.PNG
  • 这个init()是自定义的方法,下文的sort()也是:


    6.PNG
7.PNG
  • 5:因为前四个人没有等待时间,所以从第五个人开始循环


    8.PNG
  • 6:计算所有人的等待时间之和,并求出平均数:


    9.PNG

相关文章

  • Java模拟客户银行取款案例

    首先我们来看一下这个题的题目: 某银行有4个柜台,假设某天有若干位客户来办理业务,每个客户到达银行的时间和取款需要...

  • [Pt_01] Python循环结构案例:模拟银行存取款业务,设

    目录结构 案例:利用循环结构语法,实现模拟银行存款&取款业务 一、案例描述 模拟3张银行卡,卡号分别为:1001、...

  • 算法:银行取款排队模拟

    某银行有4个柜台,假设某天有若干为客户来办理业务,每个客户到达银行的时间和取款需要的时间分布分别用两个数组arri...

  • 打印个人银行流水账单

    银行流水账单俗称银行卡存取款交易对账单,也称银行账户交易对账单。指的是客户在一段时间内与银行发生的存取款业务交易清...

  • JAVA DAY TWO

    银行存取款系统(附带理财) import java.util.Scanner; public class Atmm...

  • 小萍子生活记

    我学会了取款 我学会了取款,为什么我学会了取款,昨天爸爸带我去了银行,今天奶奶又带我去了银行,结果奶奶不会取款。 ...

  • Java BIO、NIO、AIO 学习

    先来个例子理解一下概念,以银行取款为例:同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理...

  • 什么样的银行流水才算有效?银行流水是如何左右贷款的?

    一、什么是银行流水? 银行流水俗称银行卡存取款交易对账单,也称银行账户交易对账单。指的是客户在一段时间内与银行发生...

  • 有参方法和包的概念

    模拟银行账户业务创建包bank.com,编写Account类,添加带参方法实现存款和取款业务,存款时帐户初始金额为...

  • Spring -- 手写 IOC 和 AOP

    一、银行转账案例 先使用原始 servlet 方式模拟一个银行转账的功能,关键代码如下: TransferServ...

网友评论

      本文标题:Java模拟客户银行取款案例

      本文链接:https://www.haomeiwen.com/subject/etioxctx.html