一种公式解析计算系统及方法.pdf

上传人:111****11 文档编号:1895720 上传时间:2018-07-21 格式:PDF 页数:13 大小:1.18MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410601436.6

申请日:

2014.10.30

公开号:

CN104408020A

公开日:

2015.03.11

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F17/10申请日:20141030|||公开

IPC分类号:

G06F17/10

主分类号:

G06F17/10

申请人:

北京思特奇信息技术股份有限公司

发明人:

孙成

地址:

100086北京市海淀区中关村南大街6号中电信息大厦16层

优先权:

专利代理机构:

北京轻创知识产权代理有限公司11212

代理人:

杨立

PDF下载: PDF下载
内容摘要

本发明涉及一种公式解析计算系统及方法,包括根据需求配置公式信息,将配置完成的公式进行四则运算法则的公式校验;将验证通过的公式进行存储;获取所需公式,输入相应参数得到公式实例;对公式实例进行校验,校验通过则进行实例解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串进行计算,将计算数值返回到公式实例相应位置,计算出所有括号内的值,得出计算结果。本发明通过配置所需的公式,对公式进行四则运算法则的校验,进而解析和计算公式,当需要修改公式时,无需修改代码,只需将配置的公式信息进行修改,解析计算时按照新的公式进行即可,大大减少了工作量,降低了维护成本。

权利要求书

权利要求书
1.  一种公式解析计算系统,其特征在于,包括公式配置模块、公式校验模块、公式存储模块、公式实例模块、实例解析模块和实例计算模块;
所述公式配置模块,其用于根据需求配置公式信息;
所述公式校验模块,其用于校验配置的公式是否符合四则运算法则,将验证通过的公式发送给公式存储模块;还用于对公式实例进行校验,验证通过发送给实例解析模块;
所述公式存储模块,其用于存储校验通过的公式;
所述公式实例模块,其用于从公式存储模块获取所需公式,输入相应参数得到公式实例,将公式实例发送给公式校验模块;
所述实例解析模块,其用于对校验通过的公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;
所述实例计算模块,其用于计算出各括号内的数值,将数值返回到公式实例的相应位置,得出计算结果。

2.  根据权利要求1所述一种公式解析计算系统,其特征在于,所述公式校验模块内存储公式校验规则,所述公式校验规则包括:一,判断左括号与右括号数目是否相等;二,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况;三,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况;四,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况;五,判断是否存在左括号直接与右括号连接的情况;以上五种情况为不符合四则法则的情况。

3.  根据权利要求1所述一种公式解析计算系统,其特征在于,所述实例解析模块包括实例预处理单元和实例解析单元;
所述实例预处理单元,其用于在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;
所述实例解析单元,其用于依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。

4.  根据权利要求1所述一种公式解析计算系统,其特征在于,所述实例计算模块包括括号数值计算单元和计算结果输出单元;
所述括号数值计算单元,其用于对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;
所述计算结果输出单元,其用于判断括号数值计算单元计算的数据是否为最后一个括号中的数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。

5.  根据权利要求4所述一种公式解析计算系统,其特征在于,所述括号数值计算单元计算括号内数值的具体实现为:对实例解析单元发送的数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号为止;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。

6.  一种公式解析计算方法,其特征在于,包括如下步骤:
步骤1,据需求配置公式信息;
步骤2,根据公式校验规则校验配置的公式是否符合四则运算法则,验证通过执行步骤3,否则提示公式不合法,返回步骤1;
步骤3,从公式存储模块获取所需公式,输入相应参数得到公式实例;
步骤4,对公式实例进行校验,校验通过执行步骤5,否则提示公式实 例不合法,返回步骤3;
步骤5,对公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;
步骤6,实例计算模块计算出各括号内的数值,将数值返回到公式实例相应位置,得出计算结果。

7.  根据权利要求6所述一种公式解析计算方法,其特征在于,步骤2的具体实现为:
步骤21,判断公式中的左括号与右括号数目是否相等,如果相等执行步骤22,否则提示括号数不相等,重新配置公式;
步骤22,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤23,否则提示存在非法字符,重新配置公式;
步骤23,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况,如果不存在执行步骤24,否则提示存在非法字符,重新配置公式;
步骤24,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤25,否则提示存在非法字符,重新配置公式;
步骤25,判断是否存在左括号直接与右括号连接的情况,如果存在则提示存在非法字符,重新配置公式;否则校验通过,结束流程。

