進制轉換計算器_第1頁
進制轉換計算器_第2頁
進制轉換計算器_第3頁
進制轉換計算器_第4頁
進制轉換計算器_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

功能概述本應用是講從數(shù)字鍵盤輸入的某進制的數(shù)據(jù)按要求轉換成其他進制的數(shù)據(jù),以實現(xiàn)進制轉換。本例程是基于對話框的工程,用一個對話框作為應用程序的主窗口,同時實例通過各種控件實現(xiàn)進制轉換功能。其中,控件主要包括以下類型:編輯框,命令按鈕、靜態(tài)文本、群組框、單選按鈕、復選框。其中主要控件功能為:■“輸入數(shù)據(jù)”和“轉換數(shù)據(jù)”編輯框,分別用于顯示輸入的數(shù)矩和轉換的結果。?“轉換為八進制”、“轉換為十六進制”、“轉換為十進制”三個命令按鈕。用于將輸入的數(shù)據(jù)轉換為其他的進制。“重新開始”按鈕用于將輸入的數(shù)據(jù)和轉換的數(shù)據(jù)清空。?“八進制”、“十進制”、“十六進制”單選按鈕對應輸入數(shù)據(jù)的進制。同時為防止輸入某進制下無效的按鈕,對進制無效的按鈕施予靜止。本實例中默認輸入為十進制。?0-9按鈕和A-F按鈕做為數(shù)字鍵盤?“輸入數(shù)據(jù)加進制符號”和“轉換數(shù)據(jù)加進制符號”?“數(shù)據(jù)格式顯示選擇”群組框中兩個復選框作為一組。

應用程序實例界面實現(xiàn)步驟步驟一選擇file|new命令,打開new對話框,選擇project選項卡,設置工程名為Calculator然后單擊OK按鈕。如下圖所示:

步驟二打開下圖所示對話框,選擇基本對話框,其余設置均采用默認操作,單擊“完成”按鈕完成整個工程的創(chuàng)建,如下圖:

步驟三在應用程序的主窗口的對話框資源中添加控件,并為對話框中的各個控件添加成員變量和消息響應函數(shù)。在已生成的IDDCALCUATORDIALOG對話框中添加控件資源如下表:控件標題控件類型ID號風格輸入數(shù)據(jù)靜態(tài)文本IDC_STATIC默認轉換數(shù)據(jù)靜態(tài)文本IDC_STATIC默認輸入數(shù)據(jù)編輯控件IDC_EDIT_INPUT默認轉換數(shù)據(jù)編輯控件IDC_EDIT_OUTPUT默認0按鈕IDC_BUTTON_O默認1按鈕IDC_BUTT0N_1默認2按鈕IDC_BUTT0N_2默認3按鈕IDC_BUTT0N_3默認4按鈕IDC_BUTT0N_4默認5按鈕IDC_BUTT0N_5默認6按鈕IDC_BUTT0N_6默認7按鈕IDC_BUTTON_7默認8按鈕IDC_BUTT0N_8默認9按鈕IDC_BUTT0N_9默認A按鈕IDC_BUTTON_A默認

B按鈕IDC_BUTTON_B默認C按鈕IDC_BUTTON_C默認D按鈕IDC_BUTTON_D默認E按鈕IDC_BUTTON_E默認F按鈕IDC_BUTTON_F默認重新開始按鈕IDC_BUTTON_RESET默認轉換為八進制按鈕IDC_BUTTON_TO_O默認轉換為十六進制按鈕IDC_BUTTON_TO_H默認轉換為十進制按鈕IDC_BUTTON_TO_D默認八進制單選按鈕IDC_RADIO_O默認十進制單選按鈕IDC_RADIO_D默認十六進制單選按鈕IDC_RADIO_H默認數(shù)據(jù)格式選擇群組框IDC_STATIC默認輸入數(shù)據(jù)加進制符號復選框IDC_CHECK_INPUT默認輸出數(shù)據(jù)加進制符號復選框IDC_CHECK_OUTPUT默認添加成員變量和消息響應函數(shù)消息響應函數(shù)如下表:控件ID通知消息消息響應函數(shù)IDC_BUTTON_0BN_CLICKEDOnButtonO()IDC_BUTTON_1BN_CLICKED0nButton1()IDC_BUTT0N_2BN_CLICKEDOnButton2()

IDC_BUTT0N_3BN_CLICKED0nButton3()IDC_BUTT0N_4BN_CLICKED0nButton4()IDC_BUTT0N_5BN_CLICKEDOnButton5()IDC_BUTT0N_6BN_CLICKEDOnButton6()IDC_BUTT0N_7BN_CLICKEDOnButton7()IDC_BUTT0N_8BN_CLICKEDOnButton8()IDC_BUTT0N_9BN_CLICKEDOnButton9()IDC_BUTTON_ABN_CLICKEDOnButtonA()IDC_BUTTON_BBN_CLICKEDOnButtonB()IDC_BUTTON_CBN_CLICKEDOnButtonC()IDC_BUTTON_DBN_CLICKEDOnButtonD()IDC_BUTTON_EBN_CLICKEDOnButtonE()IDC_BUTTON_FBN_CLICKEDOnButtonF()IDC_BUTTON_RESETBN_CLICKEDOnButtonReset()IDC_BUTTON_TO_OBN_CLICKEDOnButtonToO()IDC_BUTTON_TO_HBN_CLICKEDOnButtonToH()IDC_BUTTON_TO_DBN_CLICKEDOnButtonToD()IDC_RADIO_DBN_CLICKEDOnButtonRadioD()IDC_RADIO_OBN_CLICKEDOnButtonRadioO()IDCRADIOHBNCLICKEDOnButtonRadioH()成員變量如下表:

