C++实现带括号的DOS计算器程序

需积分: 11 8 下载量 125 浏览量 更新于2024-09-14 1 收藏 4KB TXT 举报
在这个C++版的DOS计算器程序中,作者花费了相当的时间来实现一个功能丰富的基础算术工具。该计算器支持括号运算,并采用了枚举类型`Token_value`来表示不同类型的运算符和符号,如数字、运算符、字符串名称、结束符等。主要的关键类和函数包括`Token_value`, `number_value`, `string_value`, `table`, `no_of_errors`, `error`以及`get_token`和`expr`。 `Token_value`枚举用于定义程序处理的不同类型的输入,比如数字(NUMBER)、运算符(如PLUS, MINUS, MUL, DIV), 以及分号(PRINT)、赋值(ASSIGN)、括号(LP, RP)。`get_token`函数负责从标准输入读取字符,并根据字符类型返回相应的Token_value,同时处理错误情况,如遇到非法字符或不完整表达式。 `error`函数用于记录并报告错误,当遇到无效的输入时,会增加错误计数器`no_of_errors`并输出错误信息。`prim`函数是一个递归辅助函数,用于处理基本的数字或变量值,根据`get_token`的结果判断当前输入是数字还是变量名,并相应地返回其值。 在`expr`函数中,作者可能使用递归算法解析输入表达式,处理括号嵌套,确保运算的正确顺序。例如,它会调用`prim`函数来获取操作数,然后根据运算符进行加、减、乘、除等运算。如果遇到左括号LP,会递归调用自身处理括号内的表达式,直到遇到右括号RP为止。 此外,由于提到了`table`,这可能是一个映射表,用于存储变量名及其对应的数值,这样在处理变量时可以查找其值。整个设计体现了面向过程编程思想,注重处理输入的流式控制和错误处理,以适应DOS环境下相对简单的交互式计算需求。 这个C++版的DOS计算器提供了一个实用的基础算术工具,展示了在没有现代图形用户界面支持的情况下,如何利用C++语言实现简单但功能完备的命令行计算器。虽然时代已经发展到GUI和更高级的编程语言,但这款计算器的代码仍然是学习C++语法和算法的好例子,特别是对于理解递归和解析表达式有重要意义。