本项目为矿大计算机学院程序设计综合实践教材上提供的源码,比较简单,且有着不能按照优先级进行运算等问题
本项目由VS 2019创建
下一步,改进这个计算器!!!
魏敬杨,2019年11月18日晚
终于,放上了自己敲的源码,基本是将书上代码全部推翻重造了,其中核心计算逻辑的思路来自数据结构课程。
目前,从表面上看起来,这个计算器已经没有太大的问题了,但是它也还有着致命的bug。
整个运算的核心逻辑的是用一个数值栈和一个符号栈并对各操作符设置优先级来实现的。在按动数值和操作符的过程中,我是用了一个队列来临时存放输入的数值和操作符的。
- 用户界面简洁大方,有新意
- 核心运算逻辑没有问题,可以方便的实现拓展
- 对小数进行了精度控制
- 比较巧妙地实现了对负数的输入和操作
- 用一个双向队列来实现后进队的元素也可被弹出
- 用一个栈来暂存按键过程中输入的数值和符号,若需要退格,则将后进栈的元素弹出,在按下等号时,再用另一个栈来做一个中转,实现最初输入的元素的“先进先出”的顺序操作
- 用字符串或字符串数组来实现按键的存放元素的功能
魏敬杨,2019年12月1日晚,补记