数据结构中算术表达式的求值演示的
算术表达式求值演示
一。需求分析
1。 要求应用栈来实现表达式的分析计算( 用运算符优先法 )。
2。 以字符序列的形式从终端输入语法正确的表达式( 本程序可以输入浮点数作运算数
)。
3。 演示程序以计算器的仿真界面实现与用户间的对话。 当用户从终端输入某一字符时
, 仿真界面上的相应字符按钮会变黑( 表示按下 )。
4。 程序的实现效果在附交的软盘中。 请运行程序观看。
二。 调试分析
1。 由于考虑不周, 本程序快要完成时才发现由于函数调用太深, 无法处理好局部变量
, 只好用了两个全局变量start_x和start_y( 有违初衷 ), 它们指定CALCULATOR的绘制
...全部
算术表达式求值演示
一。需求分析
1。 要求应用栈来实现表达式的分析计算( 用运算符优先法 )。
2。 以字符序列的形式从终端输入语法正确的表达式( 本程序可以输入浮点数作运算数
)。
3。 演示程序以计算器的仿真界面实现与用户间的对话。 当用户从终端输入某一字符时
, 仿真界面上的相应字符按钮会变黑( 表示按下 )。
4。 程序的实现效果在附交的软盘中。 请运行程序观看。
二。 调试分析
1。 由于考虑不周, 本程序快要完成时才发现由于函数调用太深, 无法处理好局部变量
, 只好用了两个全局变量start_x和start_y( 有违初衷 ), 它们指定CALCULATOR的绘制
位置。
2。 由于库函数getchar()和getch()的微妙的差别, 使得绘图部份功能一度陷入混乱。
最后才得以调整。
3。 本程序的模块性有待加强。
三。 用户手册
1。 本程序在TURBO C 2。
0下运行良好。 源程序文件为Evaluate。c。
2。 进入演示程序后, 显示图像编程模拟的计算器仿真界面, 按键盘上的键位以达相应
的视觉效果。
3。 注意: 请不要输入错误的表达式, 确定表达式只输入一次并且正确( 还要求输入过
程中不可以用退格符 ), 否则会产生莫明其妙的错误结果。
4。 本程序扩充了运算符集, 支持乘方运算符" p ", 例如输入: 5p2+5p2# 则结果为
50。000000
支持平方运算符" ^ ", 例如输入: 5^+5^# 则结果为50。
000000
支持单目减运算符" ~ ", 例如输入: ~4+4# 则结果为0。000000
支持实数类型作运算量类型, 例如输入: 3。14+3。14# 则结果为6。
280000
实现了计算器的仿真界面, 如运行效果所视。
5。 附: 赋值运算符和支持变量参与运算的功能尚未加入。
四。 测试结果
具体请观看软盘中的源程序执行的效果。
五。
附录
源程序主要文件清单:
。收起