进制转换计算器.docx
- 文档编号:17122012
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:13
- 大小:43.39KB
进制转换计算器.docx
《进制转换计算器.docx》由会员分享,可在线阅读,更多相关《进制转换计算器.docx(13页珍藏版)》请在冰点文库上搜索。
进制转换计算器
功能概述
本应用是讲从数字键盘输入的某进制的数据按要求转换成其他进制的数据,以实现进制转换。
本例程是基于对话框的工程,用一个对话框作为应用程序的主窗口,同时实例通过各种控件实现进制转换功能。
其中,控件主要包括以下类型:
编辑框,命令按钮、静态文本、群组框、单选按钮、复选框。
其中主要控件功能为:
·“输入数据”和“转换数据”编辑框,分别用于显示输入的数矩和转换的结果。
·“转换为八进制”、“转换为十六进制”、“转换为十进制”三个命令按钮。
用于将输入的数据转换为其他的进制。
“重新开始”按钮用于将输入的数据和转换的数据清空。
·“八进制”、“十进制”、“十六进制”单选按钮对应输入数据的进制。
同时为防止输入某进制下无效的按钮,对进制无效的按钮施予静止。
本实例中默认输入为十进制。
·0-9按钮和A-F按钮做为数字键盘
·“输入数据加进制符号”和“转换数据加进制符号”
·“数据格式显示选择”群组框中两个复选框作为一组。
应用程序实例界面
实现步骤
步骤一
选择file|new命令,打开new对话框,选择project选项卡,设置工程名为Calculator,然后单击OK按钮。
如下图所示:
步骤二
打开下图所示对话框,选择基本对话框,其余设置均采用默认操作,单击“完成”按钮完成整
个工程的创建,如下图:
步骤三
在应用程序的主窗口的对话框资源中添加控件,并为对话框中的各个控件添加成员变量和消息响应函数。
在已生成的IDD_CALCUATOR_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
默认
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_CHECK_INPUT
默认
输出数据加进制符号
复选框
IDC_CHECK_OUTPUT
默认
添加成员变量和消息响应函数
消息响应函数如下表:
控件ID
通知消息
消息响应函数
IDC_BUTTON_0
BN_CLICKED
OnButton0()
IDC_BUTTON_1
BN_CLICKED
OnButton1()
IDC_BUTTON_2
BN_CLICKED
OnButton2()
IDC_BUTTON_3
BN_CLICKED
OnButton3()
IDC_BUTTON_4
BN_CLICKED
OnButton4()
IDC_BUTTON_5
BN_CLICKED
OnButton5()
IDC_BUTTON_6
BN_CLICKED
OnButton6()
IDC_BUTTON_7
BN_CLICKED
OnButton7()
IDC_BUTTON_8
BN_CLICKED
OnButton8()
IDC_BUTTON_9
BN_CLICKED
OnButton9()
IDC_BUTTON_A
BN_CLICKED
OnButtonA()
IDC_BUTTON_B
BN_CLICKED
OnButtonB()
IDC_BUTTON_C
BN_CLICKED
OnButtonC()
IDC_BUTTON_D
BN_CLICKED
OnButtonD()
IDC_BUTTON_E
BN_CLICKED
OnButtonE()
IDC_BUTTON_F
BN_CLICKED
OnButtonF()
IDC_BUTTON_RESET
BN_CLICKED
OnButtonReset()
IDC_BUTTON_TO_O
BN_CLICKED
OnButtonToO()
IDC_BUTTON_TO_H
BN_CLICKED
OnButtonToH()
IDC_BUTTON_TO_D
BN_CLICKED
OnButtonToD()
IDC_RADIO_D
BN_CLICKED
OnButtonRadioD()
IDC_RADIO_O
BN_CLICKED
OnButtonRadioO()
IDCRADIOH
BNCLICKED
OnButtonRadioH()
成员变量如下表:
控件ID
数据类型
成员变量
IDC_BUTTON_8
CButton
m_Button_8
IDC_BUTTON_9
CButton
m_Button_9
IDC_BUTTON_A
CButton
m_Button_A
IDC_BUTTON_B
CButton
m_Button_B
IDC_BUTTON_C
CButton
m_Button_C
IDC_BUTTON_D
CButton
m_Button_D
IDC_BUTTON_E
CButton
m_Button_E
IDC_BUTTON_F
CButton
m_Button_F
IDC_EDIT_INPUT
CString
m_InputEdit
IDC_EDIT_OUTPUT
CString
M_OutputEdit
IDC_CHECK_INPUT
BOOL
m_Check_Input
IDC_CHECK_OUTPUT
BOOL
m_Check_Output
步骤四
0~9折十个数字的默认状
通过上述步骤完成各个控件的添加和控制,下面将对对话框进和控件进行编程,以实现目标功能
1数字键按钮初始状态的设定。
由于默认的进制为十进制,所以态是enable。
因为系统的所有命令按钮的默认状态是enable,所以需要在初始化的时候将
A~F的状态设置为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);
2
它们的事件
在程序运行过程中,数字键按钮的状态需要根据对三个单选按钮的选择而定。
函数代码分别如下:
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);
}
3给数字按钮添加代码,0~7相似以0为例代码如下:
voidCCalculatorDig:
:
OnButton0()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
inti_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.Format("%x",value);//将输入数据转化为字符串
if(i_chekinput==1)//
str=str+"H";
break;
}
m_inputedit=str;
UpdateData(FALSE);
48,9不考虑八进制输入一8为例代码如下:
voidCCalculatorDig:
:
OnButton8()
{
inti_chekinput=m_CHECK_INPUT;//.GetState();//获取“数据输入”复选框的状态,1:
表
示选中
switch(char_radio)
{
case'D':
value=value*10+8;
str.Format("%d",value);//将输入数据转化为字符串
if(i_chekinput==0)//
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:
Addyourcontrolnotificationhandlercodehere
}
5A~F以A为例代码如下:
voidCCalculatorDig:
:
OnButtonA()
{
inti_chekinput=m_CHECK_INPUT;//.GetState();//获取“数据输入”复选框的状态,1:
表
示选中
value=value*16+0x0A;
str.Format("%x",value);//将输入数据转化为字符串
if(i_chekinput==0)//
str=str+"H";//TODO:
Addyourcontrolnotificationhandlercodehere
}
6三个转换按钮事件的编写代码如下:
voidCCalculatorDig:
:
OnBUTTONtod()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
inti_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_outpuedit=str;
UpdateData(FALSE);//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCalculatorDig:
:
OnBUTTONtoo()
{
inti_checkoutput=m_CHECK_OUTPUT;//.GetState();
str.Format("%o",value);
if(i_checkoutput==0)
str=str+"o";
m_outpuedit=str;
UpdateData(FALSE);
//TODO:
Addyourcontrolnotificationhandlercodehere
}
上述代码中str为全局变量,把输入的数据转换为CString类型的字符串以供显示。
7“重新开始”代码如下:
voidCMyDlg:
:
OnBUTTONreset()
{
m_inputedit="";
m_outpuedit="";
value=0;
UpdateData(FALSE);
}
步骤五
保存工程,编译,连接,运行程序。
我们通过一个简单的实例,介绍了各种常用控件的使用方法。
控件是运行Windows应用程
序开发的常用工具。
同学们在学习本例之后,知道如何定义控件变量,如何调用控件的方法,
visualc++程序开发中的使用。
以及如何定义控件的事件驱动函数等,进一步掌握控件在
小结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 转换 计算器
![提示](https://static.bingdoc.com/images/bang_tan.gif)