999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于類的大寫金額轉換在C#中的實現

2020-05-07 02:36:32婁七明楊志金孫建洪張紅偉
紅河學院學報 2020年2期
關鍵詞:方法

婁七明,楊志金,孫建洪,張紅偉

(紅河學院工學院,云南蒙自 661100)

1 引言

隨著信息化建設的不斷推進,辦公自動化程度的不斷提高,很多票據和經濟合同等都需要打印。在這些票據和經濟合同中通常需要打印大寫金額,這就需要將用阿拉伯數字書寫的金額轉換成人民幣大寫形式。在財務管理中大寫金額不能隨意書寫,[3]必須遵循一定的規則。目前有使用各種語言實現的大寫金額轉換函數,但這些函數都是采用面向過程的設計思想實現的,且算法比較復雜,可讀性較差。因此,本文采用面向對象的程序設計思想來實現大寫金額轉換,并用C#實現該算法。該算法把待轉換的數字和轉換方法封裝為一個整體,具有可重用性強、可擴充性好、算法簡單易懂等特點。

2 算法分析

2.1 大寫金額相關規則[1-2]

用阿拉伯數字書寫的金額轉換成大寫金額應遵循以下規則:

(1)阿拉伯數字轉換為大寫金額后,如果沒有角分位,應在“元”后寫“整”(或“正”),否則“角”和“分”后面不寫“整”(或“正”)字。

(2)把非0的阿拉伯數字轉換成對應的大寫數字,并加上相應數位對應的漢字,如10轉換為“壹拾元”。

(3)在億級以上有不為零的數字時,億位要加“億”;在萬和千萬之間有不為零的數字時,萬位要加“萬”;金額大于一元時,個位要加“元”,如1010000100,轉換為“壹拾億零壹仟萬零壹佰元”。

(4)如果非0的阿拉伯數字之間有一個0或者多個0時,大寫金額中間對應處要加一個“零”;如果非0的阿拉伯數字之后所有數字都為0,則大寫金額中這個數字后面不加“零”,如10100,轉換為“壹萬零壹佰元”。

2.2 算法分析

要將一個阿拉伯數字轉換為大寫金額,如100202001023.35。可以按如下步驟實現。

第一步:把該數字分成整數部分和小數部分,整數部分是100202001023,小數部分是35。

第二步:分別將小數部分和整數部分進行轉換,小數部分取出角位的數字和分位的數字分別轉換,本例中角位轉換為“叁角”,分位轉換為“伍分”。整數部分也取出各位對應的值分別轉換成對應的字符串,本例中從千億位到個位分別轉換為“壹仟”“零”“零”“貳億”“零”“貳佰”“零”“萬”“壹仟”“零”“貳拾”“叁元”。

第三步:把前面的轉換結果合并成一個字符串,即“壹仟零零貳億零貳佰零萬壹仟零貳拾叁元叁角伍分”。

第四步:消除合并后所得字符串中多余的字符,如連續的多個“零”,只保留一個“零”,把字符串中的“零億”“零萬”“零元”等分別替換成“億”“萬”“元”,刪除字符串最前面的“億”“元”“零”以及字符串最后面的“零”。本例處理完成后結果,即“壹仟零貳億零貳佰萬壹仟零貳拾叁元叁角伍分”。

第五步:判斷是否在字符串的最后面加上“正”字,整個轉換過程即完成。

綜上,大寫金額轉換算法可以用如圖1所示的N-S流程圖表示。

圖1 大寫金額轉換算法N-S流程圖

3 算法實現[1-2]

3.1 類的定義

定義類ArabToChinese實現用阿拉伯數字書寫的金額到大寫金額的轉換,類的成員數據和成員方法如下:

3.2 類的實現

3.2.1 構造函數的實現

構造函數ArabToChinese的功能是將待轉換的金額s轉換為double類型,并取出各位對應的數字賦值給相應的成員數據,實現代碼如下:

3.2.2 方法DtoC的實現

方法DtoC的功能是將非零的數字轉換成對應的漢字,對應的代碼如下:

