国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

區(qū)間編碼方法在計費程序中的應用

2015-04-15 06:28:27許伶俐董會蘭
軟件導刊 2015年3期
關鍵詞:程序設計

許伶俐+董會蘭

摘要:針對分段收費系統(tǒng)中程序邏輯結構復雜、維護升級困難等問題,提出了一種在計費程序中運用區(qū)間編碼的方法,結合實際應用中的收費標準,闡述了區(qū)間編碼應用原理,給出了區(qū)間基于區(qū)間編碼的編程模型,并對區(qū)間編碼方法的性能和優(yōu)勢進行了討論。該方法可顯著改善程序的邏輯結構,方面計費程序維護和升級。

關鍵詞:區(qū)間編碼;計費程序;程序設計

中圖分類號:TP301

文獻標識碼:A 文章編號:1672-7800(2015)003-0034-02

0 引言

日常生活中,很多計費系統(tǒng)在不同時間段有不同的收費標準,例如電話通信計費、出租車計費、停車場收費和網吧計費等,在不同時段使用服務需要支付的費用往往相差較大。這些收費標準在數學上可使用分段函數來表示,但在使用編程語言實現時,需要比較復雜的分支選擇結構來描述[1],當計費系統(tǒng)劃分的收費區(qū)間較多時,程序的邏輯將變得非常復雜,如果程序設計使用了大量的“if… else…”選擇語句,那么程序的可讀性將變得極差[2-3],這不利于收費系統(tǒng)的維護和升級。為此,本文提出了一種區(qū)間編碼方法,可以有效簡化程序設計,給計費系統(tǒng)的維護和升級帶來方便。

1 算法設計

本文結合某停車場收費實例詳述算法原理,停車場收費規(guī)則如下:

將一晝夜劃分為兩個收費時間段:(T0,T1)和(T1,T0),例如白天計費時段(6:00-22:00)和夜晚計費時段(22:00-6:00)。不同區(qū)間有不同的收費標準,區(qū)間(T0,T1):第一計費時間單位收費x元,每超過一個計費單位按y元收費;區(qū)間(T1,T0):統(tǒng)一收費z元,不論時間長短。

對于停車超過一個晝夜的情況,整個晝夜計費為區(qū)間(T0,T1)和區(qū)間 (T1,T0)的計費之和,不足一晝夜的部分,依照上述規(guī)則按實際情況進行收費。在上述計費標準中,停車不滿一個計費時間單位的按一個計費時間單位計費。

1.1 區(qū)間模型

根據上述收費標準,一晝夜以24小時制表示,將00:00作為晝夜分界點[4],其極坐標如圖1所示。由于晝夜分界點的存在,實際上兩個收費區(qū)間被劃分為3個收費區(qū)間,即(T0,T1)、(T1,Td)和區(qū)間(Td,T0)。

1.2 計費區(qū)間編碼

根據一晝夜計費區(qū)間劃分情況,對每個計費區(qū)間進行二進制行編碼[5]。本計費系統(tǒng)中有3個計費區(qū)間,需要兩位二進制數來進行編碼。對于有N個計費區(qū)間的情況,編碼位數i與N滿足約束表達式:2i-1

對于任意的停車開始時間和停車結束時間都落在三者之中的任意一個區(qū)間,因此可以用一個區(qū)間對來表征一次停車,區(qū)間對用四位二進制數表示前兩位代表停車開始時間所在區(qū)間,后兩位代表收費結束時間所在區(qū)間,三區(qū)間的任意組合形成的區(qū)間對集合包括了所有計費情況。窮舉每一種組合可以得出每一種收費情況的編碼和計費表達式,收費編碼如表3所示。

2 編程模型

根據計費編碼,可設計清晰的編程步驟,整個算法流程如圖2所示。整個程序設計基于switch分支選擇結構,首先計算t0~t1時間間隔內包含整個晝夜的數目,即時間間隔除24小時所得的商數,根據商數計算整晝夜收費價格,然后根據t0、t1所在區(qū)間確定收費編碼進而確定要采用的計費表達式,根據計費表達式計算不足一晝夜部分的計費價格,最后將與上述整晝夜收費價格相加得到總的收費價格。

