一种多面额出钞算法的制作方法

文档序号:12916442阅读:282来源:国知局
本发明涉及一种出钞算法,尤其涉及一种用于自动柜员机的多面额出钞算法。
背景技术
:目前市面上的自动柜员机大多仅支持100元面额的钞票出钞,不支持20元,50元等面额的零钞取款,该种缺憾对实际银行卡用户存在一些不便。一方面是,在例如需要取款550元时,在atm机上必须取款600元,差额则需用户在使用时自行找零,带来不便;另一方面则是,银行卡内余额不足100元时,无法取款,对于一些不再继续使用的银行卡,卡内的少量余额因不足100元无法在atm机上取款,而去银行人工取款又过于麻烦,这种卡内的少量余额何去何从变成为银行卡使用者的一种困扰。为解决上述问题,我们需要一种可以任意金额取款支持各个面额出钞的出钞算法。技术实现要素:为了解决上述技术问题,本发明目的在于提供一种多面额出钞算法。本发明所述的一种多面额出钞算法,其特征在于,包括以下步骤:a)、将n个不同面额的钞箱编号;b)、根据面额大小将对应钞箱排序,面额较大的钞箱靠前排序,得到序号1~n~n;c)、依序号读取钞箱对应的当前张数m1~mn~mn,读取所需取款总额并将取款总额对初始值a赋值;d)、根据初始值a对排序后序号为n的钞箱求取款张数mn’;计算余额y=a-mn’×对应面额,令余额y对初始值a赋值,令序号n+1;e)、重复步骤d,直至余额y=0时结束流程。所述步骤d,取款张数mn’由初始值a对序号n对应的钞箱面额求商得到:mn’=a/对应面额;当商大于当前张数mn时,取款张数mn’=mn;当商不大于当前张数mn时,取款张数mn’为商。所述步骤d计算取款张数时,序号n由1开始计数。所述算法在上述基础上,当余额y等于初始值a,并且序号n达到最大值n时,将序号n-1,同时将取款张数mn’-1;若此时取款张数mn’=0,则序号n进一步-1。其优点在于,可以实现现有各种面额的灵活使用。提高了货币周转的效率,柜员机不再局限于百元面额的服务。采用了矩阵作为基础算法,确保出钞的准确性。通过该算法,不管钞箱内存放的各种面额的张数具体是多少,只要其总额不比所需数额少,即可实现取款,灵活度非常高。附图说明图1是本发明的算法流程图。具体实施方式本发明所述的一种多面额出钞算法,其工作流程如图1所示。先将数据初始化,初始化步骤包括将n个不同面额的钞箱进行编号;包括将初始值a置零。由于在柜员机使用的过程中,同一个钞箱会在清空一种面额后,有可能装入其他面额的钞票,因此同一个编号的钞箱不能保证其每次都装有固定面额的钞票,但可以确保一个钞箱内存放的面额都是相同。所以在编号后,需要对钞箱进行排序。排序依据其装有的面额大小为准,较大面额的钞箱排序靠前,例如目前最大的100元面额钞箱会得到1的序号,50元面额钞箱会得到2的序号等,面额越小,钞箱序号越大,有n个不同面额的钞箱的话,其面额最小的钞箱得到最大的序号n。读取每个钞箱对应的当前面额张数mn,例如1号钞箱存有x1张钞票,记为m1=x1;n号钞箱存有x2张钞票,记为mn=x2;n号钞箱存有x3张钞票,记为mn=x3等。获取用户需求的取款总金额,并且以该总金额对初始值a赋值;例如用户需要取款3456.12元,就将3456.12赋值到a,即,令a=3456.12。根据初始值a对排序后序号为n的钞箱求出取款张数mn’。其中对序号为1的钞箱求出的张数记为m1’,对序号为n的钞箱求出的张数记为mn’,对最后一个序号n的钞箱求出的张数记为mn’。该步骤对mn’的求值办法是将初始值a对序号n对应的钞箱面额求商,即mn’=a/对应面额;例如上述的a=3456.12时,求序号1对应的100元面额张数,m1’=3456.12/100=34;由于张数只能是整数,所以求出商,并将商向下取整,得到m1’=34张,即取100元面额34张。求出的张数要跟实际存储与该钞箱的实际张数做比较,如果实际张数小于求出的张数,则将求出的张数调整为实际的张数,否者求出的张数以商为准。计算出已完成配额张数后的余额y,余额y=a-mn’×对应面额,例如上述的a=3456.12时,计算取出34张100元面额后,得到的余额y=3456.12-34*100,得到余额y=56.12。计算出余额y后将余额y对初始值a赋值,并另序号自加一。该步骤目的在于使算法可以对各种面额依次循环处理。每次计算次一级面额的时候都以上一次处理完毕的余额y作为初始值,序号n+1保证了序号的自动对应,而且计算取款张数时,序号n由1开始计数。然后重复步骤d,直至使余额y为0时,判断取款成功并结束流程。用以下实施例一充分说明上述多面额出钞方案:设用户所需取款总额为270元;柜员机内有n=4个钞箱,对每个钞箱进行编号得到钞箱1、钞箱2、钞箱3和钞箱4,各钞箱情况如下表格:钱箱1钱箱2钱箱3钱箱4面额201050100张数100100100100为了尽可能减少配钞张数,将钞箱根据面额从小到大排序得到序号;同时依次读取钞箱对应的当前张数m1~mn~m4:钱箱4钱箱3钱箱1钱箱2序号n1234面额100502010张数mn100100100100读取所需取款总额并将取款总额对初始值a赋值,使a=270。由序号n=1开始计算取款张数m1’:m1’=270/100=2张。由于计算出的取款张数少于当前张数,m1’<m1,因此实际需要取款的100元面额张数为2。计算余额y:y=270-2×100=70,令余额y对初始值a赋值,即a=70,令序号自加一,即当前序号变为1+1=2。由于余额y不等于0,重复上述求张数步骤。由序号n=2开始计算取款张数m2’:m2’=70/50=1张。由于计算出的取款张数少于当前张数,m2’<m2,因此实际需要取款的50元面额张数为1。计算余额y:y=70-1×50=20,令余额y对初始值a赋值,即a=20,令序号自加一,即当前序号变为2+1=3。由于余额y不等于0,重复上述求张数步骤。由序号n=3开始计算取款张数m3’:m3’=20/20=1张。由于计算出的取款张数少于当前张数,m3’<m3,因此实际需要取款的20元面额张数为1。计算余额y:y=20-1×20=0,令余额y对初始值a赋值,即a=0,令序号自加一,即当前序号变为3+1=4。由于余额y等于0,判断配钞成功,结束流程,得到如下配钞结果:钱箱4钱箱3钱箱1钱箱2序号n1234面额100502010张数mn100100100100取款张数mn’211m1’=2,m2’=1,m3’=1;即取款270元得到100元面额2张、50元面额1张和20元面额1张。通过上述算法,可以实现自动柜员机多面额出钞,提高了柜员机的工作能力。当出现某些钞箱配额不足,或者由于奇偶数分配失败等各种原因,而造成配钞失败的话,本算法还设置了自纠正调节功能。其工作流程是当余额y等于初始值a,并且序号n达到最大值n时,将序号n-1,同时将取款张数mn’-1;若此时取款张数mn’=0,则序号n进一步-1。通过以下实施例二充分说明上述自纠正调节功能:设用户所需取款总额为160元;柜员机内有n=3个钞箱,对每个钞箱进行编号得到钞箱1、钞箱2和钞箱3,各钞箱情况如下表格:钱箱1钱箱2钱箱3面额2050100张数100100100为了尽可能减少配钞张数,将钞箱根据面额从小到大排序得到序号;同时依次读取钞箱对应的当前张数m1~mn~m3:钱箱3钱箱2钱箱1序号n123面额1005020张数mn100100100读取所需取款总额并将取款总额对初始值a赋值,使a=160。由序号n=1开始计算取款张数m1’:m1’=160/100=1张。由于计算出的取款张数少于当前张数,m1’<m1,因此实际需要取款的100元面额张数为1。计算余额y:y=160-1×100=60,令余额y对初始值a赋值,即a=60,令序号自加一,即当前序号变为1+1=2。由于余额y不等于0,重复上述求张数步骤。由序号n=2开始计算取款张数m2’:m2’=60/50=1张。由于计算出的取款张数少于当前张数,m2’<m2,因此实际需要取款的50元面额张数为1。计算余额y:y=60-1×50=10,令余额y对初始值a赋值,即a=10,令序号自加一,即当前序号变为2+1=3。由于余额y不等于0,重复上述求张数步骤。由序号n=3开始计算取款张数m3’:m3’=10/20=0张。由于计算出的取款张数少于当前张数,m3’<m3,因此实际需要取款的20元面额张数为0。计算余额y:y=10-0×20=10,令余额y对初始值a赋值,即a=10,令序号自加一;由于n已经达到最大值n=3,而且余额y=初始值a,因此判断为配钞失败,启动自纠正调整功能:将序号自减一得到n=2,同时对应的取款张数m2’-1。由序号n=2开始计算取款张数m2’:m2’-1=60/50-1=0张。由于计算出的取款张数少于当前张数,m2’<m2,因此实际需要取款的50元面额张数为0。计算余额y:y=60-0×50=60,令余额y对初始值a赋值,即a=60,令序号自加一,即当前序号变为2+1=3。由于余额y不等于0,重复上述求张数步骤。由序号n=3开始计算取款张数m3’:m3’=60/20=3张。由于计算出的取款张数少于当前张数,m3’<m3,因此实际需要取款的20元面额张数为3。计算余额y:y=60-3×20=0,令余额y对初始值a赋值,即a=0,令序号自加一,n已经到达最大值。由于余额y等于0,判断配钞成功,结束流程,得到如下配钞结果:钱箱钱箱2钱箱1序号n123面额1005020张数mn100100100取款张数mn’103m1’=1,m2’=0,m3’=3;即取款160元得到100元面额1张、50元面额0张和20元面额3张。通过上述带自纠正调整功能的出钞算法,可以进一步提高柜员机的工作能力。对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1