3.2.3 將各位數字轉換成對應字符串

分別定義方法將各位數字轉換為對應的字符串,因篇幅所限,且這些方法的實現代碼類似,這里以方法FentoS、JiaotoS、GeweitoS的實現為例進行介紹,這三個方法對應的代碼如下:

3.2.4 GetResult方法的實現

GetResult方法的功能是合并各部分的轉換結果,并刪除多余的字符,得到最終的轉換結果,實現該方法的代碼如下:

3.3 應用舉例

下面通過實例說明轉換方法的使用。如要把101012000100.00轉換為大寫金額,則以字符串“101012000100.00”為參數創建對象,然后通過對象調用成員方法GetResult獲得轉換結果。在C#控制臺應用程序中的實現代碼如下:

程序的輸出結果是“壹仟零壹拾億壹仟貳佰萬零壹佰元正”。

4.結語

本文運用面向對象的程序設計思想,把要轉換的金額和轉換算法封裝為一個整體,并用C#實現了該算法。文中定義的類ArabToChinese能實現整數部分12位(即千億位)和小數部分2位的數字大寫金額轉換,能滿足大多數情況下金額轉換的需求。文中基于類實現的金額轉換方法具有良好的可擴充性,若需要轉換更大范圍的金額,可以從類ArabToChinese派生出新的類,并在新的類中增加相應的成員數據及相應位的轉換方法即可實現。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 91亚洲免费视频| 2020国产在线视精品在| 精品综合久久久久久97超人该| 国产精品自在线天天看片| 欧美午夜视频在线| 久久婷婷综合色一区二区| 99视频在线看| 亚洲国产看片基地久久1024| 热久久综合这里只有精品电影| 一级毛片中文字幕| 国产成人久久综合一区| 丁香六月综合网| 亚欧乱色视频网站大全| 免费人成黄页在线观看国产| 日韩精品一区二区三区视频免费看| 国产第一页亚洲| 尤物在线观看乱码| 国产成人精品优优av| 欧美成人精品高清在线下载| 亚洲日韩高清无码| 免费国产高清视频| 中文字幕在线欧美| 日韩欧美成人高清在线观看| 91系列在线观看| 久久免费成人| 亚洲毛片网站| 蜜桃视频一区二区| 麻豆a级片| 国产美女91视频| 久久久久无码精品| 99视频免费观看| 国产成人91精品免费网址在线| 亚洲妓女综合网995久久| 欧洲av毛片| 欧美性爱精品一区二区三区| 久久精品人人做人人爽97| 91偷拍一区| 欧美色综合久久| 日韩精品一区二区三区免费| 99久久精彩视频| 亚洲视频在线青青| 亚洲人成人无码www| 嫩草在线视频| 日韩亚洲综合在线| 黄色a一级视频| 全部免费特黄特色大片视频| 国产午夜福利在线小视频| 日韩一级毛一欧美一国产| 亚洲一级毛片免费观看| 91年精品国产福利线观看久久| 亚洲国产欧美国产综合久久 | 美女潮喷出白浆在线观看视频| 精品人妻系列无码专区久久| 国产免费久久精品44| 精品偷拍一区二区| 在线不卡免费视频| 国产亚洲视频播放9000| 久久精品国产999大香线焦| 2022精品国偷自产免费观看| 日韩小视频在线观看| 亚洲欧美成人综合| 亚洲天堂在线免费| 国产综合亚洲欧洲区精品无码| 国产福利免费在线观看| 亚洲—日韩aV在线| 久久男人资源站| 日韩精品毛片| 91黄视频在线观看| 欧美精品伊人久久| 欧美色丁香| 国产门事件在线| 国产成人高清在线精品| 国产主播在线观看| 日韩精品一区二区三区免费| 九月婷婷亚洲综合在线| 天天做天天爱夜夜爽毛片毛片| 精品亚洲欧美中文字幕在线看 | 69视频国产| 中文字幕免费在线视频| 亚洲AⅤ永久无码精品毛片| 久久美女精品| 午夜不卡视频|