8.  根据权利要求6所述一种公式解析计算方法,其特征在于,所述步骤5的具体实现为:
步骤51,在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;
步骤52,依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。

9.  根据权利要求6所述一种公式解析计算方法,其特征在于,所述步骤6的具体实现为:
步骤61,对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;
步骤62,判断括号数值计算单元计算的数据是否为最后一个括号中数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。

10.  根据权利要求9所述一种公式解析计算方法,其特征在于,所述步骤61的具体实现为:对实例解析单元发送的元素数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。

说明书

说明书一种公式解析计算系统及方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种公式解析计算系统及方法。
背景技术
目前,很多软件系统中都需要对一些公式做处理,在软件生命周期中,后期的成本往往在总成本中占了非常多的一块。例如当某些值的计算规则经常变动时,通常需要通过修改代码的方式来完成计算规则的改变,这样给后期维护工作带来很大的工作量,效率极低,且人工修改代码无法保证操作的准确率,维护成本高。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种公式解析计算系统及方法。
本发明解决上述技术问题的技术方案如下:一种公式解析计算系统,包括公式配置模块、公式校验模块、公式存储模块、公式实例模块、实例解析模块和实例计算模块;
所述公式配置模块,其用于根据需求配置公式信息;
所述公式校验模块,其用于校验配置的公式是否符合四则运算法则,将验证通过的公式发送给公式存储模块;还用于对公式实例进行校验,验证通过发送给实例解析模块;
所述公式存储模块,其用于存储校验通过的公式;
所述公式实例模块,其用于从公式存储模块获取所需公式,输入相应参数得到公式实例,将公式实例发送给公式校验模块;
所述实例解析模块,其用于对校验通过的公式实例进行解析,解析出若 干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;
所述实例计算模块,其用于计算出各括号内的数值,将数值返回到公式实例的相应位置,得出计算结果。
本发明的有益效果是:本发明通过配置所需的公式,对公式进行四则运算法则的校验,进而解析和计算公式,当需要修改公式时,无需修改代码,只需将配置的公式信息进行修改,解析计算时按照新的公式进行即可,大大减少了工作量,降低了维护成本;另外,本发明不但对配置的公式进行四则运算法则的校验,还对公式实例进行校验,放置在公式实例化过程中,由于参数输入错误导致得到的公式实例不合法,大大提高了公式处理的可靠性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述公式校验模块内存储公式校验规则,所述公式校验规则包括:一,判断左括号与右括号数目是否相等;二,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况;三,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况;四,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况;五,判断是否存在左括号直接与右括号连接的情况;以上五种情况为不符合四则法则的情况。
进一步,所述实例解析模块包括实例预处理单元和实例解析单元;
所述实例预处理单元,其用于在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;
所述实例解析单元,其用于依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。
进一步,所述实例计算模块包括括号数值计算单元和计算结果输出单 元;
所述括号数值计算单元,其用于对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;
所述计算结果输出单元,其用于判断括号数值计算单元计算的数据是否为最后一个括号中的数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。
进一步,所述括号数值计算单元计算括号内数值的具体实现为:对实例解析单元发送的数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号为止;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。
本发明解决上述技术问题的另一技术方案如下:一种公式解析计算方法,包括如下步骤:
步骤1,据需求配置公式信息;
步骤2,根据公式校验规则校验配置的公式是否符合四则运算法则,验证通过执行步骤3,否则提示公式不合法,返回步骤1;
步骤3,从公式存储模块获取所需公式,输入相应参数得到公式实例;
步骤4,对公式实例进行校验,校验通过执行步骤5,否则提示公式实例不合法,返回步骤3;
步骤5,对公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;
步骤6,实例计算模块计算出各括号内的数值,将数值返回到公式实例相应位置,得出计算结果。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤2的具体实现如下:
步骤21,判断公式中的左括号与右括号数目是否相等,如果相等执行步骤22,否则提示括号数不相等,重新配置公式;
步骤22,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤23,否则提示存在非法字符,重新配置公式;
步骤23,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况,如果不存在执行步骤24,否则提示存在非法字符,重新配置公式;
步骤24,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤25,否则提示存在非法字符,重新配置公式;
步骤25,判断是否存在左括号直接与右括号连接的情况,如果存在则提示存在非法字符,重新配置公式;否则校验通过,结束流程。
进一步,所述步骤5的具体实现为:
步骤51,在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;
步骤52,依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。
进一步,所述步骤6的具体实现为:
步骤61,对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;
步骤62,判断括号数值计算单元计算的数据是否为最后一个括号中数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。
进一步,所述步骤61的具体实现为:对实例解析单元发送的元素数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除 得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。
附图说明
图1为本发明所述一种公式解析计算系统框图;
图2为本发明所述实例解析模块框图;
图3为本发明所述实例计算模块框图;
图4为本发明所述一种公式解析计算方法流程图;
图5为本发明步骤2所述公式校验流程图;
图6为本发明步骤5和步骤6的实现流程图。
附图中,各标号所代表的部件列表如下:
100、公式配置模块,200、公式校验模块,300、公式存储模块,400、公式实例模块,500、实例解析模块,600实例计算模块,501、实例预处理单元,502、实例解析单元,601、括号数值计算单元,602、计算结果输出单元。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种公式解析计算系统,包括公式配置模块100、公式校验模块200、公式存储模块300、公式实例模块400、实例解析模块500和实例计算模块600;所述公式配置模块100,其用于根据需求配置公式信息;所述公式校验模块200,其用于校验配置的公式是否符合四则运算法则,将验证通过的公式发送给公式存储模块300;还用于对公式实例进行校验,验证通过发送给实例解析模块500;所述公式存储模块300,其用于存储校验通过的公式;所述公式实例模块400,其用于从公式存储模块获取所需公式, 输入相应参数得到公式实例,将公式实例发送给公式校验模块200;所述实例解析模块500,其用于对校验通过的公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块600;所述实例计算模块600,其用于计算出各括号内的数值,将数值返回到公式实例的相应位置,得出计算结果。
所述公式校验模块内存储公式校验规则,所述公式校验规则包括:一,判断左括号与右括号数目是否相等;二,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况;三,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况;四,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况;五,判断是否存在左括号直接与右括号连接的情况;以上五种情况为不符合四则法则的情况。
如图2所示,所述实例解析模块500包括实例预处理单元501和实例解析单元502;所述实例预处理单元501,其用于在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元502;所述实例解析单元502,其用于依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块600,直至所有括号内的数据处理完毕。
如图3所示,所述实例计算模块600包括括号数值计算单元601和计算结果输出单元602;所述括号数值计算单元601,其用于对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块500替换公式实例中所取括号及其内字符串;所述计算结果输出单元602,其用于判断括号数值计算单元计算的数据是否为最后一个括号中的数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。
所述括号数值计算单元601计算括号内数值的具体实现为:对实例解析单元发送的数据放入一个集合中,查找该集合中除号位置,取除号前一元素 和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号为止;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。
如图4所示,一种公式解析计算方法,包括如下步骤:
步骤1,据需求配置公式信息;
步骤2,根据公式校验规则校验配置的公式是否符合四则运算法则,验证通过执行步骤3,否则提示公式不合法,返回步骤1;
步骤3,从公式存储模块获取所需公式,输入相应参数得到公式实例;
步骤4,对公式实例进行校验,校验通过执行步骤5,否则提示公式实例不合法,返回步骤3;
步骤5,对公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;
步骤6,实例计算模块计算出各括号内的数值,将数值返回到公式实例相应位置,得出计算结果。
如图5所示,步骤2中的具体实现如下:
步骤21,判断公式中的左括号与右括号数目是否相等,如果相等执行步骤22,否则提示括号数不相等,重新配置公式;
步骤22,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤23,否则提示存在非法字符,重新配置公式;
步骤23,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况,如果不存在执行步骤24,否则提示存在非法字符,重新配置公式;
步骤24,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤25,否则提示存在非法字符,重新配置公式;
步骤25,判断是否存在左括号直接与右括号连接的情况,如果存在则提 示存在非法字符,重新配置公式;否则校验通过,结束流程。
如图6所示,所述步骤5及步骤6的具体实现为:
步骤51,在公式实例的开始加一个左括号,在公式实例的末端加一个右括号;
步骤52,依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给括号数值计算单元;
步骤61,对实例解析单元发送的字符串进行计算,将计算结果返回给实例解析单元替换公式实例中所取括号及其内字符串;
步骤62,判断括号数值计算单元计算的数据是否为最后一个括号中数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。
所述步骤61的具体实现为:对实例解析单元发送的元素数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。
下面以销售费用管理控制为例对本申请进行进一步描述。
利用本发明的方法实现对允许销售所能够报销的总金额进行计算。
1.公式配置模块通过规则配置功能配置公式信息,如下为年度报销金额的几个计算公式:
年度报销金额=年度实际签约*费用比例+年度销售任务*费用比例/12个月+特殊额度
年度报销金额=年度实际签约*费用比例+特殊额度
年度报销金额=月数*年度总预算/12个月+特殊额度
年度报销金额=累计季度月数*年度总预算/12个月+特殊额度
年度报销金额=累计季度月数*年度总预算/12个月+特殊额度/2。
2.公式校验模块根据公式校验规则校验配置的公式是否符合四则运算法则,将验证通过的公式存储起来,否则提示公式不合法,重新配置公式信息。公式校验过程是检验公式是否符合四则运算公式的规则,校验是否有左括号直接接加减乘除,加减乘除后直接跟右括号,加减乘除后直接跟加减乘除,左括号后直接跟右括号,左括号与右括号数不同的情况,如果有以上5种情况中的任一种或几种,则不符合四则运算法则,校验不通过,提示公式不合法,重新配置公式。
3.公式实例模块获取公式内容,输入相应参数获得公式实例,将公式实例按照步骤2的操作进行校验,验证通过则发送给实例解析模块,否则提示公式实例不合法,重新实例化。
4.公式解析模块对符合四则运算公式规则的公式实例进行解析,将公式实例前加左端加左括号,末端加右括号,然后查找最后一个左括号位置,找到该位置后第一个右括号位置,将该左括号和右括号中的数据取出,并将该部分字符串中元素抽取到一个集合中,找到该集合中除号位置,取除号前一元素和后一元素,相除后将原位置3个元素删除,放入该新元素,继续找除号,知道无法找到,同理执行乘号、减号和加号,得出该括号内的值,用该值替换公式实例中相应位置的字符串。
5.继续寻找左括号,找到后按照步骤4执行,直到无法找到左括号为止,所得值即为该公式实例的计算结果。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

