一种自动售票机的测试方法及装置制造方法

文档序号:6629531阅读:817来源:国知局
一种自动售票机的测试方法及装置制造方法
【专利摘要】本发明实施例公开了一种自动售票机的测试方法及装置,测试方法包括:接收一输入操作;响应输入操作,确定一具有货币特征的参数值;确定通过基本单位数值组合成参数值的组合方式,基本单位数值为自动售票机能够接收的基本货币的币值;将组合方式提供给自动售票机的测试者;接收测试者基于组合方式所产生的测试操作,以通过测试操作对自动售票机进行测试。
【专利说明】一种自动售票机的测试方法及装置

【技术领域】
[0001] 本发明涉及测试【技术领域】,尤其涉及一种自动售票机的测试方法及装置。

【背景技术】
[0002] 目前中国国内各大城市地铁发展非常迅猛,为了节约人力成本,提高地铁智能化 水平,各大城市地铁几乎都建设有AFC(Automatic Fare Collection:自动售检票)系统, 而AFC系统中主要设备之一就是自动售票机。
[0003] 自动售票机在硬件现场安装完成之后,正式投入运营之前,需要进行大量测试来 验证其软硬件功能的正确响应。其中不可或缺的测试是对乘客投币、出票、找零的测试。目 前通常自动售票机能够接收的币种有5角硬币、1元硬币、5元纸币、10元纸币等。针对某一 具体票价,例如15元票价(乘客购买5张3元的单程票),乘客可采用的投币组合方式有多 种可能性,例如:5元、10元纸币各一张、或者5个1元硬币加1张10元纸币等等。
[0004] 现有技术中,对AFC系统进行测试的测试案例中仅包括针对某一票价最常用到的 几种投币组合方式,故而针对某一票价会存在很多组合方式未经测试,故而存在着对AFC 系统进行测试不够完善的技术问题;
[0005] 并且,因为其中针对某一票价会存在很多组合方式未经测试,故而在这些AFC系 统投入使用之后,如果AFC系统接收到这些未经测试的票价的组合,则出现故障的概率较 高,从而降低了 AFC系统的使用效率,并且导致AFC系统的维修成本的增加。


【发明内容】

