基于MFC(vs2017)简单计算器实现的详细讲解及代码分析

基于MFC(vs2017)简单计算器实现的详细讲解及代码分析

2023年7月17日发(作者:)

基于MFC(vs2017)简单计算器实现的详细讲解及代码分析@# 声明:本次实验的完成,得益于⽹络资源。特别感谢⼏位博主的分享,在接下来的分享中,我将会把他们的链接放上,供⼤家参考。前⾔:本程序可以实现简单的加减乘除,并能够实时显⽰输⼊的数字和输出结果。同时肯定也会有各种没想到的BUG,望采⽤者⾃⾏完善。## ⼀、实验⽬的基于visualStudio2017平台,实现简单的加减乘除,并且能实时显⽰输⼊的数字和输出结果。## ⼆、实验步骤1、新建⼯程 ,具体的实现步骤可以参考链接: .;该⽂章有详细的建MFC⼯程的步骤。 2、进⼊对话框的控件界⾯ 我们选择了17个BOTTON控件,3个EDIT Control,其中2个EDIT Control是作为中间储存变量,在最终界⾯被隐藏,其计算器⼯作界⾯如图1。 3、具体代码分析(1)、1~9数字button的处理,以数字1的button为例。其中flag是设置的标志位,为了把±/的button前后输⼊的数字分开,便于下⾯计算;editv 是EDIT Control1的控件的值,⽤于显⽰输⼊的数字,resultv是EDIT Control2的控件的值,⽤于存储±/的button前输⼊的数字。 (2)、关于“±/button”的处理,以add的button为例。其中m_sign是字符型变量,⽤于存储±/字符。 3)、关于“删除、清空”botton的处理。Editv=(gth()-1),Left(n)取左边n个字符,gth()取editv的长度,长度-1就是删除最后⼀个;实现清空⽤editv=””;resultv = “”;resultv2 = “”。 (4)、关于“=”botton的处理。其中m_fNumber1 =_tstof(resultv)语句,是将CString 型的resultv数转换成double型的m_fNumber1,便于计算;函数中,⽤了switch语句来判断是什么运算;(_T("%.5lf"), f);strsum是⼀个定义的CString 型的变量,⽤于存储double型的变量f转换成CString 型的值。void CMFCCalculatorDlg::OnBnClickedButtonsum(){ CString strsum; editv += '='; m_fNumber1 = _tstof(resultv); m_fNumber2 = _tstof(resultv2); double f = 0.0f; switch (m_sign) { //加 case '+': f = m_fNumber1 + m_fNumber2; break; //减 case '-': f = m_fNumber1 - m_fNumber2; break; //乘 case '*': f = m_fNumber1 * m_fNumber2; break; //除 case '/': if (m_fNumber2 == 0.0f) { f = m_fNumber1; } else { f = m_fNumber1 / m_fNumber2; } break; default: break; } m_fNumber1 = 0.0f; m_fNumber2 = 0.0f; (_T("%.5lf"), f); editv += strsum; resultv3 = strsum; UpdateData(false);}三、实验结果

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689608297a270259.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信