付費下載
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于有限自動機方法的簡單詞法分析程序的設計與實現(xiàn)無符號實數(shù)的識別、實驗目的與要求、實驗內容假設無符號實數(shù)的文法:<REAL <UINT>|<UINT>.<UINT>|<UINT>.<UINT>E<INT>|<UINT>.<UINT>e<INT>| <UINT>E<INT>|<UINT>e<INT><INT>t <UINT>|+<UINT>|-<UINT><UINTi <DIG
2、IT>|<UINT><DIGIT><DIGIT> t 0|1|2| , |9(說明:UINT代表無符號整數(shù),INT代表有符號整數(shù))用正規(guī)式表示:令刀=d,.,e,E,+,-,其中d為09中的數(shù)字,刀上的正規(guī)式為:dd*(.dd*| 9(e|E)(+|-| ?dd*)| 9 畫出識別無符號實數(shù)的有窮自動機,并實現(xiàn)識別程序。、有窮自動機根據(jù)文法或正規(guī)式,畫出NFA,再轉化為DFA。根據(jù)DFA編程。三、程序測試重點在狀態(tài)0、狀態(tài)1、狀態(tài)3和狀態(tài)4下進行驗證。因此,分別輸入以下無符號實數(shù) 進行驗證:(1)不可識別的數(shù):.123 (狀態(tài)0)、123.(狀態(tài)1)、
3、123.2E (狀態(tài)3)、123.2E+ (狀態(tài)4)糧卞一個無符E玫:退出賴一牛無軒號數(shù);|ia£E【a?QQ unsign(2)可識別的數(shù): 2、123、123.67、1234E3、0.234E2、23.2e+2、23.34E-2QQ unsjgnIQ urwigH轍兀一*丟詩號如識91|fl甬附錄:用FMC實現(xiàn)可視化程序一、界面設計 基于對話框的程序。Filet New ProjectMFC AppWizard(exe)在 What type of application would you like to create?中,選擇 Dialog based (基于對話框的應用程序
4、)選項。最后單擊Finish 按鈕。給生成的對話框取名為IDD-WFHSSB-DIALOG刪除原來生成的 OK按鈕、Cancel按鈕和一個文本框,添加三個按鈕:按鈕identify 、按鈕Clear Edit 和按鈕Exit,一個編輯框IDC_EDIT1。打開:在ResourceView選項卡打開 Dialog資源組,然后雙擊 IDD-WFHSSB-DIALOG即可顯示出這個 Dialog設計界面。Dialog中各個對象的屬性:對象IDCaption (標題)編輯框IDC_EDIT1無命令按鈕IDC_BUTTON1ide ntify命令按鈕IDC BUTTON2Clear Edit命令按鈕ID
5、C BUTTON3Exit二、代碼編寫1、給編輯框連接變量給編輯框 IDC_EDIT1 連接一個變量 m_Edit1、m_RealEdit。步驟:(1)鼠標移到編輯框IDC_EDIT1上,右擊,選擇 ClassWizard命令。(2)選擇 Member Variable選項卡。確定Project列表框中為 Wfhssb,確定Class name 列為 CwfhssbDlg.(3)單擊右邊的Add Variable按鈕(4)設置變量名為 m_Edit1,類別為Value,變量類型為 CString。變量名為 m_RealEdit, 類別為control,變量類型為 CEdit (可使用SetFo
6、cus()等)。(5)單擊OK按鈕。2、為IDC_EDIT1編輯框編寫 ChangEdit()代碼:void CWfhssbDlg:O nCha ngeEdit1()/ TODO: Add your con trol no tificati on han dler code here UpdateData(TRUE);3、 給 identify 按鈕連接代碼 給按鈕影射一個消息處理函數(shù),當事件“單擊按鈕”發(fā)生時,發(fā)送一個消息,應用程序 收到消息后,執(zhí)行相應的消息處理函數(shù)。( 1) 在按鈕上右擊,選擇 ClassWizard ,(2) 在 Object IDs 列表框中選擇 IDC_BUTTON
7、1 項( 3) 在 Message 列表中選 BN_CLICKED 項,即選擇“單擊該按鈕”事件。( 4) 單擊 Add Function 按鈕( 5) 接受建議的函數(shù)名 OnButton1().(6) 單擊 Edit Code 按鈕( 7) 在函數(shù)中輸入以下代碼:void CWfhssbDlg:OnButton1()/ TODO: Add your control notification handler code here /identify( 無符號數(shù)識別按鈕單擊響應代碼 ) if(m_Edit1.IsEmpty()MessageBox("no data!"); m_
8、Edit1=_T(""); exit(1);CString num;char state,ch; /定義數(shù)組 num 用于存放要識別的無符號數(shù) ,state 為狀態(tài) int i;num=m_Edit1;num=num+"#"/ 在輸入的字符串的末尾添加一個結束符#(可任選)/MessageBox(num);i=-1; state='0' while(state!='7') i+; ch=num.GetAt(i); / 讀入一個字符 switch(state)case '0': if(isdigit(ch)
9、state='1' else state='7' MessageBox("error!","result"); /printf("error!n"); break;case '1': if(isdigit(ch) state='1'elseif(ch='.') state='2'else if(ch='E'|ch='e') state='4' else state='7' Me
10、ssageBox("right!","result");/printf("right!n");break;case '2':if(isdigit(ch) state='3'elsestate='7' MessageBox("error!","result");/printf("error!n");break;case '3':if(isdigit(ch) state='3'elseif(ch=
11、39;E'|ch='e') state='4'else state='7' MessageBox("right!","result");/printf("right!n"); break;case '4':if(ch='+'|ch='-') state='5'elseif(isdigit(ch) state='6'else state='7' MessageBox("erro
12、r!","result"); /printf("error!n");break;case '5':if(isdigit(ch) state='6'elsestate='7'MessageBox("error!","result"); /printf("error!n");break;case '6':if(isdigit(ch) state='6'elsestate='7'MessageBox("right!","result"); /printf("right!n"); break; /End switch /end while(state!='
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景區(qū)門票贈票管理制度模板(3篇)
- 2026山東事業(yè)單位統(tǒng)考煙臺市市屬招聘122人備考考試試題及答案解析
- 2026江西宜春市豐城市衛(wèi)健系統(tǒng)招聘編外人員18人考試備考試題及答案解析
- 2026年合肥廬江縣中醫(yī)院醫(yī)療集團部分分院公開招聘勞務派遣人員5名備考考試題庫及答案解析
- 新能源汽車電氣系統(tǒng)檢修 課件全套 項目1-6 新能源汽車電氣系統(tǒng)的認知 -新能源汽車空調系統(tǒng)檢測與維修
- 2026中國科學院昆明動物研究所管理部門崗位招聘2人(云南)參考考試題庫及答案解析
- 2026山東濟寧金鄉(xiāng)縣事業(yè)單位招聘初級綜合類崗位人員備考考試題庫及答案解析
- 2026年商洛市洛南縣婦幼保健院招聘(4人)考試參考題庫及答案解析
- 農發(fā)行運營管理制度(3篇)
- 分格縫施工方案(3篇)
- 客戶投訴理賠管理制度
- GB/T 45451.1-2025包裝塑料桶第1部分:公稱容量為113.6 L至220 L的可拆蓋(開口)桶
- 文物基礎知識題庫單選題100道及答案
- 四川省成都市邛崍市2024-2025學年九年級上學期期末化學試題(含答案)
- GB/T 44819-2024煤層自然發(fā)火標志氣體及臨界值確定方法
- 《風力發(fā)電廠調試規(guī)程》
- 搞笑小品劇本《我的健康誰做主》臺詞完整版-宋小寶徐崢
- 正大天虹方矩管鍍鋅方矩管材質書
- 兔子解剖實驗報告
- 雙減背景下家校共育的問題及策略
- 管理養(yǎng)老機構 養(yǎng)老機構的服務提供與管理
評論
0/150
提交評論