• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    區(qū)間編碼方法在計費(fèi)程序中的應(yīng)用

    2015-04-15 06:28:27許伶俐董會蘭
    軟件導(dǎo)刊 2015年3期
    關(guān)鍵詞:程序設(shè)計

    許伶俐+董會蘭

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

    關(guān)鍵詞:區(qū)間編碼;計費(fèi)程序;程序設(shè)計

    中圖分類號:TP301

    文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2015)003-0034-02

    0 引言

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

    1 算法設(shè)計

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

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

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

    1.1 區(qū)間模型

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

    1.2 計費(fèi)區(qū)間編碼

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

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

    2 編程模型

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

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

    3 性能分析

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

    4 結(jié)語

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

    參考文獻(xiàn):

    [1] MARK ALLEN WEISS.數(shù)據(jù)結(jié)構(gòu)與算法分析[M].北京:機(jī)械工業(yè)出版社,2004.

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

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

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

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

    (責(zé)任編輯:孫 娟)

    猜你喜歡
    程序設(shè)計
    基于SolidWorks和VBA的電機(jī)階梯軸建模程序設(shè)計
    高職Java程序設(shè)計課程體系建設(shè)思考
    基于Visual Studio Code的C語言程序設(shè)計實(shí)踐教學(xué)探索
    從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
    電子制作(2019年9期)2019-05-30 09:42:04
    基于LabVIEW的車載充電機(jī)控制程序設(shè)計
    電子測試(2018年13期)2018-09-26 03:29:16
    淺談基于C語言的計算機(jī)軟件程序設(shè)計
    電子制作(2017年24期)2017-02-02 07:14:40
    高職高專院校C語言程序設(shè)計教學(xué)改革探索
    OBE理念下基于Greenfoot的Java程序設(shè)計課程教學(xué)改革
    模塊化程序設(shè)計在一體化檢定平臺中的應(yīng)用
    PLC梯形圖程序設(shè)計技巧及應(yīng)用
    正阳县| 扶余县| 卢湾区| 邹平县| 铁力市| 平舆县| 乐清市| 梁山县| 当雄县| 蒲城县| 子洲县| 会宁县| 阆中市| 东兰县| 洛扎县| 万源市| 三亚市| 伊吾县| 纳雍县| 仙桃市| 叙永县| 汝阳县| 佛学| 抚顺县| 和田市| 乳源| 金川县| 平泉县| 镇赉县| 洪洞县| 洛南县| 虎林市| 双桥区| 达拉特旗| 江西省| 通道| 晋江市| 北碚区| 微博| 阳江市| 治县。|