网站首页  词典首页

请输入您要查询的论文:

 

标题 区间编码方法在计费程序中的应用
范文 许伶俐+董会兰



摘要:针对分段收费系统中程序逻辑结构复杂、维护升级困难等问题,提出了一种在计费程序中运用区间编码的方法,结合实际应用中的收费标准,阐述了区间编码应用原理,给出了区间基于区间编码的编程模型,并对区间编码方法的性能和优势进行了讨论。该方法可显著改善程序的逻辑结构,方面计费程序维护和升级。
关键词:区间编码;计费程序;程序设计
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2015)003-0034-02
0 引言
日常生活中,很多计费系统在不同时间段有不同的收费标准,例如电话通信计费、出租车计费、停车场收费和网吧计费等,在不同时段使用服务需要支付的费用往往相差较大。这些收费标准在数学上可使用分段函数来表示,但在使用编程语言实现时,需要比较复杂的分支选择结构来描述[1],当计费系统划分的收费区间较多时,程序的逻辑将变得非常复杂,如果程序设计使用了大量的“if… else…”选择语句,那么程序的可读性将变得极差[2-3],这不利于收费系统的维护和升级。为此,本文提出了一种区间编码方法,可以有效简化程序设计,给计费系统的维护和升级带来方便。
1 算法设计
本文结合某停车场收费实例详述算法原理,停车场收费规则如下:
将一昼夜划分为两个收费时间段:(T0,T1)和(T1,T0),例如白天计费时段(6:00-22:00)和夜晚计费时段(22:00-6:00)。不同区间有不同的收费标准,区间(T0,T1):第一计费时间单位收费x元,每超过一个计费单位按y元收费;区间(T1,T0):统一收费z元,不论时间长短。
对于停车超过一个昼夜的情况,整个昼夜计费为区间(T0,T1)和区间 (T1,T0)的计费之和,不足一昼夜的部分,依照上述规则按实际情况进行收费。在上述计费标准中,停车不满一个计费时间单位的按一个计费时间单位计费。
1.1 区间模型
根据上述收费标准,一昼夜以24小时制表示,将00:00作为昼夜分界点[4],其极坐标如图1所示。由于昼夜分界点的存在,实际上两个收费区间被划分为3个收费区间,即(T0,T1)、(T1,Td)和区间(Td,T0)。
1.2 计费区间编码
根据一昼夜计费区间划分情况,对每个计费区间进行二进制行编码[5]。本计费系统中有3个计费区间,需要两位二进制数来进行编码。对于有N个计费区间的情况,编码位数i与N满足约束表达式:2i-1对于任意的停车开始时间和停车结束时间都落在三者之中的任意一个区间,因此可以用一个区间对来表征一次停车,区间对用四位二进制数表示前两位代表停车开始时间所在区间,后两位代表收费结束时间所在区间,三区间的任意组合形成的区间对集合包括了所有计费情况。穷举每一种组合可以得出每一种收费情况的编码和计费表达式,收费编码如表3所示。
2 编程模型
根据计费编码,可设计清晰的编程步骤,整个算法流程如图2所示。整个程序设计基于switch分支选择结构,首先计算t0~t1时间间隔内包含整个昼夜的数目,即时间间隔除24小时所得的商数,根据商数计算整昼夜收费价格,然后根据t0、t1所在区间确定收费编码进而确定要采用的计费表达式,根据计费表达式计算不足一昼夜部分的计费价格,最后将与上述整昼夜收费价格相加得到总的收费价格。
计费编码占4bit,可选用一个字节表示。例如停车开始时间为09:00,结束时间是当天23:00的情况,根据区间编码,开始时间对应的区间码为01,结束时间对应的区间码为10,因此计费编码为(0b00000001<<2)+0b00000010 ,即0110,值为6。
3 性能分析
与普通分段收费算法相比,引入区间编码方法可以有效改善计费算法设计,利用区间排列组合方法,可以穷举任意一种收费情况,防止遗漏;对区间进行编码后,在设计程序时,使用switch…case…语句替代if…else…语句,同时利用switch语句的顺序执行特性,对相同的收费表达式进行合并。以上述停车场计费标准为例,使用区间编码方法,至少可以省去12个“if…else…”语句对,极大改善了程序的逻辑结构保证了程序的可读性;同时该算法具有很好的可扩展性,当计费区间增多,只需增加区间的编码位数即可容纳增加的计费区间。随着区间增多,区间编码方法对计费算法的辅助设计效果愈加明显。
4 结语
本文主要阐述区间编码方法在计费系统中的应用原理,所涉及的停车场收费标准是实际运用中的一个计费系统特例,在其它收费场合可能并不适用,例如收费规则中没有考虑不同区间之间的缓冲时间问题,但它具有分段收费问题的一般特性,并不妨碍区间编码方法的运用。对于其它分段计费系统,可参照本文应用原理设计收费程序,改善程序的逻辑结构,方便计费系统的维护和升级。
参考文献:
[1] MARK ALLEN WEISS.数据结构与算法分析[M].北京:机械工业出版社,2004.
[2] 刘伟峰,王智广.细粒度并行计算编程模型研究[J].微电子学与计算机,2008,25(10):103-106.
[3] 古思山,蔡树彬,李师贤.从面向方面程序设计的定义到面向方面程序设计语言[J].计算机科学,2011,38(10):133-139.
[4] 姜涛.地-电离层波导中甚低频波昼夜过渡期特性研究[J].通讯电源技术,2014,31(3):43-45.
[5] 朱付保,关佶红,周水庚.基于区间编码的GML索引与查询[J].计算机科学,2008,35(3):65-67.
(责任编辑:孙 娟)
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/15 22:34:44