关键步骤、我的关键思路、以及易错点
1、中缀表达式转后缀表达式算法
具体算法见→实验准备
关键思路:
- 为方便小数、多位数、负数的运算,写一个函数将原始中缀表达式中的数字用字母来对应,并存入字典中。
- 开头遇到 “-” 或 “-” 跟在运算符之后时,"-"则为负号 。
- 遇到小数点则加入暂存操作数的字符串。
- 中缀转后缀时,操作数均为字母。
2、后缀表达式求值算法
具体算法见→实验准备
关键思路:
- 将字母在字典中对应的值取出并转换成浮点型后,才可进行运算。
3、自定义槽函数的编写
具体代码见→主窗口py文件
部分关键思路:
- 开头不允许是"+ × ÷ ) . "。
- ".“不允许跟在运算符或”."之后。
- "+ × ÷ )“不能跟在”+×÷("之后。
- “(” 不能跟在 “) .” 之后。
- 小数点个数大于一时删除最后一个小数点。
- 按下等于号时,前面的表达式最后一个字符不能是"+ - × ÷ . (",表达式也不能为空。
调试时的易错点(多次犯的错):
- 易错点:CalculatorWindow类中,在函数外定义的静态变量不能和按钮名称或类内函数同名,否则会出错。
- 错误原因:由于按钮较多,自定义槽函数也较多,所以容易忘记已经使用过的名字,因此类似错误犯了三次,且寻找了很久才发现原因。
- 解决方案:不同类型的命名规则可以不一样,如所有按钮都以Button_xxx的格式命名,所有槽函数都以Slot_xxx的格式命名。(此项目就不再进行修改了,这个解决方案将用到以后的项目中)
——2020/12/6(殷越)