MFC创建一个实现四则运算而且有优先级的计算器

首先使用资源视图创建出一个UI界面
这里写图片描述

此时,我们只设置了界面,并没有给按钮写入处理函数
使用MFC写按钮处理函数的时候可以在资源视图上双击按钮,也可以选中要添加处理函数的按钮右键选中类向导,选中按钮ID,还有响应消息,添加处理函数
这里写图片描述

这个是按钮“1”的处理函数,ediaA 是编辑框绑定的变量,这个函数是通过点击按钮“1”,然后把 1 赋给编辑框的变量,就可以在编辑框内显示出来,其他的数值按钮都是一样的操作,还有“+”“-”“*”“/”也都是一样的操作,最主要的算法部分就在“=”按钮的处理函数中

这里写图片描述

CString number是为了保存切割过的字符串,保存的是每一个被运算符分割的数字的字符串,Number数组是保存number转成数值之后的值,char保存的是运算符,Tokenize可以循环着寻找被Tokenize函数中的第一个变量中保存的分割符分割开的字符串,但是因为Tokenize函数的第二个参数每次会加到查找过的字符的下一个字符,而且没有越界检查,所以需要提前算出editA字符串的长度,应为editA是CString类型的,直接点出GetLenth函数就能得到editA字符串的长度。然后循环把分割开的字符串赋给number。Tokenize函数每次分割完字符串就会指向找到的分割赋后面的一个字符,便于下一次循环分割字符串,所以我们要想匹配第一个分隔符,就得把 i - 1,editA[ i - 1]才能得到分割赋,然后判断是哪个分隔符,在char数组中存入相对应的标记,这里 加号存1,减号存2,乘号存3,除号存4,。然后把number字符串转成数值存入到Number数组中,这样一个循环我们就可以得到一个数值和一个运算符,一直循环到number等于NULL就停止循环,至此我们已经把算术式中的所有数值和运算符全都分割放在对应的数组中了。
因为涉及到优先级的问题,我们应该先运算乘除,再运算加减,所以优先匹配乘号和除号,如果匹配到乘号或者除号,就根据匹配到的算数符号在数组中的下标,找到Number数组中被该运算符计算的两个数值,一个是下标和运算符下标相同的数值,还有一个是第一个数值的后一个数值。
这个可以用一幅图来理解
这里写图片描述
我们先匹配是乘号还是除号,如果是乘号,就把这个乘号计算的两个数值找到,计算出结果把结果存放在第一个数值的位置,然后把第二个数值的后一个数值赋值到前一个数值上去,再后面的值也是以此类推。运算符号也是如此把用到的运算符用后一个运算符覆盖,这样我们就可以先把算数式中的乘号和除号先计算出来,然后再计算加和减,其过程是一样的,匹配运算符,然后找到这个运算符计算的数值,计算出结果后,把结果保存在第一个数值的位置,然后从第二个运算的数值后一个数值开始所有的数值都向前移一个位置,运算符也是一样,被使用过的运算符就被后面的运算符覆盖,最后数值数组中只会剩下最后一个下标为0的数值,那就是最终结果,用UpdateData(TRUE)UpdateData(FALSE)来设置编辑框中的字符串为最终结果

这里写图片描述

这里写图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
好的,这是一个关于使用C++和MFC创建四则运算计算器的教程。首先,我们需要创建一个MFC的窗口应用程序。 1. 打开Visual Studio,点击File -> New -> Project,选择Visual C++ -> MFC,选择“MFC Application”类型的项目,然后点击“Next”。 2. 在下一个对话框中,输入项目名称和路径,然后点击“Create”。 3. 在“Application Type”页面中,选择“Single document”,然后点击“Finish”。 4. 在解决方案资源管理器中,打开“Resource View”,展开“Dialog”,右键单击“IDD_CALCULATOR_DIALOG”,选择“Properties”。 5. 在“IDD_CALCULATOR_DIALOG Properties”对话框中,将“Title”属性设置为“计算器”,然后点击“OK”。 6. 在“IDD_CALCULATOR_DIALOG”窗口中,添加需要的控件,例如按钮、编辑框和标签。你可以在“Toolbox”中找到这些控件。将它们拖放到窗口中,并根据需要进行调整。 7. 双击每个控件,将它们的ID设置为你喜欢的名称,例如“IDC_BUTTON_ADD”、“IDC_EDIT_INPUT”和“IDC_STATIC_RESULT”。 8. 在“IDD_CALCULATOR_DIALOG”窗口中,双击每个按钮,将它们的响应函数与你的代码关联。例如,你可以将“IDC_BUTTON_ADD”的响应函数设置为“OnBnClickedButtonAdd”。 9. 在你的代码中,实现每个按钮的响应函数,以执行所需的操作。例如,在“OnBnClickedButtonAdd”中,你可以获取用户输入,将其加入到计算器的内部状态中,然后更新结果标签。 10. 运行你的应用程序,测试你的界面和功能。如果一切正常,你的计算器应该可以进行简单的四则运算了。 这是一个简单的MFC计算器界面创建流程。你可以根据需要添加更多的控件和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值