tchar
um1charsig
char
um2i
tIsOpOrNumcharccharJudgeLevelcharc1charc2i
tIsExpresiio
structExpressio
expvoidPri
tResultstructExpressio
expi
tresult
3算术表达式输入函数①键盘读入存于单链表
structExpressio
GetExp
构造操作符优先级表
符号2
符号1比较
五、源程序清单
见附录
六、运行结果
测试表本次测试采用用户从键盘输入算数表达式,共进行16组测试
序测试功能
号
516
测试内容
输入项
预期输实际输
出
出
结果
f带括号的算术表达式求值
1基本计算操作单括号运算23453
29
29
通过
2基本计算操作多括号运算3436317
17
通过
3基本计算操作不能除整运算6232
21
18有误差
4基本计算操作不能除整运算1234
15
1有误差
5式子正误判断括号不匹配6式子正误判断计算符多余7式子正误判断含非计算符
11321236xyzw
输出错误信息输出错误信息输出错误信息
输出错误信息输出错误信息输出错误信息
通过通过通过
8式子正误判断未输入””
123
7
7
通过
9容错能力
除数为0
230
输出除输出除数为0数为0
通过
10容错能力
自动去空格123415
15
通过
11容错能力
“”输为””
232
12拓展功能多位正数计算10213
13拓展功能
负数计算
4345
15拓展功能16全体测试
小数计算最终测试
110012
24333
10
10
通过
输出错
150
未通过
误信息
输出错
3
未通过
误信息
输出错
6
未通过
误信息
1
1
通过
部分运行截图基本计算操作
616
f带括号的算术表达式求值
多括号运算2式子正误判断
容错能力全体测试
716
不能整除运算3
f带括号的算术表达式求值
七、实验运行情况分析
优点用户输入格式较为自由。增添了一些能想到的容错系统,如用户未输入””,或是
用户将””错输成””,或是用户在字符间输入空格,程序都会智能识别出正确的算数表达式,计算正确答案。防错报错系统较为完善。多方面考虑输入方面的错误,如括号不匹配、计算符少输多输、输入非计算符等方面均考虑,并提示用户错误信息,便于用户检查输入状况。存储方式较为规范。采用单链表存储用户输入的算术表达式,更加清晰简单头结点存储表达式中符号的个数,方便在必要的时候统计对照最终结果的正确性。缺点只能实现数字之间的四则运算,不能实现其他算数r