标签:
0.功能:
计算一个多层次表达式
例如:
(((((6)+(5)+(4))-(3))*(2))/(1)) = ?
((((1)or(0)xor(2)and(not(-1)))) = ?
1.原理:
参考正则表达式解析,存储结构,和xml树形结构文件解析的思路,创建树形算式结构。
2.流程:
第一步:解析表达式
<1>.遇到‘(‘创建一个节点。
<2>.遇到‘(‘返回上一层。
<3>.遇到其他填入值。
第二步:创建结构
结构图
3.应用
求解出一个复杂计算条件计算值,可以是数值,可以是布尔值
4.代码
5.扩展
<1> ([1]((((6)+(5)+(4))-(3))*(2))/(1)) = ?,加入错误分析,如果错误舍弃局部结构。
<2> (((((@192.168.0.1)+(5)+(4))-(3))*(2))/(1)) = ? ,丰富一般取值的途径。
<3> (max((1) , (2))) = 2 ?,增加更多的算法。
这些需求都可以在源代码基础上方便扩展。
标签:
原文地址:http://www.cnblogs.com/kobe-vanessa/p/5222132.html