小寫金額換為大寫金額實現(xiàn)

小寫金額換為大寫金額實現(xiàn)

ID:34762798

大?。?4.63 KB

頁數(shù):8頁

時間:2019-03-10

小寫金額換為大寫金額實現(xiàn)_第1頁
小寫金額換為大寫金額實現(xiàn)_第2頁
小寫金額換為大寫金額實現(xiàn)_第3頁
小寫金額換為大寫金額實現(xiàn)_第4頁
小寫金額換為大寫金額實現(xiàn)_第5頁
資源描述:

《小寫金額換為大寫金額實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、前言  銀行、單位和個人填寫的各種票據(jù)和結(jié)算憑證是辦理支付結(jié)算和現(xiàn)金收付的重要依據(jù),直接關(guān)系到支付結(jié)算的準(zhǔn)確、及時和安全。票據(jù)和結(jié)算憑證是銀行、單位和個人憑以記載帳務(wù)的會計憑證,是記載經(jīng)濟(jì)業(yè)務(wù)和明確經(jīng)濟(jì)責(zé)任的一種書面證明。因此,填寫票據(jù)和結(jié)算憑證,必須做到標(biāo)準(zhǔn)化、規(guī)范化,要要素齊全、數(shù)字正確、字跡清晰、不錯漏、不潦草,防止涂改。  我的服務(wù)需要一個金額轉(zhuǎn)換過程,本來想在網(wǎng)上找,但都是C++、JavaScript、Delphi的Demo,還沒有C的。索性自己寫一個。參考了其它的轉(zhuǎn)換算法,對我有些啟

2、發(fā)?! 〈蠖嗟乃惴ǘ际侵苯臃治鲎址纱髮懡痤~,即存在一個假設(shè):源字符串的格式是正確的。在我的過程中,用狀態(tài)機(jī)的方法分析源字符串,錯誤時,返回空指針(我可不敢保證傳給我的過程的都是##.##)?!》治龀鲈醋址姓麛?shù)部有多少個數(shù)字,是否有小數(shù),統(tǒng)計結(jié)果放在一個結(jié)構(gòu)體中,整數(shù)和小數(shù)部分的數(shù)字分別放在兩個整形數(shù)組里?! ∮辛私y(tǒng)計數(shù)據(jù)就可以生成大寫金額了。轉(zhuǎn)換過程有個難點:要區(qū)分萬、億等“段”,特別是個位這個“段”,這個概念是在《小寫轉(zhuǎn)大寫金額在C++中的實現(xiàn)》文章中提到的。在下面的程序中用j=(s

3、ize-i-1)&0x3,實際上是j=(size-i-1)%4取模,j==0時為段尾,需要特殊處理。所有的處理都是圍繞0來進(jìn)行的,也就是說,0才是難點。  特殊位置的0,按段分,段中第一個非0數(shù)字前的0,可能有多個;段中兩個非0數(shù)字間的0;段尾的0;個位的0;十分位,角位置的0?! ×硗猓D(zhuǎn)換的一個重點是大寫金額的寫法,好像大多的算法都注重轉(zhuǎn)換過程而對這個問題沒有深究。我在文章后面附上轉(zhuǎn)換規(guī)則。下面是代碼1./**2.*@brief將源字符串中的小寫金額轉(zhuǎn)換為大寫格式3.*4.*@paramde

4、st目的字符串5.*@paramsrc??小寫金額字符串6.*@return7.*-NULL源字符串的格式錯誤,返回NULL8.*-非NULL目的字符串的首地址9.*@note轉(zhuǎn)換根據(jù):中國人民銀行會計司編寫的最新《企業(yè)、銀行正確辦理支付結(jié)算10.*????指南》的第114頁-第115頁11.*/12.char*chineseFee(char*dest,char*src)13.{14.??enum1.??{2.??????START,????????????//開始3.??????MINUS,?

5、???????????//負(fù)號4.??????ZEROINT,??????????//0整數(shù)5.??????INTEGER,??????????//整數(shù)6.??????DECIMAL,??????????//小數(shù)點7.??????DECIMALfRACTION,????//小數(shù)位8.??????END,????????????//結(jié)束9.??????ERROR????????????//錯誤10.??}status=START;11.??struct12.??{13.??????intminus

6、;????????//0為正,1為負(fù)14.??????intsizeInt;15.??????intsizeDecimal;16.??????intinteger[10];17.??????intdecimal[10];18.??}feeInfo;19.??char*NumberChar[]=20.??????{"零","壹","貳","叁","肆","伍","陸","柒","捌","玖"};21.??char*UnitChar[]=22.??????{"整","圓","拾","佰","仟","

7、萬","拾","佰","仟","億",23.??????"拾","佰","仟","萬億","拾","佰","仟","億億",24.??????"角","分","負(fù)","人民幣"};25.??????26.??int????i,j,size;????????//循環(huán)變量27.??int????zeroTag??????=0,??//0標(biāo)志28.????????decZeroTag????=0;29.????30.??char*??pDest??????=dest;31.??char*??pSrc?

8、???????=src;32.??33.??int*????pInt????????=feeInfo.integer;34.??int*????pDec????????=feeInfo.decimal;1.??2.??//初始化3.??feeInfo.sizeInt??????=0;4.??feeInfo.sizeDecimal??=0;5.??feeInfo.minus??????=0;6.??7.??//分析字符串8.??while(1)9.??{10.??????switch(*pSrc)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。