一种公式解析计算系统及方法.pdf_第1页
第1页 / 共13页
一种公式解析计算系统及方法.pdf_第2页
第2页 / 共13页
一种公式解析计算系统及方法.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种公式解析计算系统及方法.pdf》由会员分享,可在线阅读,更多相关《一种公式解析计算系统及方法.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410601436.6(22)申请日 2014.10.30G06F 17/10(2006.01)(71)申请人北京思特奇信息技术股份有限公司地址 100086 北京市海淀区中关村南大街6号中电信息大厦16层(72)发明人孙成(74)专利代理机构北京轻创知识产权代理有限公司 11212代理人杨立(54) 发明名称一种公式解析计算系统及方法(57) 摘要本发明涉及一种公式解析计算系统及方法,包括根据需求配置公式信息,将配置完成的公式进行四则运算法则的公式校验;将验证通过的公式进行存储;获取所需公式,输入相应参数得到公式实例;对公式实例进。

2、行校验,校验通过则进行实例解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串进行计算,将计算数值返回到公式实例相应位置,计算出所有括号内的值,得出计算结果。本发明通过配置所需的公式,对公式进行四则运算法则的校验,进而解析和计算公式,当需要修改公式时,无需修改代码,只需将配置的公式信息进行修改,解析计算时按照新的公式进行即可,大大减少了工作量,降低了维护成本。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书6页 附图4页(10)申请公布号 CN 104408020 A(43)申请公布日 2015.03.11CN 10440802。

