实例5实现计算器的输入数据和求和功能

实例5实现计算器的输入数据和求和功能

ID:27401478

大小:58.50 KB

页数:4页

时间:2018-12-03

实例5实现计算器的输入数据和求和功能_第1页
实例5实现计算器的输入数据和求和功能_第2页
实例5实现计算器的输入数据和求和功能_第3页
实例5实现计算器的输入数据和求和功能_第4页
资源描述:

《实例5实现计算器的输入数据和求和功能》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实例5实现计算器的输入数据和求和功能实现步骤:1.创建对话框工程MyCaculator。2.设计对话框界面。注意:将按钮0、1、2连续设置。如图所示:3.设置各个控件的属性;参考如下:控件ID标题按钮IDC_00按钮IDC_11按钮IDC_22按钮IDC_ADD+按钮IDC_EQUAL=按钮IDC_CLEARC编辑框IDC_DISPLAY4.添加消息处理函数首先利用ClassWizard为编辑框控件增加CString型成员变量m_result,该变量用于显示结果。然后再增加相关的消息处理函数。参考如

2、下:控件ID消息消息处理函数函数功能IDC _ADDBN_CLICKEDOnAdd(或者双击按钮增加该消息函数)处理单击加号按钮IDC_EQUALBN_CLICKEDOnEqual(或者双击按钮增加该消息函数)处理单击等号按钮IDC_CLEARBN_CLICKEDOnClear(或者双击按钮增加该消息函数)清除原来的计算结果1.On_COMMAND_RANGE宏可以用上面同样的方法为数字按钮添加消息处理函数,使之响应鼠标单击而进行数据输入。但是对于数字输入来说,对不同的数字按钮所做的处理十分相似,如

3、果采用上述方法就显得很烦琐。2.我们可以利用On_COMMAND_RANGE宏,来处理一系列控件对同一消息处理函数的响应。不过,必须手动加入函数声明,分别在在CMyCaculatorDlg.h和CMyCaculatorDlg.cpp中添加下面的语句:CMyCaculatorDlg.h中:afx_msgvoidOnOperandInput(UINTnID);位置在//{{AFX_MSG(CMyCaculatorDlg)和//}}AFX_MSG之间CMyCaculatorDlg.cpp中:ON_COMM

4、AND_RANGE(IDC_0,IDC_2,OnOperandInput)//注//意:这句末尾不要分号位置在//{{AFX_MSG_MAP(CMyCaculatorDlg)和//}}AFX_MSG_MAP之间。说明:ON_COMMAND_RANGE(IDC_0,IDC_2,OnOperandInput)中的IDC_0表示按钮控件ID的起始值(这里是指控件“0”开始);IDC_2表示按钮控件的结束值(这里是指控件“2”);OnOperandInput标识处理输入的函数。3.在CMyCalculato

5、rDlg的声明处(即CMyCaculatorDlg.h中)添加成员函数和成员变量,参考如下:intm_operand;//存储当前输入的操作数intm_accum;//存储当前的计算处理结果Operatorm_operator;//enum型变量用以标识当前运算符CalcErrorm_errorState;//enum型变量用以标识当前运算状态BOOLm_bOperandAvail;//标识当前输入是否是新输入数字voidCalculate();//处理计算voidUpdateDisplay();/

6、/处理显示其中Operator为enum型结构,用来存储计算符,必须要在CMyCaculatorDlg.h中按照下面的方式定义:enumOperator{OpNone,OpAdd};//操作符可以为加法,可以为无4.完善代码:①处理输入l使用m_operrand来存储当前的输入。l使用OnOperandInput函数来处理,每次单击数字按钮就会调用该函数。在每次输入时都必须将输入的数字累加入m_operand中,对于整数的累加方式:m_operand=m_operand*10+(nID-IDC_0)

7、;//n为输入的数字l需要判断当前是不是进行新的计算输入,函数中使用布尔变量m_bOperandAvail作为标识。当按下任意一个计算符按钮,在响应的消息处理函数中将m_bOperandAvail设为假(0),即表示开始新的计算数输入。l初始化部分变量。根据面向对象德概念,初始化工作可以放在构造函数实现,本程序CMyCaculatorDlg的构造函数中添加:m_operator=OpNone;//刚开始没有任何计算符m_bOperandAvail=FALSE;//初始化m_bOperandAvail

8、,表示没有新的输入l数字输入处理函数OnOperandInput()的实现参考代码:voidCMyCaculatorDlg::OnOperandInput(UINTnID){ASSERT(nID>=0&&nID<=IDC_2);//ASSER宏,用来判断传递给它的//条件表达式。if(!m_bOperandAvail)//是不是输入新的计算数,0-否,1-是{m_operand=0;}m_operand=m_operand*10+(nID-IDC_0);//将输入的数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。