QT学习项目一之计算器
计算器需求
1、UI设计
需求:九个基本数字,小数点,基本运算符号,回退,等于,一个输入和显示的lineEdit。
如图:
2、功能设计
功能设计即使,编写计算器实现的逻辑功能代码,在一个完整的应用程序中,UI界面的实现和逻辑功能实现的代码应该分开实现,UI界面通过接口(父类虚函数)调用逻辑功能中的代码,但不是直接去使用,最后通过一个类,将UI和功能实现封装起来。实现整个计算器的应用程序。
2.1:计算器逻辑功能之一——分离(spilit用队列实现)
我们计算器输入的是一串字符串,我们首先需要将字符串中数字、运算符、括号分开。
tips
我们需要注意的是正负号与运算符之间的区分:三种情况
1:+ -前面啥字符都没有即为 正负号
2:+ -前面的字符为( )即为 正负号
3:+ -前面的字符为+ -即为正负号
2.2:计算器逻辑功能之一——匹配(match用栈实现)
注意上面分离的tips即可正确分离输入的字符串,但是我们需要对分离的tips进行匹配,因为用户输入的表达式可能不规范。
匹配