3、0 A1/2页21.一种公式解析计算系统,其特征在于,包括公式配置模块、公式校验模块、公式存储模块、公式实例模块、实例解析模块和实例计算模块;所述公式配置模块,其用于根据需求配置公式信息;所述公式校验模块,其用于校验配置的公式是否符合四则运算法则,将验证通过的公式发送给公式存储模块;还用于对公式实例进行校验,验证通过发送给实例解析模块;所述公式存储模块,其用于存储校验通过的公式;所述公式实例模块,其用于从公式存储模块获取所需公式,输入相应参数得到公式实例,将公式实例发送给公式校验模块;所述实例解析模块,其用于对校验通过的公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字。

4、符串发送给实例计算模块;所述实例计算模块,其用于计算出各括号内的数值,将数值返回到公式实例的相应位置,得出计算结果。2.根据权利要求1所述一种公式解析计算系统,其特征在于,所述公式校验模块内存储公式校验规则,所述公式校验规则包括:一,判断左括号与右括号数目是否相等;二,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况;三,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况;四,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况;五,判断是否存在左括号直接与右括号连接的情况;以上五种情况为不符合四则法则的情况。3.根据权利要求1所述一种公式解析计算系统。

5、,其特征在于,所述实例解析模块包括实例预处理单元和实例解析单元;所述实例预处理单元,其用于在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;所述实例解析单元,其用于依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。4.根据权利要求1所述一种公式解析计算系统,其特征在于,所述实例计算模块包括括号数值计算单元和计算结果输出单元;所述括号数值计算单元,其用于对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符。

