计算器的设计
1.需求说明
计算器主要功能是根据用户的输入,进行适当的计算。里面需要有内置函数、变量记录功能。
2.功能、对象
根据需要,我们可以大致抽象出一些对象来:
解析器:负责解析式子,目标是将输入的字符串转换成一个算术树,逆波兰序
符号表:记录出现过的符号(符号包括:变量名、内置函数、内置常量)
扫描器:从左往右的扫描缓冲器并将它们转换成记号
存储器:存储着变量的值
函数表:存储着一些内置函数
3.设计
采用自顶向下设计的设计方法,下面是顶层的结构:
{
函数表:FunctionaTable
存储表:Store
While(true)
1.读取用户输入
2.创建扫描器Scanner
3.创建解析器Parser
4.获得值Eval
}
4.逐步完善
现在开始逐渐完善上面的函数
4.1 扫描器
扫描器功能分析:
扫描器需要有什么功能呢?扫描器需要对用户的输入进行解析,根据输入给出记号,具体怎么处理记号不归扫描器的管。