[0006] 本发明实施例提供一种自动售票机的测试方式及装置,以解决现有技术中对自动 售票机的测试不够完善的技术问题。
[0007] 第一方面,本发明实施例提供一种自动售票机的测试方法,包括:
[0008] 接收一输入操作;
[0009] 响应所述输入操作,确定一具有货币特征的参数值;
[0010] 确定通过基本单位数值组合成所述参数值的组合方式,所述基本单位数值为所述 自动售票机能够接收的基本货币的币值;
[0011] 将所述组合方式提供给所述自动售票机的测试者;
[0012] 接收所述测试者基于所述组合方式所产生的测试操作,以通过所述测试操作对所 述自动售票机进行测试。
[0013] 可选的,所述确定通过基本单位数值组合成所述参数值的组合方式,具体为:
[0014] 确定通过四种基本单位数值组合成所述参数值的所有组合方式。
[0015] 可选的,所述基本单位数值按照从小到大顺序排列分别为:Xa、Xb、X。、x d,所述确定 通过基本单位数值组合成所述参数值的组合方式,具体包括:
[0016] S1 :确定所述组合方式中Xa的倍数为a、Xb的倍数为b、X。的倍数为c、Xd的倍数为 d ;
[0017] S2 :确定a的上限值max_a、b的上限值max_b、c的上限值max_c、d的上限值max_ d ;
[0018] S3 :设置a = 0,跳转至步骤S4 ;
[0019] S4 :判断a · Xa是否大于等于参数值,在a · Xa大于等于参数值时,跳转至步骤S5 ; 否则,跳转至步骤S6 ;
[0020] S5 :停止确定组成所述参数值的组合方式,其中,若a ·Χ3等于参数值,则确定通过 a · Xa组成参数值的一种组合方式;
[0021] S6 :设置b = 0,跳转至步骤S7 ;
[0022] S7 :判断a · Xa+b · Xb是否大于等于参数值,在a · Xa+b · Xb大于等于参数值时,跳 转至步骤S8 ;否则,跳转至步骤S13 ;
[0023] S8 :跳转至步骤S9,其中,若在a · Xa+b · Xb等于参数值,则确定通过a · Xa+b · Xb 组合成参数值的一种组合方式;
[0024] S9 :将a的值加1,并跳转至步骤S10 ;
[0025] S10 :判断a是否不大于max_a,在a大于max_a时,跳转至步骤S11 ;在a不大于 max_a时,跳转至步骤S12 ;
[0026] S11 :停止确定组成所述参数值的组合方式;
[0027] S12 :设置c = 0,跳转至步骤S13 ;
[0028] S13 :判断a · Xa+b · Xb+c · X。是否大于等于参数值,在a · Xa+b · Xb+c · X。大于等 于参数值时,跳转至步骤S14 ;否则,跳转至步骤S17 ;
[0029] S14 :跳转至步骤S15,其中,在a · Xa+b · Xb+c · X。等于参数值时,确定通过 a · Xa+b · Xb+c · X。组合成参数值的一种组合方式;
[0030] S15 :将b的值加1,并跳转至步骤S16 ;
[0031] S16 :判断b是否不大于max_b,在b大于max_b时,跳转至步骤S9 ;在b不大于 max_b时,跳转至步骤S7 ;
[0032] S17 :设置d = 0,跳转至步骤S18 ;
[0033] S18 :判断 a i+b *Xb+c ·Χε+(1 % 是否大于等于参数值,在 a *Xb+c ·Χε+(1 % 大于等于参数值时,跳转至步骤S19 ;否则,跳转至步骤S22 ;
[0034] S19 :跳转至步骤S20,其中,在a · Xa+b · Xb+c · Xe+d · Xd等于参数值时,确定通过 a · Xa+b · Xb+c · Xe+d · Xd组合成参数值的一种组合方式;
[0035] S20 :将c的值加 1,并跳转至步骤S21 ;
[0036] S21 :判断c是否不大于max_c,在c不大于max_c时,跳转至步骤S13 ;在c大于 max_c时,跳转至步骤S15 ;
[0037] S22 :将d的值加1,跳转至步骤S23 ;
[0038] S23 :判断d是否不大于max_d,在d不大于max_d时,跳转至步骤18 ;在d大于 max_d时,跳转至步骤S20。
[0039] 可选的,通过以下方式确定i的上限值max_i,其中i为a、b、c、d中的任意一个数 值:
[0040] 确定i的接收模块缓存上限值;
[0041] 用参数值除以Xi取整获得投币上限值;
[0042] 比较所述接收模块缓存上限值和所述投币上限值的大小,将所述接收模块缓存上 限值和所述投币上限值中的较小值确定为所述max_i。
[0043] 可选的,所述响应所述输入操作,确定一具有货币特征的参数值,具体为:
[0044] 确定所述输入操作所对应的数值信息,所述数值信息即为所述参数值;或
[0045] 所述响应所述输入操作,确定一具有货币特征的参数值,具体包括:
[0046] 确定所述输入操作所对应的的乘车起始位置信息和乘车结束位置信息;
[0047] 基于所述乘车起始位置信息和所述乘车结束位置信息确定所述参数值;或
[0048] 所述响应所述输入操作,确定一具有货币特征的参数值,具体包括:
[0049] 确定所述输入操作所对应的乘车距离信息;
[0050] 基于所述乘车距离信息确定所述参数值。
[0051] 可选的,在所述确定通过基本单位数值组合成所述参数值的组合方式之后,所述 方法还包括:
[0052] 存储所述组合方式。
[0053] 第二方面,本发明实施例提供一种自动售票机的测试装置,包括:
[0054] 第一接收模块,用于接收一输入操作;
[0055] 响应模块,用于响应所述输入操作,确定一具有货币特征的参数值;
[0056] 确定模块,用于确定通过基本单位数值组合成所述参数值的组合方式,所述基本 单位数值为所述自动售票机能够接收的基本货币的币值;
[0057] 提供模块,用于将所述组合方式提供给所述自动售票机的测试者;
[0058] 第二接收模块,用于接收所述测试者基于所述组合方式所产生的测试操作,以通 过所述测试操作对所述自动售票机进行测试。
[0059] 可选的,所述确定模块,具体用于:
[0060] 确定通过四种基本单位数值组合成所述参数值的所有组合方式。
[0061] 可选的,所述响应模块,具体用于:
[0062] 确定所述输入操作所对应的数值信息,所述数值信息即为所述参数值;或
[0063] 所述响应模块,具体包括:
[0064] 第一确定单元,用于确定所述输入操作所对应的的乘车起始位置信息和乘车结束 位置信息;
[0065] 第二确定单元,用于基于所述乘车起始位置信息和所述乘车结束位置信息确定所 述参数值;或
[0066] 所述响应模块,具体包括:
[0067] 第三确定单元,用于确定所述输入操作所对应的乘车距离信息;
[0068] 第四确定单元,用于基于所述乘车距离信息确定所述参数值。
[0069] 可选的,所述装置还包括:
[0070] 存储模块,用于在确定通过基本单位数值组合成所述参数值的组合方式之后,存 储所述组合方式。
[0071] 本发明有益效果如下:
[0072] 由于在本发明实施例中,在接收到输入操作之后,会确定一具有货币特征的参数 值,然后确定通过基本单位数值组合成所述参数值的组合方式,所述基本单位数值为所述 自动售票机能够接收的基本货币的币值;接着将所述组合方式提供给所述自动售票机的测 试者,最终可以响应测试者通过组合方式所产生的测试操作,进而对自动售票机进行测试, 也就是说,在对自动售票机进行测试时,会确定出通过基本单位数值组合成参数值的组合 方式,进而基于组合方式对自动售票机进行测试,而不是仅仅选择出几组常用的组合方式 对自动售票机进行测试,故而达到了对自动售票机的测试更加完善的技术效果;
[0073] 而由于对自动售票机的测试更加完善,故而降低了自动售票机在投入使用之后出 现故障的概率,进而提高了自动售票机的使用效率,并且降低了自动售票机的维修成本。

【专利附图】

【附图说明】
[0074] 图1为本发明实施例中自动售票机的测试方法的流程图;
[0075] 图2为本发明实施例自动售票机的测试方法中操作界面示意图;
[0076] 图3为本发明实施例自动售票机的测试方法中确定通过四种基本单位数值组合 成参数值的组合方式的流程图;
[0077] 图4为本发明实施例自动售票机的测试方法中确定i的上限值max_i的流程图;
[0078] 图5为本发明实施例中自动售票机的测试装置的结构图。

【具体实施方式】
[0079] 本发明实施例提供一种自动售票机的测试方法及装置,以解决现有技术中对自动 售票机的测试不够完善的技术效果。
[0080] 本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:
[0081] 在接收到输入操作之后,会确定一具有货币特征的参数值,然后确定通过基本单 位数值组合成参数值的组合方式,基本单位数值为自动售票机能够接收的基本货币的币 值;接着将组合方式提供给自动售票机的测试者,最终可以响应测试者通过组合方式所产 生的测试操作,进而对自动售票机进行测试,也就是说,在对自动售票机进行测试时,会确 定出通过基本单位数值组合成参数值的组合方式,进而基于组合方式对自动售票机进行测 试,而不是仅仅选择出几组常用的组合方式对自动售票机进行测试,故而达到了对自动售 票机的测试更加完善的技术效果;
[0082] 而由于对自动售票机的测试更加完善,故而降低了自动售票机在投入使用之后出 现故障的概率,进而提高了自动售票机的使用效率,并且降低了自动售票机的维修成本。 [0083] 为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案 做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详 细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例 中的技术特征可以相互组合。
[0084] 第一方面,本发明实施例提供一种自动售票机的测试方法,请参考图1,具体包括 以下步骤:
[0085] 步骤S101 :接收一输入操作;
[0086] 步骤S102 :响应输入操作,确定一具有货币特征的参数值;
[0087] 步骤S103 :确定通过基本单位数值组合成参数值的组合方式,基本单位数值为自 动售票机能够接收的基本货币的币值;
[0088] 步骤S104 :将组合方式提供给自动售票机的测试者;
[0089] 步骤S105 :接收测试者基于组合方式所产生的测试操作,以通过测试操作对自动 售票机进行测试。
[0090] 步骤S101,输入操作可以多种形式的输入操作,下面列举其中的三种进行介绍,当 然,在具体实施过程中,不限于以下三种情况。
[0091] 第一种,输入操作具体为:输入参数值的操作,例如:如图2所示,在自动售票机的 显示界面上显示一输入框,用于接收票价(也即:参数值),进而测试者可以直接产生输入 参数值的输入操作。
[0092] 第二种,输入操作具体为:点击对应区域的操作,例如:在自动售票机的显示单元 上显示一地图,测试者点击了地图上的两个位置分别为:"浣花溪"、"文殊院",那么点击操 作即为输入操作。
[0093] 第三种,输入操作具体为:输入乘车距离的操作,例如:在自动售票机的显示界面 上可以显示一输入框,用于获取乘车站数,那么测试者可以通过输入操作在该输入框内输 入乘车站数。
[0094] 步骤S102中,基于输入操作的内容不同,进而确定参数值的方式也不同,下面列 举其中的三种进行介绍,当然,在具体实施过程中,不限于以下三种情况。
[0095] 第一种,响应输入操作,确定一具有货币特征的参数值,具体为:
[0096] 确定输入操作所对应的数值信息,数值信息即为参数值;
[0097] 还是以图2为例,假设测试者在"请输入票价"对应的输入框内输入"10",那么则 可以确定参数值为10,当然,在具体实施过程中,参数值还可以为其它数,例如:5、15等等, 本发明实施例不作限制。
[0098] 第二种,响应输入操作,确定一具有货币特征的参数值,具体包括:
[0099] 确定输入操作所对应的的乘车起始位置信息和乘车结束位置信息;
[0100] 基于乘车起始位置信息和乘车结束位置信息确定参数值;
[0101] 例如:在自动售票机的显示单元上显示一地图,测试者点击了地图上的两个位置 分别为:"浣花溪"、"文殊院",那么则确定乘车起始位置信息"浣花溪",乘车结束位置信息 为"文殊院";
[0102] 接着自动售票机计算出由"浣花溪"至"文殊院"需要经历16站,而每站的票价为 0. 3元,进而确定出总票价为:0. 3*16 = 4. 8,而假设自动售票机只能接受0. 5的倍数的货 币,进而可以确定出参数值为5。当然,以上计算参数值的方式仅仅为一个举例,并不作为限 制。
[0103] 第三种,响应输入操作,确定一具有货币特征的参数值,具体包括:
[0104] 确定输入操作所对应的乘车距离信息;
[0105] 基于乘车距离信息确定参数值。
[0106] 乘车距离信息例如为:乘车站数,在确定乘车站数之后如何确定参数值,由于上面 已做介绍,故而在此不再赘述。
[0107] 在具体实施过程中,步骤S103中,确定通过基本单位数值组合成参数值的组合方 式,具体为:确定通过基本单位数值组合成参数值的所有组合方式,由于确定了所有组合方 式,故而能够防止遗漏一些组合方式没有检测,从而能够对自动售票机提供更加完善的测 试,进而进一步的降低了自动售票机出现故障的概率。
[0108] 步骤S103中,可以通过以下方式确定通过基本单位数值组合成参数值的组合方 式:
[0109] 根据基本单位数值定义循环变量,其中,有几个基本单位数值就定义几个循环变 量,例如:如果存在5角、1元硬币,5元、10元纸币这四个基本单位数值,就定义4个循环变 量,定义针对某一具体基本单位数值的投币上限值(例如:3元票价,只投5角硬币,为6个, 故而5角的投币上限值为6 ;只投5元纸币,为1张,故而5元的投币上限值为1),定义钱币 接收模块缓存上限值。
[0110] 根据前面定义的循环变量,设计多层循环嵌套(有几个循环变量,就有几层嵌套, 如4个循环变量,就有4层循环嵌套),顺序为面值越小的币种对应的循环放在嵌套的最外 层,循环变量从1开始逐步递增,上限值例如为:为某一具体基本单位数值的投币上限值和 接收模块缓存上限值中的较小值,通过多层嵌套遍历所有组合方式。
[0111] 下面将以存在四个基本单位数值为例,对步骤S103进行详细介绍,基本单位数值 按照从小到大顺序排列分别为:x a、xb、X。、xd,确定通过基本单位数值组合成参数值的组合 方式,具体为:确定通过四种基本单位数值组合成参数值的所有组合方式。
[0112] 请参考图3,包括以下步骤:
[0113] S1 :确定组合方式中Xa的倍数为a、Xb的倍数为b、X。的倍数为c、Xd的倍数为d ;
[0114] S2 :确定a的上限值max_a、b的上限值max_b、c的上限值max_c、d的上限值max_ d,跳转至步骤S3 ;
[0115] 在具体实施过程中,可以通过多种方式确定i的上限值max_i,其中i为a、b、c、 d中的任意一个数值,下面列举其中的两种进行介绍,当然,在具体实施过程中,不限于以下 两种情况。
[0116] 第一种,请参考图4,通过以下方式确定i的上限值max_i :
[0117] 步骤S401 :确定i的接收模块缓存上限值;
[0118] 步骤S402 :用参数值除以\取整获得投币上限值;
[0119] 步骤S403 :比较接收模块缓存上限值和投币上限值的大小,将接收模块缓存上限 值和投币上限值中的较小值确定为max_i。
[0120] 步骤S401中,还是以存在5角、1元硬币,5元、10元纸币这四个基本单位数值为 例,那么,X a = 0. 5、Xb = 1、X。= 5、Xd = 10,,假设自动售票机的硬币接收模块5角、1元硬 币的最大缓存器各70个(投入硬币个数大于缓存器最大数量,会产生退币),纸币接收模块 最大缓存数量为15张(投入纸币张数大于缓存器最大数量,会产生退币),则可以确定出a 和b的缓存模块上限值均为70,而c和d的缓存模块上限值均为15 ;
[0121] 步骤S402中,假设参数值为10,那么可以确定出a的投币上限值为10, b的投币 上限值为20, c的投币上限值为2, d的投币上限值为1 ;
[0122] 步骤 S403 中,经过比较,则可以确定出 max_a = 20,max_b = 10,max_c = 2,max_ d = l〇
[0123] 由于在上述方案中,在确定i的上限值时,除了考虑投币上限值之外,还考虑缓存 模块上限值,故而所确定的i的上限值更加精确,并且相对于只考虑一种的情况下,其可以 降低部分i的上限值,故而能够减少系统运算的次数,从而提高了系统的处理速度。
[0124] 第二种,通过以下方式确定i的上限值max_i :
[0125] 用参数值除以i向上取整获得max_i。
[0126] 具体来讲,也就是不考虑i的缓存模块上限值,而仅仅考虑投币上限值,故而确定 出 γπβχ_£i - 20j γπβχ-b - 10j nicix_c - 2j nicix_d - I。
[0127] S3 :设置a = 0,跳转至步骤S4 ;
[0128] S4 :判断a · Xa是否大于等于参数值,在a · Xa大于等于参数值时,跳转至步骤S5 ; 否则,跳转至步骤S6 ;
[0129] S5 :停止确定组成参数值的组合方式,其中,若a *Xa等于参数值,则确定通过a *Xa 组成参数值的一种组合方式;
[0130] S6 :设置b = 0,跳转至步骤S7 ;
[0131] S7 :判断a · Xa+b · Xb是否大于等于参数值,在a · Xa+b · Xb大于等于参数值时,跳 转至步骤S8 ;否则,跳转至步骤S13 ;
[0132] S8 :跳转至步骤S9,其中,若在a · Xa+b · Xb等于参数值,则确定通过a · Xa+b · Xb 组合成参数值的一种组合方式;
[0133] S9 :将a的值加1,并跳转至步骤S10 ;
[0134] S10 :判断a是否不大于max_a,在a大于max_a时,跳转至步骤S11 ;在a不大于 max_a时,跳转至步骤S4 ;
[0135] S11 :停止确定组成参数值的组合方式;
[0136] S12 :设置c = 0,跳转至步骤S13 ;
[0137] S13 :判断a · Xa+b · Xb+c · X。是否大于等于参数值,在a · Xa+b · Xb+c · X。大于等 于参数值时,跳转至步骤S14 ;否则,跳转至步骤S17 ;
[0138] S14 :跳转至步骤S15,其中,在a · Xa+b · Xb+c · X。等于参数值时,确定通过 a · Xa+b · Xb+c · X。组合成参数值的一种组合方式;
[0139] S15 :将b的值加1,并跳转至步骤S16 ;
[0140] S16 :判断b是否不大于max_b,在b大于max_b时,跳转至步骤S9 ;在b不大于 max_b时,跳转至步骤S7 ;
[0141] S17 :设置d = 0,跳转至步骤S18 ;
[0142] S18 :判断 a i+b *Xb+c ·Χε+(1 % 是否大于等于参数值,在 a *Xb+c ·Χε+(1 % 大于等于参数值时,跳转至步骤S19 ;否则,跳转至步骤S22 ;
[0143] S19 :跳转至步骤S20,其中,在a · Xa+b · Xb+c · Xe+d · Xd等于参数值时,确定通过 a · Xa+b · Xb+c · Xe+d · Xd组合成参数值的一种组合方式;
[0144] S20 :将c的值加1,并跳转至步骤S21 ;
[0145] S21 :判断c是否不大于max_c,在c不大于max_c时,跳转至步骤S13 ;在c大于 max_c时,跳转至步骤S15 ;
[0146] S22 :将d的值加1,跳转至步骤S23 ;
[0147] S23 :判断d是否不大于max_d,在d不大于max_d时,跳转至步骤18 ;在d大于 max_d时,跳转至步骤S20。
[0148] 其中,基本单位数值(例如:币种)的多少决定了循环嵌套的层级数,在实际应用 中,因为该方案应用于自动售票机中,而自动售票机可接受的币种有限,故而可在程序内预 先设置几种层级循环(如3层嵌套、4层嵌套等),通过人工输入方式确定基本单位数值的 数量,调用所对应的层级循环嵌套即可。例如:如可接收1元、5元、10元,即可接收3个币 种,则由主控程序调用3层嵌套循环的分支,由于三层嵌套循环的方式与前面所介绍的4层 嵌套循环方式类似,故而在此不再赘述。
[0149] 作为进一步的优选实施例,在基于步骤S103确定通过基本单位数值组合成参数 值的组合方式之后,方法还包括:
[0150] 存储组合方式。
[0151] 请继续参考图2,在图2的界面上存在"计算投币组合并输出到文件"的按钮,当自 动售票机检测到测试者点击该按钮时,则可以直接将组合方式存储至文件。
[0152] 并且,在图2的界面上还存在"清空输出文件内容"的按钮,在自动售票机检测测 试者点击该按钮时,则将文件中保存的组合方式清空。
[0153] 步骤S104中,自动售票系统可以每确定一种组合方式,就将组合方式通过现显示 于自动售票机的显示单元的方式提供给测试者;自动售票系统也可以在确定出所有的组合 方式之后,再将其全部显示于自动售票机的显示单元。
[0154] 请继续参考2,在显示单元显示有"计算投币组合并输出到界面"的按钮,自动售票 机在检测到测试者点击该按钮之后,就开始计算投币组合并将其输出到显示单元;而在显 示单元上还显示有"清空下面输出内容"的按钮,自动售票机在检测到测试者点击该按钮之 后,则清空界面上显示的组合方式。
[0155] 软件核心代码如下(MICF0S0FT VISUAL STUDIO 2008C#):
[0156] //计算投币组合并输出结果到程序界面中的文本框"rtb_result"控件中 private void btnjvsLiltToGui_Click(objcct sender) EvcntArgs e) { H初始化变量 decimal price; ArrayList arrText = new ArrayList();//创建一个动态数组 int max_num_half, mcix_mtm_onet max_num Jive, max_mun_ten; //itM循环计数器变量和行号计数器变量 int a, b, cy d, row_num = 0; //将输入票价赋值给变量price price = System.Convert. ToDecimaI(tbx_inputPrice. Text); //硬币模块最大5角取消缓存为70枚 max nwn half=Com'c^^/r〇Intl6(Math.Min((pncc^2). 70)): 丨/硬币模块最大1元取消缓存为7 Q牧 max_num_one ~ Convert .Taint 16(Math.Min((pricc), 70)); max_num_five = Convert. ToInt!6(Math.Min((Marh. Ceillnginrice / 5)), 15)); //纸币模块最大5元取消缓存为15张 max num Jen = Convert.Tolntl6(Math.Min((Math.CeiIing(p^i'ce / 1())), 15)): //纸币模块最大m元取消缓存为15张 //遍历所有投币组合,挑出所有满足票价的投币组合, //并输出到文本框" rtb _result "控件中 for (a = 0; a < = max_num_half; { if ?α >- (?πι)(ρη(ψ ^2)) { ron' /?,//"++; arrText. A (hi(Con vert. ToStnng(ro\\'_num) + ff\t 5 角硬兩 "十 Convert.ToString(a) H- tT 枚\r、\n"}; continue; } for (b = 0; b < = max_nwn_one; b++) {《<((----η--Ι·}(α^0.5,1))> = ι)Η?χ,)
[0157] { row num l i ; arr Text. A (!d(Con vert ToS/ring(mn_num) + ff\t 5 if]硬币 "+ Convcrt.ToStnngJa) + 牧 〃 + 〃 1 元硬币 υ + Convert.ToString(b) + 枚\τ\ηΜ); break; } for (c = 0; c < = mas_tiumJive: C++) { if ((decimal)(a * O.J + i + c * J) > = price) { row_nwn + +; arrlext.AdcU Cofivert. loStrin^(ro\\' num) V'、、t 5 匍硬币,f + Convert.ToString(a) - u " + " 1 元硬币 ff + Convcrt.ToStringib) + # " + 〃 5 元纸币 f, + Converr.ToSr/ingic) + 张、、Λη"}.' break: } for (d = 0; (i <=L max_num_h)n: d V十) { if ((dccimal)(a * 0.5 + ? + c * 5 + ¢/ * 10) price) arrText.Addf Converr. ToString(ro\v_num) + iv\t5 角硬币 11 + ConvertToString(a) + 〃 枚 " + " l 元硬币 n \ Convert.ToString(h) \ "枚 〃 十"5 元纸币 n + Convert.ToString(c) + 张 " + " 10 元纸币 fi + ConvertToString(d) + 张 \r\n"); break: } } } } } rih_re\uli, Litu^s-(sirifi^[] jurrTexi r To A rra\'(l\ peiffisfring));
[0158] } //计算投币组合并输出结果到程序所在目录的文本文件"myText.txt"中 private void btn_c\xecution_CIick(objecr sender, EvcntArgs c) {丨l初始彳匕交量 decimal price; int max num half, max man one, max mmi five, max nwn ten; //设置循环计数器变量和行号计数器变量 int af b, c, d.row_num~0; //将输入票价賦值给变量price price = System.Convert. ToDecimaI{thx_inputPnce. Text); max_num_half= Convert. Tblntl6(:Viarh.Min((pricc φ 2), 70)); //硬币模块最大5角取消缓存为7 0枚 max」wm」)nc = (Γοη'Η--.Το?ηΗδ?Μ?,--Λ--η?φ--β),7())); 丨/硬币模決最大1元取消缓存为7 Q枚 maxjuun Jive = Convert. Tahiti6(Math.Min((Math.CcHing(price / 5)), 15)); //纸币模块最 大5元取消缓存为15张 ma':_m"n_ten = Convert. Taint 16(Math. Min( (Math. Ccilingipricc / / ()))f 15)}; // 纸币模块最 大m元取消缓存为15张 //以追加方式打开文本文件"myText.txt" SwsfemJO,StreamiVriier \u- = Fi/e.Ai^cn(i/'i\xi(!^nyiexf.txtf,); //遍历所有投币组合,挑出所有满足票价的投币组合,并输出到myTexttxt for (a ~ 0: a maxjmsn half: a++) { if (a > = (int)(pricc^2)) { row_num+-\-; s\\\WriteUne(Convert.loString(ro\\' num) ! tr''t 5 /--^€Φ " + Convert. ToSrring(a) + r, 4-t\r\n,r); continue; } for (b - 0: b <- max_nwn_one:
[0159] { if ((decimal)(a 0.5 \ b)>= price) { n>w_mrm++; s\\\ IVritcLinefConvcrt. ToStringOmvjuun) + n\1 5 Φ " + Convcrr.ToSningfa) + f,枚 "+ " I 元硬 φ " + Convert. ToSiring(b) - ,r 4i\r\nr,); bf cak, i for (c 0; c maxjuunjlvc: c++) { if ((decimal) (a * 0.5 b + c * 5) > = price) / rou'_mmi-+; s\r. WrltcLine(Convert. loStnng(ro\\' nwn) 角硬币,f + Con\^rr.TnSrring(a) + 牧 〃 + " l 元硬币 tr + ConverLToString(h) -h 枚 " + " 5 元纸中 " + Convert.T()String(c}十" i%\r\n"); break; } for((i=0;(J<=max_num_ten;d++) { if((dechnal)(a i!: 0.5 + ft + c ^ 5 + ?/ ψ 10) >= price) { fx)w_num++; s vr. WriteLine(Con vert. ToStrlngfrow num) + 角硬币 rt + Convert.ToString(a) + fi 枚 " + " 1 无硬币 " + Convert.ToString(b) + " .枚 " + " 5 元纸币"+ Convert.ToString(c) + " 张 " + " 10元纸币 " + C()nven.T()String(d) + " 张 \r''n">: break; } } } } }
[0160] sw.l^hishO; sn'.CIosefj; sw.DisposcC): MessageBax.Show("成功导出到程序所在目录文件myText.txt"); try { Process p = ne^v lyrocess(); p.Startlnfo. FiieName = r,myTexiJ\t!t; p.Startfj; } catch f i MessageBox.Show(tf 文件无法打开 } } //清空输出框内容 private void bln jjlearGu.i_CIick(object semlci) EvcntArgs e) { rtb_resi"t.Te.xt 二 mf: } //清空程序所在目录的文本文件"myText.txt"中的输出内容 private void btn_clearFiIe_Click(object sender. EvenrArgs e) { l lleStream fs = FiI(:\Open(rfinyTcxt.txtr\ FUeModc.Opcn, File Access.ReadWrite); f's.SetLength《(}):// 清空tx.t 文件 fs. CloseO; fs.Dlspos^O: MessugeBox.Sho\\i"成功清父程序所在β录文{々-myTextAxt"): } private void bin jivniincnt_C!ick(objcct sender, EvcntArgs e) { MessageBox.Show("-、二号线按票价草案,单价有8种,购票数量上限为8张 xr\n"
[0161] + "去掉重复票价,系统中共37种不同票价,最大票价为40元\r\n");
[0162] 第二方面,基于同一发明构思,本发明实施例提供一种自动售票机的测试装置,请 参考图5,包括:
[0163] 第一接收模块50,用于接收一输入操作;
[0164] 响应模块51,用于响应输入操作,确定一具有货币特征的参数值;
[0165] 确定模块52,用于确定通过基本单位数值组合成参数值的组合方式,基本单位数 值为自动售票机能够接收的基本货币的币值;
[0166] 提供模块53,用于将组合方式提供给自动售票机的测试者;
[0167] 第二接收模块54,用于接收测试者基于组合方式所产生的测试操作,以通过测试 操作对自动售票机进行测试。
[0168] 可选的,确定模块52,具体用于:
[0169] 确定通过四种基本单位数值组合成参数值的所有组合方式。
[0170] 可选的,响应模块51,具体用于:
[0171] 确定输入操作所对应的数值信息,数值信息即为参数值;或
[0172] 响应模块,具体包括:
[0173] 第一确定单元,用于确定输入操作所对应的的乘车起始位置信息和乘车结束位置 信息;
[0174] 第二确定单元,用于基于乘车起始位置信息和乘车结束位置信息确定参数值;或
[0175] 响应模块,具体包括:
[0176] 第三确定单元,用于确定输入操作所对应的乘车距离信息;
[0177] 第四确定单元,用于基于乘车距离信息确定参数值。
[0178] 可选的,装置还包括:
[0179] 存储模块,用于在确定通过基本单位数值组合成参数值的组合方式之后,存储组 合方式。
[0180] 本发明的一个或多个实施例,至少具有以下有益效果:
[0181] 由于在本发明实施例中,在接收到输入操作之后,会确定一具有货币特征的参数 值,然后确定通过基本单位数值组合成参数值的组合方式,基本单位数值为自动售票机能 够接收的基本货币的币值;接着将组合方式提供给自动售票机的测试者,最终可以响应测 试者通过组合方式所产生的测试操作,进而对自动售票机进行测试,也就是说,在对自动售 票机进行测试时,会确定出通过基本单位数值组合成参数值的组合方式,进而基于组合方 式对自动售票机进行测试,而不是仅仅选择出几组常用的组合方式对自动售票机进行测 试,故而达到了对自动售票机的测试更加完善的技术效果;
[0182] 而由于对自动售票机的测试更加完善,故而降低了自动售票机在投入使用之后出 现故障的概率,进而提高了自动售票机的使用效率,并且降低了自动售票机的维修成本。
[0183] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0184] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的嵌入 式控制器以产生一个机器,使得通过计算机或其他可编程数据处理设备的嵌入式控制器执 行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框 中指定的功能的装置。
[0185] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0186] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。
[0187] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。
[0188] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发 明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求 及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1. 一种自动售票机的测试方法,其特征在于,包括: 接收一输入操作; 响应所述输入操作,确定一具有货币特征的参数值; 确定通过基本单位数值组合成所述参数值的组合方式,所述基本单位数值为所述自动 售票机能够接收的基本货币的币值; 将所述组合方式提供给所述自动售票机的测试者; 接收所述测试者基于所述组合方式所产生的测试操作,以通过所述测试操作对所述自 动售票机进行测试。
2. 如权利要求1所述的方法,其特征在于,所述确定通过基本单位数值组合成所述参 数值的组合方式,具体为: 确定通过四种基本单位数值组合成所述参数值的所有组合方式。
3. 如权利要求2所述的方法,其特征在于,所述基本单位数值按照从小到大顺序排列 分别为:Xa、Xb、X。、X d,所述确定通过基本单位数值组合成所述参数值的组合方式,具体包 括: 51 :确定所述组合方式中Xa的倍数为a、Xb的倍数为b、X。的倍数为c、Xd的倍数为d ; 52 :确定a的上限值max_a、b的上限值max_b、c的上限值max_c、d的上限值max_d ; 53 :设置a = 0,跳转至步骤S4 ; 54 :判断a · Xa是否大于等于参数值,在a · Xa大于等于参数值时,跳转至步骤S5 ;否 贝1J,跳转至步骤S6; 55 :停止确定组成所述参数值的组合方式,其中,若a ·Χ3等于参数值,则确定通过a ·Χ3 组成参数值的一种组合方式; 56 :设置b = 0,跳转至步骤S7 ; 57 :判断a · Xa+b · Xb是否大于等于参数值,在a · Xa+b · Xb大于等于参数值时,跳转至 步骤S8 ;否则,跳转至步骤S13 ; 58 :跳转至步骤S9,其中,若在a · Xa+b · Xb等于参数值,则确定通过a · Xa+b · Xb组合 成参数值的一种组合方式; 59 :将a的值加1,并跳转至步骤S10 ; 510 :判断a是否不大于max_a,在a大于max_a时,跳转至步骤S11 ;在a不大于max_a 时,跳转至步骤S4; 511 :停止确定组成所述参数值的组合方式; 512 :设置c = 0,跳转至步骤S13 ; 513 :判断a · Xa+b · Xb+c · X。是否大于等于参数值,在a · Xa+b · Xb+c · X。大于等于参 数值时,跳转至步骤S14 ;否则,跳转至步骤S17 ; 514 :跳转至步骤S15,其中,在a · Xa+b · Xb+c · X。等于参数值时,确定通过 a · Xa+b · Xb+c · X。组合成参数值的一种组合方式; 515 :将b的值加1,并跳转至步骤S16 ; 516 :判断b是否不大于max_b,在b大于max_b时,跳转至步骤S9 ;在b不大于max_b 时,跳转至步骤S7 ; 517 :设置d = 0,跳转至步骤S18 ; 518 :判断 a · Xa+b · Xb+c · Xe+d · Xd 是否大于等于参数值,在 a · Xa+b · Xb+c · Xe+d · Xd 大于等于参数值时,跳转至步骤S19 ;否则,跳转至步骤S22 ; 519 :跳转至步骤S20,其中,在a*Xa+b *Xb+c 等于参数值时,确定通过 a · Xa+b · Xb+c · Xe+d · Xd组合成参数值的一种组合方式; 520 :将c的值加1,并跳转至步骤S21 ; 521 :判断c是否不大于max_c,在c不大于max_c时,跳转至步骤S13 ;在c大于max_c 时,跳转至步骤S15 ; 522 :将d的值加1,跳转至步骤S23 ; 523 :判断d是否不大于max_d,在d不大于max_d时,跳转至步骤18 ;在d大于max_d 时,跳转至步骤S20。
4. 如权利要求3所述的方法,其特征在于,通过以下方式确定i的上限值max_i,其中 i为a、b、c、d中的任意一个数值: 确定i的接收模块缓存上限值; 用参数值除以Xi取整获得投币上限值; 比较所述接收模块缓存上限值和所述投币上限值的大小,将所述接收模块缓存上限值 和所述投币上限值中的较小值确定为所述max_i。
5. 如权利要求1-4任一所述的方法,其特征在于,所述响应所述输入操作,确定一具有 货币特征的参数值,具体为: 确定所述输入操作所对应的数值信息,所述数值信息即为所述参数值;或 所述响应所述输入操作,确定一具有货币特征的参数值,具体包括: 确定所述输入操作所对应的的乘车起始位置信息和乘车结束位置信息; 基于所述乘车起始位置信息和所述乘车结束位置信息确定所述参数值;或 所述响应所述输入操作,确定一具有货币特征的参数值,具体包括: 确定所述输入操作所对应的乘车距离信息; 基于所述乘车距离信息确定所述参数值。
6. 如权利要求1-4任一所述的方法,其特征在于,在所述确定通过基本单位数值组合 成所述参数值的组合方式之后,所述方法还包括: 存储所述组合方式。
7. -种自动售票机的测试装置,其特征在于,包括: 第一接收模块,用于接收一输入操作; 响应模块,用于响应所述输入操作,确定一具有货币特征的参数值; 确定模块,用于确定通过基本单位数值组合成所述参数值的组合方式,所述基本单位 数值为所述自动售票机能够接收的基本货币的币值; 提供模块,用于将所述组合方式提供给所述自动售票机的测试者; 第二接收模块,用于接收所述测试者基于所述组合方式所产生的测试操作,以通过所 述测试操作对所述自动售票机进行测试。
8. 如权利要求7所述的装置,其特征在于,所述确定模块,具体用于: 确定通过四种基本单位数值组合成所述参数值的所有组合方式。
9. 如权利要求7或8所述的装置,其特征在于,所述响应模块,具体用于: 确定所述输入操作所对应的数值信息,所述数值信息即为所述参数值;或 所述响应模块,具体包括: 第一确定单元,用于确定所述输入操作所对应的的乘车起始位置信息和乘车结束位置 信息; 第二确定单元,用于基于所述乘车起始位置信息和所述乘车结束位置信息确定所述参 数值;或 所述响应模块,具体包括: 第三确定单元,用于确定所述输入操作所对应的乘车距离信息; 第四确定单元,用于基于所述乘车距离信息确定所述参数值。
10.如权利要求7或8所述的装置,其特征在于,所述装置还包括: 存储模块,用于在确定通过基本单位数值组合成所述参数值的组合方式之后,存储所 述组合方式。
【文档编号】G06F11/22GK104268996SQ201410525298
【公开日】2015年1月7日 申请日期:2014年10月8日 优先权日:2014年10月8日
【发明者】陈浙宁, 周璐, 荣毅, 乔炜, 朱东飞, 熊剑, 胡汉友 申请人:陈浙宁
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1