6、串;所述计算结果输出单元,其用于判断括号数值计算单元计算的数据是否为最后一个括号中的数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。5.根据权利要求4所述一种公式解析计算系统,其特征在于,所述括号数值计算单元计算括号内数值的具体实现为:对实例解析单元发送的数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号为止;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。6.一种公式解析计算方法,其特征在于,包括如下步骤:步骤1,据需求配置公式信息;步骤。

7、2,根据公式校验规则校验配置的公式是否符合四则运算法则,验证通过执行步骤权 利 要 求 书CN 104408020 A2/2页33,否则提示公式不合法,返回步骤1;步骤3,从公式存储模块获取所需公式,输入相应参数得到公式实例;步骤4,对公式实例进行校验,校验通过执行步骤5,否则提示公式实例不合法,返回步骤3;步骤5,对公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;步骤6,实例计算模块计算出各括号内的数值,将数值返回到公式实例相应位置,得出计算结果。7.根据权利要求6所述一种公式解析计算方法,其特征在于,步骤2的具体实现为:步骤21,判断公式中。

8、的左括号与右括号数目是否相等,如果相等执行步骤22,否则提示括号数不相等,重新配置公式;步骤22,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤23,否则提示存在非法字符,重新配置公式;步骤23,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况,如果不存在执行步骤24,否则提示存在非法字符,重新配置公式;步骤24,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤25,否则提示存在非法字符,重新配置公式;步骤25,判断是否存在左括号直接与右括号连接的情况,如果存在则提示存在非法字符,重新配置公式;否则校验通。

9、过,结束流程。8.根据权利要求6所述一种公式解析计算方法,其特征在于,所述步骤5的具体实现为:步骤51,在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;步骤52,依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。9.根据权利要求6所述一种公式解析计算方法,其特征在于,所述步骤6的具体实现为:步骤61,对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;步骤62,判断括号数值计算单元计算的数据是否为。

10、最后一个括号中数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。10.根据权利要求9所述一种公式解析计算方法,其特征在于,所述步骤61的具体实现为:对实例解析单元发送的元素数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。权 利 要 求 书CN 104408020 A1/6页4一种公式解析计算系统及方法技术领域0001 本发明涉及计算机技术领域,尤其涉及一种公式解析计算系统及方法。背景技术00。

