本文介绍利用有限状态机原理开发计算器小程序的过程。
实现的功能
- 支持整数、小数输入
- 支持+ - * / 四则运算
- CE 清除当前操作数
- C 清除所有、回到初始状态
- 回显操作数和结果
HSM状态图
计算器可以分为七种状态:Start、Operand_1、Negate_1、Operator、Operand_2、Negate_2、Error。其中Start、Operand_1、Operand_1状态又分了几种子状态。
下面简要的介绍下状态状态转换的过程:
- 启动软件,进入Start状态
- 当用户点击1-9、0、Point按钮,软件进入Operand_1 状态。
- 当用户点击+、-、*、/按钮,软件进入Operator状态。
- 此时当用户再次点击1-9、0、Point按钮,软件进入Operand_2 状态。
- 如果用户点击=按钮,软件就进入了Start状态。
- 如果此时进行的是除法运算且除数为0,软件进入Error状态,用户只有点击C按钮才可以跳出。
在实际开发的过程中,我们只需要关心现在程序处在什么状态,可以进行什么样的操作。然后就是状态转换的条件要处理下。