您的位置:首页 > 其它

2012-11-17 12:28 用MFC实现的计算器(详细版)

2013-09-04 11:59 363 查看
这篇文章里通过计算器的简单实现,让大家能够了解一般对话框应用程序开发的基本流程

要求:编写简单的计算器应用程序,要求利用按钮进行加、减、乘,除操作,在对话框输出计算机结果。

下面结合操作步骤,讲解对话框应用程序开发的基本流程:

(1)、在对话框资源上添加按钮和编辑框控件,并设置按钮控件和编辑框控件的标题和ID,并且

将编辑框设置为只读属性。最终的运行结果如下图。



(2)、添加单机数字按钮和加、减、乘、除按钮,及单机“等号”按钮的消息响应函数

(3)、添加消息响应函数的函数体。

(4)、程序调试无错误后,进行测试,分析测试结果。保证程序的正确性。

下面分析本程序的代码:

1、新建一个对话框应用程序Test,采用默认设置;

2、在类CTestDlg中添加数据成员:

CString num1; //数值计算符号前面的数值
CString num2; //数值计算后面的数值
BOOL isresult; //是否按下加、减、乘、除符号
int witch; //是加、减、乘、除哪种计算

3、在CTestDlg::OnInitDialog()函数中对相关变量进行初始化

num1=""; //第一个数据
num2=""; //第二个数据
isresult=FALSE; //保存是否点击了运算按钮
witch=0; //保存运算按钮

4、然后是按钮的响应的函数,下面对同一类的按钮响应函数只列出了一个,其他的都是一样的

void CGeliangDlg::OnN1() //单击“1”按钮
{
// TODO: Add your control notification handler code here
if(isresult==FALSE)
{

num1+="1";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)

{

num2+="1";
m_result=num2;
UpdateData(false);
}
}

void CGeliangDlg::OnN10() //单击“+\-按钮”
{
// TODO: Add your control notification handler code here
CString m_m="-";
if(isresult==FALSE)
{

m_m+=num1;
m_result=m_m;
UpdateData(false);
}
if(isresult==TRUE)
{

m_m+=num2;
m_result=m_m;
UpdateData(false);
}
}

void CGeliangDlg::OnN11() //单击“.”按钮
{
// TODO: Add your control notification handler code here
if(isresult==FALSE)
{

num1+=".";
m_result=num1;
UpdateData(false);
}
if(isresult==TRUE)
{

num2+=".";
m_result=num2;
UpdateData(false);
}
}

void CGeliangDlg::OnJia() //单击“+”按钮
{
// TODO: Add your control notification handler code here
isresult=TRUE;
witch=1;
}

void CGeliangDlg::OnResult() //单击“=”按钮
{
// TODO: Add your control notification handler code here
double number1=atof(num1);
double number2=atof(num2);
double result=0.0;
switch(witch)
{
case 1:result=number1+number2;break;
case 2:result=number1-number2;break;
case 3:result=number1*number2;break;
case 4:result=number1/number2;break;
default:AfxMessageBox("程序运行错误");break;
}
m_result="";
m_result.Format("%f",result);
UpdateData(false);

}

上面的程序代码中,仅给出数字按钮,符号按钮和“+/-”按钮,及“.”按钮,的响应函数。数字键按钮的代码是基本类似的

,符号按钮的代码也是类似的,读者可以自己写出其他按钮的消息映射,然后编写函数代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: