• 
    

    
    

      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)用
      滦南县| 平谷区| 龙里县| 珠海市| 定结县| 敖汉旗| 来宾市| 晋宁县| 闻喜县| 嘉荫县| 永登县| 石棉县| 正阳县| 太康县| 都兰县| 乌恰县| 梁河县| 平舆县| 蓬安县| 凤阳县| 来安县| 徐州市| 修水县| 嘉峪关市| 灵璧县| 兴隆县| 宾阳县| 安岳县| 昌图县| 赤水市| 正镶白旗| 万山特区| 塔河县| 哈巴河县| 洱源县| 临夏市| 汝州市| 东乌珠穆沁旗| 固阳县| 三台县| 江油市|