进制转换计算器_第1页
进制转换计算器_第2页
进制转换计算器_第3页
进制转换计算器_第4页
进制转换计算器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一 功能概述本应用是讲从数字键盘输入的某进制的数据按要求转换成其他进制的数据,以实现进制转换。本例程是基于对话框的工程,用一个对话框作为应用程序的主窗口,同时实例通过各种控件实现进制转换功能。其中,控件主要包括以下类型:编辑框,命令按钮、静态文本、群组框、单选按钮、复选框。其中主要控件功能为:“输入数据”和“转换数据”编辑框,分别用于显示输入的数矩和转换的结果。“转换为八进制”、“转换为十六进制”、“转换为十进制”三个命令按钮。用于将输入的数据转换为其他的进制。“重新开始”按钮用于将输入的数据和转换的数据清空。“八进制”、“十进制”、“十六进制”单选按钮对应输入数据的进制。同时为防止输入某进制

2、下无效的按钮,对进制无效的按钮施予静止。本实例中默认输入为十进制。0-9按钮和A-F按钮做为数字键盘“输入数据加进制符号”和“转换数据加进制符号”“数据格式显示选择”群组框中两个复选框作为一组。 应用程序实例界面二 实现步骤步骤一 选择file | new 命令,打开new对话框,选择project选项卡,设置工程名为Calculator,然后单击OK按钮。如下图所示:步骤二打开下图所示对话框,选择基本对话框,其余设置均采用默认操作,单击“完成”按钮完成整个工程的创建,如下图:步骤三在应用程序的主窗口的对话框资源中添加控件,并为对话框中的各个控件添加成员变量和消息响应函数。在已生成的IDD_C

3、ALCUATOR_DIALOG对话框中添加控件资源如下表:控件标题控件类型ID号风格输入数据静态文本IDC_STATIC默认转换数据静态文本IDC_STATIC默认输入数据编辑控件IDC_EDIT_INPUT默认转换数据编辑控件IDC_EDIT_OUTPUT默认0按钮IDC_BUTTON_0默认1按钮IDC_BUTTON_1默认2按钮IDC_BUTTON_2默认3按钮IDC_BUTTON_3默认4按钮IDC_BUTTON_4默认5按钮IDC_BUTTON_5默认6按钮IDC_BUTTON_6默认7按钮IDC_BUTTON_7默认8按钮IDC_BUTTON_8默认9按钮IDC_BUTTON_9默

4、认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默认数据格式选择群组框IDC_STATIC默认输入数据加进制符号复选框IDC

5、_CHECK_INPUT默认输出数据加进制符号复选框IDC_CHECK_OUTPUT默认添加成员变量和消息响应函数消息响应函数如下表:控件ID通知消息消息响应函数IDC_BUTTON_0BN_CLICKEDOnButton0()IDC_BUTTON_1BN_CLICKEDOnButton1()IDC_BUTTON_2BN_CLICKEDOnButton2()IDC_BUTTON_3BN_CLICKEDOnButton3()IDC_BUTTON_4BN_CLICKEDOnButton4()IDC_BUTTON_5BN_CLICKEDOnButton5()IDC_BUTTON_6BN_CLICKE

6、DOnButton6()IDC_BUTTON_7BN_CLICKEDOnButton7()IDC_BUTTON_8BN_CLICKEDOnButton8()IDC_BUTTON_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_CLICKEDOn

7、ButtonF()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()IDC_RADIO_HBN_CLICKEDOnButtonRadioH()成员变量如下表:控件ID数据类型成员变量IDC_B

8、UTTON_8CButtonm_Button_8IDC_BUTTON_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_InputEditIDC_EDIT_OUTPUTCStringM_OutputEditIDC_CHE

9、CK_INPUTBOOLm_Check_InputIDC_CHECK_OUTPUTBOOLm_Check_Output步骤四通过上述步骤完成各个控件的添加和控制,下面将对对话框进和控件进行编程,以实现目标功能数字键按钮初始状态的设定。由于默认的进制为十进制,所以09折十个数字的默认状态是enable。因为系统的所有命令按钮的默认状态是enable,所以需要在初始化的时候将AF的状态设置为disable。选择class view 选项卡,双击CCalculatorDig下面的OnInitDialog()并在return钱添加如下代码:m_button_A.EnableWindow(FALSE);

10、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);在程序运行过程中,数字键按钮的状态需要根据对三个单选按钮的选择而定。它们的事件函数代码分别如下:void CCalculatorDig:OnRADIOo() char_radio=O;value=0;m_button_8.EnableWindow(FALSE);m_button_9.Ena

11、bleWindow(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);void CCalculatorDig:OnRADIOd() char_radio=D;value=0;m_button_8.EnableWindow(TRUE);m_button_9.Enab

12、leWindow(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);void CCalculatorDig:OnRADIOh() char_radio=H;value=0;m_button_8.EnableWindow(TRUE);m_button_9.Enable

13、Window(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);给数字按钮添加代码,07相似以0为例代码如下:void CCalculatorDig:OnButton0() / TODO: Add your control notification handler code h

14、ereint i_chekinput=m_CHECK_INPUT;/.GetState();/获取“数据输入”复选框的状态,1:表示选中switch(char_radio)case D:value=value*10+0;str.Format(%d,value);/将输入数据转化为字符串if(i_chekinput=1)/str=str+d;break;case O:value=value*8+0;str.Format(%o,value);/将输入数据转化为字符串if(i_chekinput=1)/str=str+o;break;case H:value=value*16+0;str.Forma

15、t(%x,value);/将输入数据转化为字符串if(i_chekinput=1)/str=str+H;break;m_inputedit=str;UpdateData(FALSE);8,9不考虑八进制输入一8为例代码如下:void CCalculatorDig:OnButton8() int i_chekinput=m_CHECK_INPUT;/.GetState();/获取“数据输入”复选框的状态,1:表示选中switch(char_radio)case D:value=value*10+8;str.Format(%d,value);/将输入数据转化为字符串if(i_chekinput=0

16、)/str=str+D;break;case H:value=value*16+8;str.Format(%x,value);/将输入数据转化为字符串if(i_chekinput=0)/str=str+H;break;m_inputedit=str;UpdateData(FALSE);/ TODO: Add your control notification handler code hereAF以A为例代码如下:void CCalculatorDig:OnButtonA() int i_chekinput=m_CHECK_INPUT;/.GetState();/获取“数据输入”复选框的状态,

17、1:表示选中value=value*16+0x0A;str.Format(%x,value);/将输入数据转化为字符串if(i_chekinput=0)/str=str+H;/ TODO: Add your control notification handler code here三个转换按钮事件的编写代码如下:void CCalculatorDig:OnBUTTONtod() / TODO: Add your control notification handler code hereint i_checkoutput=m_CHECK_OUTPUT;/.GetState();str.For

18、mat(%d,value);if(i_checkoutput=1)str=str+D;m_outpuedit=str;UpdateData(FALSE);/void CCalculatorDig:OnBUTTONtoh() int i_checkoutput=m_CHECK_OUTPUT;/.GetState();str.Format(%0x,value);if(i_checkoutput=0)str=str+h;m_outpuedit=str;UpdateData(FALSE);/ TODO: Add your control notification handler code herevoid CCalculatorDig:OnBUTTONtoo() int i_checkoutput=m_CHECK_OUTPUT;/.GetState();str.Format(%o,value);if(i_checkoutput=0)str=str+o;m_outpuedit=str;UpdateData(FALSE);/ TODO: Add your control notification hand

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论