11、02 目前,很多软件系统中都需要对一些公式做处理,在软件生命周期中,后期的成本往往在总成本中占了非常多的一块。例如当某些值的计算规则经常变动时,通常需要通过修改代码的方式来完成计算规则的改变,这样给后期维护工作带来很大的工作量,效率极低,且人工修改代码无法保证操作的准确率,维护成本高。发明内容0003 本发明所要解决的技术问题是针对现有技术的不足,提供一种公式解析计算系统及方法。0004 本发明解决上述技术问题的技术方案如下:一种公式解析计算系统,包括公式配置模块、公式校验模块、公式存储模块、公式实例模块、实例解析模块和实例计算模块;0005 所述公式配置模块,其用于根据需求配置公式信息;00。

12、06 所述公式校验模块,其用于校验配置的公式是否符合四则运算法则,将验证通过的公式发送给公式存储模块;还用于对公式实例进行校验,验证通过发送给实例解析模块;0007 所述公式存储模块,其用于存储校验通过的公式;0008 所述公式实例模块,其用于从公式存储模块获取所需公式,输入相应参数得到公式实例,将公式实例发送给公式校验模块;0009 所述实例解析模块,其用于对校验通过的公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;0010 所述实例计算模块,其用于计算出各括号内的数值,将数值返回到公式实例的相应位置,得出计算结果。0011 本发明的有益效果。

13、是:本发明通过配置所需的公式,对公式进行四则运算法则的校验,进而解析和计算公式,当需要修改公式时,无需修改代码,只需将配置的公式信息进行修改,解析计算时按照新的公式进行即可,大大减少了工作量,降低了维护成本;另外,本发明不但对配置的公式进行四则运算法则的校验,还对公式实例进行校验,放置在公式实例化过程中,由于参数输入错误导致得到的公式实例不合法,大大提高了公式处理的可靠性。0012 在上述技术方案的基础上,本发明还可以做如下改进。0013 进一步,所述公式校验模块内存储公式校验规则,所述公式校验规则包括:一,判断左括号与右括号数目是否相等;二,判断是否存在左括号直接与加号、减号、乘号或者除号连。

14、接的情况;三,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况;四,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况;五,说 明 书CN 104408020 A2/6页5判断是否存在左括号直接与右括号连接的情况;以上五种情况为不符合四则法则的情况。0014 进一步,所述实例解析模块包括实例预处理单元和实例解析单元;0015 所述实例预处理单元,其用于在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;0016 所述实例解析单元,其用于依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个。

15、右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。0017 进一步,所述实例计算模块包括括号数值计算单元和计算结果输出单元;0018 所述括号数值计算单元,其用于对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;0019 所述计算结果输出单元,其用于判断括号数值计算单元计算的数据是否为最后一个括号中的数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。0020 进一步,所述括号数值计算单元计算括号内数值的具体实现为:对实例解析单元发送的数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除。

16、得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号为止;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。0021 本发明解决上述技术问题的另一技术方案如下:一种公式解析计算方法,包括如下步骤:0022 步骤1,据需求配置公式信息;0023 步骤2,根据公式校验规则校验配置的公式是否符合四则运算法则,验证通过执行步骤3,否则提示公式不合法,返回步骤1;0024 步骤3,从公式存储模块获取所需公式,输入相应参数得到公式实例;0025 步骤4,对公式实例进行校验,校验通过执行步骤5,否则提示公式实例不合法,返回步骤3;0026 步骤5。

17、,对公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;0027 步骤6,实例计算模块计算出各括号内的数值,将数值返回到公式实例相应位置,得出计算结果。0028 在上述技术方案的基础上,本发明还可以做如下改进。0029 进一步,步骤2的具体实现如下:0030 步骤21,判断公式中的左括号与右括号数目是否相等,如果相等执行步骤22,否则提示括号数不相等,重新配置公式;0031 步骤22,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤23,否则提示存在非法字符,重新配置公式;0032 步骤23,判断是否存在加号、减号、乘。

18、号或者除号直接与右括号连接的情况,如果不存在执行步骤24,否则提示存在非法字符,重新配置公式;0033 步骤24,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤25,否则提示存在非法字符,重新配置公式;说 明 书CN 104408020 A3/6页60034 步骤25,判断是否存在左括号直接与右括号连接的情况,如果存在则提示存在非法字符,重新配置公式;否则校验通过,结束流程。0035 进一步,所述步骤5的具体实现为:0036 步骤51,在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元;0037 步。

