嵌入式系統(tǒng)中文輸入法的設(shè)計_第1頁
嵌入式系統(tǒng)中文輸入法的設(shè)計_第2頁
嵌入式系統(tǒng)中文輸入法的設(shè)計_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

嵌入式系統(tǒng)中文輸入法的設(shè)計嵌入式系統(tǒng)中文輸入法的設(shè)計引言目前,以LCD和數(shù)字鍵盤實(shí)現(xiàn)的人機(jī)交互式界面在智能終端中廣泛采用。在不同的應(yīng)用場合,對人機(jī)界面的要求也不同,一些情況下只要求簡單參數(shù)的顯示和選擇,而在一些信息終端中,還要求文字的輸入。CPU(如WinCE)GUIMCU,且其顯示設(shè)備是非標(biāo)準(zhǔn)接口的小LCD。此時,必須找到占用較少資源的低成本實(shí)現(xiàn)方法。MCU128×64LCDUnicode編碼的一、二級常用漢字庫并可進(jìn)行中文輸入。此應(yīng)用中輸入法相關(guān)的代碼和數(shù)據(jù)占用約20kB簡單的中文拼音輸入法輸入法與使用標(biāo)準(zhǔn)鍵盤的PCPC“ni”,而在一般數(shù)字鍵盤下,其按鍵組合則為“64”。在多數(shù)手持式設(shè)備(如智能電話)中,以0~9數(shù)字鍵與幾個簡單的控制鍵實(shí)現(xiàn)漢字輸入,比較著名的是在手機(jī)中廣泛采用的T9和iTap輸入法。這里我們介紹一種簡單的拼音輸入法的實(shí)現(xiàn)方法。120~9PC2~92:abc3:def4:ghi5:jkl6:mno7:pqrs8:tuv9:wxyz而“0”、“*”、“#”鍵則作為輸入法中的控制鍵。我們將“#”作為“選擇鍵”,用于選取同一數(shù)字鍵組合下的不同拼音組合。輸入法中使用了兩個重要數(shù)據(jù)結(jié)構(gòu),分別是PY_NODE和PY_SUBNODE。每個PY_NODE對應(yīng)一個數(shù)字鍵組合,PY_SUBNODE則對應(yīng)一組拼音組合。由于一個數(shù)字組合可對應(yīng)多個拼音組合(如“226”對應(yīng)“ban”、“bao”、“can”、“cao”),因此這兩個結(jié)構(gòu)實(shí)現(xiàn)的是一個兩級的對應(yīng)表。PY_NODEPY_SUBNODE1以下是兩個結(jié)構(gòu)的定義:typedefstructpy_node{unsignedintson[8]; //2~9PY_NODEIDunsignedintfather; //IDstructpy_subnode*ptrpy; //PY_SUBNODE}PY_NODE;typedefromstructpy_subnode{unsignedpy[7]; //本節(jié)點(diǎn)的拼音字符串structpy_subnode*prev; //指向前一PY_SUBNODE的指針structpy_subnode*next; //指向下一PY_SUBNODE的指unsigned*ptrUnicode; //指向本節(jié)點(diǎn)對應(yīng)Unicode碼表的指}PY_SUBNODE;412412PY_SUBNODE250PY_NODE51、漢字按拼音進(jìn)行分組,按常用程度排序,并將漢字轉(zhuǎn)化為Unicode碼或國標(biāo)碼,碼型視系統(tǒng)要求而定;2、將有效拼音轉(zhuǎn)換為數(shù)字鍵盤值組合,如拼音“cui”轉(zhuǎn)為數(shù)字值“284”,這些值對應(yīng)了部分PY_NODE;3、增加中間“b”“c”“don”等節(jié)點(diǎn);4、將數(shù)字鍵組合相同的PY_SUBNODE編成鏈表,由某一PY_NODE中的ptrpy指針指向表頭;5、按數(shù)字鍵組合的關(guān)系,將PY_NODE組成樹。圖1中所示組織關(guān)系并不復(fù)雜,但其工作量不小,一般情況下可編寫轉(zhuǎn)換程序自動建立。圖2為拼音輸入法數(shù)據(jù)結(jié)構(gòu)的一個片斷。在改變當(dāng)前PY_NODE時,一般應(yīng)伴有一些顯示操作,因應(yīng)用不同各有差異,此處不做過多說明。在當(dāng)前節(jié)點(diǎn)下,可以用某一指定控制鍵(如“#”鍵)來選擇此PY_NODE下屬的PY_SUBNODE以縮小漢字的選取范圍。增加功能上述拼音輸入法比較簡單,且完成了輸入法需要的基本功能。對于某些應(yīng)用場合,對輸入法還有更多的要求,可在上述方法的基礎(chǔ)上進(jìn)行改進(jìn)實(shí)現(xiàn)。一些常見的要求和改進(jìn)方法列舉如下:①增加常用字功能在上述輸入法中,增加常用漢字。只考慮國標(biāo)碼中的約7000常用漢字情況下,輸入法所占用的存儲空間增加14kB。②增加聯(lián)想功能為使輸入更為友好,很多輸入法設(shè)有聯(lián)想功能,即在輸入一個漢字后,此漢字常用的后續(xù)漢字自動成為候選項(xiàng)由用戶選擇。③筆劃輸入法筆劃輸入法較之拼音輸入法的優(yōu)勢在于重碼少,輸入不常用漢字時也不必多次翻頁查找。5“7”、“8”、“9”、“*”、如“你”字的組合為“丿”、“丨”、“丿”、“-”、“丨”、“丿”、“丶”。關(guān)系有所不同,如“你”在拼音輸入法下對應(yīng)“64”,而在筆劃輸入法下則對應(yīng)“989089*”。④關(guān)于特殊符號、英文和數(shù)字對于一些常用的特殊符號、英文和數(shù)字的輸入,較常用的做法是將以單獨(dú)的輸入法實(shí)現(xiàn)。軟、硬件設(shè)計輸入法的性能優(yōu)劣,更多的不是體現(xiàn)在算法,而是是否符合實(shí)際需求。因此它的優(yōu)化工作是對前述PY_NODE和PY_SUBNODE組織的優(yōu)化,如漢字次序的安排、聯(lián)想功能中后序字的組織、以及操作界面的設(shè)計是否適合人們的使用習(xí)慣。因算法本身很簡單,所以用C語言可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論