計費編碼占4bit,可選用一個字節(jié)表示。例如停車開始時間為09:00,結束時間是當天23:00的情況,根據區(qū)間編碼,開始時間對應的區(qū)間碼為01,結束時間對應的區(qū)間碼為10,因此計費編碼為(0b00000001<<2)+0b00000010 ,即0110,值為6。

3 性能分析

與普通分段收費算法相比,引入區(qū)間編碼方法可以有效改善計費算法設計,利用區(qū)間排列組合方法,可以窮舉任意一種收費情況,防止遺漏;對區(qū)間進行編碼后,在設計程序時,使用switch…case…語句替代if…else…語句,同時利用switch語句的順序執(zhí)行特性,對相同的收費表達式進行合并。以上述停車場計費標準為例,使用區(qū)間編碼方法,至少可以省去12個“if…else…”語句對,極大改善了程序的邏輯結構保證了程序的可讀性;同時該算法具有很好的可擴展性,當計費區(qū)間增多,只需增加區(qū)間的編碼位數即可容納增加的計費區(qū)間。隨著區(qū)間增多,區(qū)間編碼方法對計費算法的輔助設計效果愈加明顯。

4 結語

本文主要闡述區(qū)間編碼方法在計費系統(tǒng)中的應用原理,所涉及的停車場收費標準是實際運用中的一個計費系統(tǒng)特例,在其它收費場合可能并不適用,例如收費規(guī)則中沒有考慮不同區(qū)間之間的緩沖時間問題,但它具有分段收費問題的一般特性,并不妨礙區(qū)間編碼方法的運用。對于其它分段計費系統(tǒng),可參照本文應用原理設計收費程序,改善程序的邏輯結構,方便計費系統(tǒng)的維護和升級。

參考文獻:

[1] MARK ALLEN WEISS.數據結構與算法分析[M].北京:機械工業(yè)出版社,2004.

[2] 劉偉峰,王智廣.細粒度并行計算編程模型研究[J].微電子學與計算機,2008,25(10):103-106.

[3] 古思山,蔡樹彬,李師賢.從面向方面程序設計的定義到面向方面程序設計語言[J].計算機科學,2011,38(10):133-139.

[4] 姜濤.地-電離層波導中甚低頻波晝夜過渡期特性研究[J].通訊電源技術,2014,31(3):43-45.

[5] 朱付保,關佶紅,周水庚.基于區(qū)間編碼的GML索引與查詢[J].計算機科學,2008,35(3):65-67.

(責任編輯:孫 娟)

猜你喜歡
程序設計
基于SolidWorks和VBA的電機階梯軸建模程序設計
防爆電機(2022年4期)2022-08-17 05:59:24
高職Java程序設計課程體系建設思考
計算機教育(2020年5期)2020-07-24 08:53:00
基于Visual Studio Code的C語言程序設計實踐教學探索
計算機教育(2020年5期)2020-07-24 08:52:56
從細節(jié)入手,談PLC程序設計技巧
電子制作(2019年9期)2019-05-30 09:42:04
基于LabVIEW的車載充電機控制程序設計
電子測試(2018年13期)2018-09-26 03:29:16
淺談基于C語言的計算機軟件程序設計
電子制作(2017年24期)2017-02-02 07:14:40
高職高專院校C語言程序設計教學改革探索
OBE理念下基于Greenfoot的Java程序設計課程教學改革
模塊化程序設計在一體化檢定平臺中的應用
PLC梯形圖程序設計技巧及應用
沿河| 都匀市| 麻阳| 民勤县| 凭祥市| 铁岭市| 安西县| 高州市| 朝阳市| 师宗县| 无为县| 上林县| 额敏县| 屏东县| 车险| 和龙市| 柳州市| 奉节县| 蓬安县| 浦县| 南岸区| 焦作市| 龙井市| 琼中| 资中县| 武陟县| 吴旗县| 余江县| 玛曲县| 淮安市| 兰州市| 建湖县| 林口县| 师宗县| 陈巴尔虎旗| 介休市| 祁东县| 灵台县| 正定县| 沙河市| 德令哈市|