19、骤52,依次查找预处理的公式实例中的最后一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块,直至所有括号内的数据处理完毕。0038 进一步,所述步骤6的具体实现为:0039 步骤61,对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块替换公式实例中所取括号及其内字符串;0040 步骤62,判断括号数值计算单元计算的数据是否为最后一个括号中数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。0041 进一步,所述步骤61的具体实现为:对实例解析单元发送的元素数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得。

20、到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。附图说明0042 图1为本发明所述一种公式解析计算系统框图;0043 图2为本发明所述实例解析模块框图;0044 图3为本发明所述实例计算模块框图;0045 图4为本发明所述一种公式解析计算方法流程图;0046 图5为本发明步骤2所述公式校验流程图;0047 图6为本发明步骤5和步骤6的实现流程图。0048 附图中,各标号所代表的部件列表如下:0049 100、公式配置模块,200、公式校验模块,300、公式存储模块,400、公式实。

21、例模块,500、实例解析模块,600实例计算模块,501、实例预处理单元,502、实例解析单元,601、括号数值计算单元,602、计算结果输出单元。具体实施方式0050 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。0051 如图1所示,一种公式解析计算系统,包括公式配置模块100、公式校验模块200、公式存储模块300、公式实例模块400、实例解析模块500和实例计算模块600;所述公式配置模块100,其用于根据需求配置公式信息;所述公式校验模块200,其用于校验配置的公式是否符合四则运算法则,将验证通过的公式发送给公式存储模块300;还用于对。

22、公式实例进行校验,验证通过发送给实例解析模块500;所述公式存储模块300,其用于存储校验通过的公式;所述公式实例模块400,其用于从公式存储模块获取所需公式,输入相应参说 明 书CN 104408020 A4/6页7数得到公式实例,将公式实例发送给公式校验模块200;所述实例解析模块500,其用于对校验通过的公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块600;所述实例计算模块600,其用于计算出各括号内的数值,将数值返回到公式实例的相应位置,得出计算结果。0052 所述公式校验模块内存储公式校验规则,所述公式校验规则包括:一,判断左括号与右。

23、括号数目是否相等;二,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况;三,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况;四,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况;五,判断是否存在左括号直接与右括号连接的情况;以上五种情况为不符合四则法则的情况。0053 如图2所示,所述实例解析模块500包括实例预处理单元501和实例解析单元502;所述实例预处理单元501,其用于在公式实例的开始加一个左括号,在公式实例的末端加一个右括号,将预处理的公式实例发送给实例解析单元502;所述实例解析单元502,其用于依次查找预处理的公式实例中的最后一。

24、个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给实例计算模块600,直至所有括号内的数据处理完毕。0054 如图3所示,所述实例计算模块600包括括号数值计算单元601和计算结果输出单元602;所述括号数值计算单元601,其用于对实例解析模块发送的字符串进行计算,将计算结果返回给实例解析模块500替换公式实例中所取括号及其内字符串;所述计算结果输出单元602,其用于判断括号数值计算单元计算的数据是否为最后一个括号中的数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。0055 所述括号数值计算单元601计算括号内数值的具体实现为:对实例解析单元发送的数据。

25、放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号为止;根据上述操作方式执行乘号、减号和加号的计算,得出括号内的计算结果。0056 如图4所示,一种公式解析计算方法,包括如下步骤:0057 步骤1,据需求配置公式信息;0058 步骤2,根据公式校验规则校验配置的公式是否符合四则运算法则,验证通过执行步骤3,否则提示公式不合法,返回步骤1;0059 步骤3,从公式存储模块获取所需公式,输入相应参数得到公式实例;0060 步骤4,对公式实例进行校验,校验通过执行步骤5,否则提示公式实。

26、例不合法,返回步骤3;0061 步骤5,对公式实例进行解析,解析出若干组括号,按照从右到左从内到外依次提取括号中的字符串发送给实例计算模块;0062 步骤6,实例计算模块计算出各括号内的数值,将数值返回到公式实例相应位置,得出计算结果。0063 如图5所示,步骤2中的具体实现如下:0064 步骤21,判断公式中的左括号与右括号数目是否相等,如果相等执行步骤22,否则提示括号数不相等,重新配置公式;说 明 书CN 104408020 A5/6页80065 步骤22,判断是否存在左括号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤23,否则提示存在非法字符,重新配置公式;0066 步。