控件ID數(shù)據(jù)類型成員變量IDC_BUTT0N_8CButtonm_Button_8IDC_BUTT0N_9CButtonm_Button_9IDC_BUTTON_ACButtonm_Button_AIDC_BUTTON_BCButtonm_Button_BIDC_BUTTON_CCButtonm_Button_CIDC_BUTTON_DCButtonm_Button_DIDC_BUTTON_ECButtonm_Button_EIDC_BUTTON_FCButtonm_Button_FIDC_EDIT_INPUTCStringm_lnputEditIDC_EDIT_OUTPUTCStringM_OutputEditIDC_CHECK_INPUTBOOLm_Check_lnputIDC_CHECK_OUTPUTBOOLm_Check_Output步驟四通過上述步驟完成各個控件的添加和控制,下面將對對話框進和控件進行編程,以實現(xiàn)目標功數(shù)字鍵按鈕初始狀態(tài)的設定。由于默認的進制為十進制,所以態(tài)0~9折十個數(shù)字的默認狀是enable。因為系統(tǒng)的所有命令按鈕的默認狀態(tài)是enable,所以需要在初始化的時候將A~F的狀態(tài)設置為disable。選擇classview選項卡,雙擊CCalculatorDig下面的OnInitDialog()并在return錢添加如下代碼:m_button_A.EnableWindow(FALSE);m_button_B.EnableWindow(FALSE);m_button_C.EnableWindow(FALSE);m_button_D.EnableWindow(FALSE);m_button_E.EnableWindow(FALSE);m_button_F.EnableWindow(FALSE);在程序運行過程中,數(shù)字鍵按鈕的狀態(tài)需要根據(jù)對三個單選按鈕的選擇而定。它們的事件函數(shù)代碼分別如下:voidCCalculatorDig::OnRADIOo(){char_radio='O';value=0;m_button_8.EnableWindow(FALSE);m_button_9.EnableWindow(FALSE);m_button_A.EnableWindow(FALSE);m_button_B.EnableWindow(FALSE);m_button_C.EnableWindow(FALSE);m_button_D.EnableWindow(FALSE);m_button_E.EnableWindow(FALSE);m_button_F.EnableWindow(FALSE);voidCCalculatorDig::OnRADIOd(){char_radio='D';value=0;m_button_8.EnableWindow(TRUE);m_button_9.EnableWindow(TRUE);m_button_A.EnableWindow(FALSE);m_button_B.EnableWindow(FALSE);m_button_C.EnableWindow(FALSE);m_button_D.EnableWindow(FALSE);m_button_E.EnableWindow(FALSE);m_button_F.EnableWindow(FALSE);voidCCalculatorDig::OnRADIOh()char_radio='H';value=0;m_button_8.EnableWindow(TRUE);m_button_9.EnableWindow(TRUE);m_button_A.EnableWindow(TRUE);m_button_B.EnableWindow(TRUE);m_button_C.EnableWindow(TRUE);m_button_D.EnableWindow(TRUE);m_button_E.EnableWindow(TRUE);m_button_F.EnableWindow(TRUE);}給數(shù)字按鈕添加代碼,0~7相似以0為例代碼如下:voidCCalculatorDig::OnButton0(){//TODO:Addyourcontrolnotificationhandlercodehereinti_chekinput=m_CHECK_INPUT;//.GetState();//獲取“數(shù)據(jù)輸入”復選框的狀態(tài)1:表示選中switch(char_radio){case'Dvalue=value*10+0;str.Format("%d",value);//將輸入數(shù)據(jù)轉化為字符串if(i_chekinput==1)//str=str+"d";break;case'O':value=value*8+0;str.Format("%o",value);//將輸入數(shù)據(jù)轉化為字符串if(i_chekinput==1)//str=str+"o";break;case'H':value=value*16+0;str.Format("%x",value);//將輸入數(shù)據(jù)轉化為字符串if(i_chekinput==1)//str=str+"H";break;}m_inputedit=str;UpdateData(FALSE);8,9不考慮八進制輸入一8為例代碼如下:voidCCalculatorDig::OnButton8(){inti_chekinput=m_CHECK_INPUT;//.GetState();//獲取“數(shù)據(jù)輸入”復選框的狀態(tài)1:表示選中switch(char_radio){case'D':value=value*10+8;str.Format("%d",value);//將輸入數(shù)據(jù)轉化為字符串if(i_chekinput==0)//str=str+"D";break;case'H':value=value*16+8;str.Format("%x",value);//將輸入數(shù)據(jù)轉化為字符串if(i_chekinput==0)//str=str+"H";break;}m_inputedit=str;UpdateData(FALSE);//TODO:Addyourcontrolnotificationhandlercodehere}A~F以A為例代碼如下:voidCCalculatorDig::OnButtonA(){inti_chekinput=m_CHECK_INPUT;//.GetState();//獲取“數(shù)據(jù)輸入”復選框的狀態(tài),1表示選中value=value*16+0x0A;str.Format("%x",value);//將輸入數(shù)據(jù)轉化為字符串if(i_chekinput==0)//str=str+"H";//TODO:Addyourcontrolnotificationhandlercodehere}三個轉換按鈕事件的編寫代碼如下:voidCCalculatorDig::OnBUTTONtod(){//TODO:Addyourcontrolnotificationhandlercodehereinti_checkoutput=m_CHECK_OUTPUT;//.GetState();str.Format("%d",value);if(i_checkoutput==1)str=str+"D";m_outpuedit=str;UpdateData(FALSE);//voidCCalculatorDig::OnBUTTONtoh(){inti_checkoutput=m_CHECK_OUTPUT;//.GetState();str.Format("%0x",value);if(i_checkoutput==0)str=str+"h";m_outpue

溫馨提示

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

評論

0/150

提交評論