27、骤23,判断是否存在加号、减号、乘号或者除号直接与右括号连接的情况,如果不存在执行步骤24,否则提示存在非法字符,重新配置公式;0067 步骤24,判断是否存在加号、减号、乘号或者除号直接与加号、减号、乘号或者除号连接的情况,如果不存在执行步骤25,否则提示存在非法字符,重新配置公式;0068 步骤25,判断是否存在左括号直接与右括号连接的情况,如果存在则提示存在非法字符,重新配置公式;否则校验通过,结束流程。0069 如图6所示,所述步骤5及步骤6的具体实现为:0070 步骤51,在公式实例的开始加一个左括号,在公式实例的末端加一个右括号;0071 步骤52,依次查找预处理的公式实例中的最后。

28、一个左括号,进而查找该左括号右端与其最近的一个右括号,取出括号内字符串发送给括号数值计算单元;0072 步骤61,对实例解析单元发送的字符串进行计算,将计算结果返回给实例解析单元替换公式实例中所取括号及其内字符串;0073 步骤62,判断括号数值计算单元计算的数据是否为最后一个括号中数据,当为最后一个括号中的数据时,计算当前公式实例并输出计算结果。0074 所述步骤61的具体实现为:对实例解析单元发送的元素数据放入一个集合中,查找该集合中除号位置,取除号前一元素和后一元素,相除得到一个新元素,进而将原位置的三个元素删除,放入该新元素;继续找除号进行上述操作,直至无法找到除号;根据上述操作方式执。

29、行乘号、减号和加号的计算,得出括号内的计算结果。0075 下面以销售费用管理控制为例对本申请进行进一步描述。0076 利用本发明的方法实现对允许销售所能够报销的总金额进行计算。0077 1.公式配置模块通过规则配置功能配置公式信息,如下为年度报销金额的几个计算公式:0078 年度报销金额年度实际签约*费用比例+年度销售任务*费用比例/12个月+特殊额度0079 年度报销金额年度实际签约*费用比例+特殊额度0080 年度报销金额月数*年度总预算/12个月+特殊额度0081 年度报销金额累计季度月数*年度总预算/12个月+特殊额度0082 年度报销金额累计季度月数*年度总预算/12个月+特殊额度/。

30、2。0083 2.公式校验模块根据公式校验规则校验配置的公式是否符合四则运算法则,将验证通过的公式存储起来,否则提示公式不合法,重新配置公式信息。公式校验过程是检验公式是否符合四则运算公式的规则,校验是否有左括号直接接加减乘除,加减乘除后直接跟右括号,加减乘除后直接跟加减乘除,左括号后直接跟右括号,左括号与右括号数不同的情况,如果有以上5种情况中的任一种或几种,则不符合四则运算法则,校验不通过,提示公式不合法,重新配置公式。0084 3.公式实例模块获取公式内容,输入相应参数获得公式实例,将公式实例按照步骤2的操作进行校验,验证通过则发送给实例解析模块,否则提示公式实例不合法,重新实例化。说 。

31、明 书CN 104408020 A6/6页90085 4.公式解析模块对符合四则运算公式规则的公式实例进行解析,将公式实例前加左端加左括号,末端加右括号,然后查找最后一个左括号位置,找到该位置后第一个右括号位置,将该左括号和右括号中的数据取出,并将该部分字符串中元素抽取到一个集合中,找到该集合中除号位置,取除号前一元素和后一元素,相除后将原位置3个元素删除,放入该新元素,继续找除号,知道无法找到,同理执行乘号、减号和加号,得出该括号内的值,用该值替换公式实例中相应位置的字符串。0086 5.继续寻找左括号,找到后按照步骤4执行,直到无法找到左括号为止,所得值即为该公式实例的计算结果。0087 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 104408020 A1/4页10图1图2图3说 明 书 附 图CN 104408020 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1