一种移动终端及其计算器数据计算处理方法、系统技术方案

技术编号:13671954 阅读:47 留言:0更新日期:2016-09-07 19:59
本发明专利技术公开了一种移动终端及其计算器数据计算处理方法、系统,所述移动终端的计算器数据计算处理方法包括:获取用户输入的以数字和运算符号为组成元素的运算式;设置空的第一栈,从左至右遍历运算式的每个元素,将运算式中的数字直接输出,同时将运算式中的运算符号入栈,并根据运算优先级,控制运算符号依次出栈输出,生成一中间式;设置空的第二栈,从左至右遍历中间式的每个元素,将中间式中的数字入栈,并按照中间式中的运算符号,依次将处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直至得到最终运算结果。所述移动终端的计算器数据计算处理方法,使得计算器能够输入复杂运算式并直接算出结果,给用户提供了方便。

【技术实现步骤摘要】

本专利技术涉及移动终端应用领域,尤其涉及一种移动终端及其计算器数据计算处理方法、系统
技术介绍
目前,计算器(运算器)是移动终端必备的一个日常常用的应用程序;作为简单计算使用的计算器能够执行加、减、乘、除的四则运算;但是现有技术中的大多移动终端中该计算器的功能比较单一,只能进行一次运算,特别是在遇到稍微复杂的运算式时无法胜任,给用户带来不便。譬如,在执行2+6*(3-6)/3时,需要用户先在计算器中输入3-6并记录运算结果-3,然后再输入6*(-3)并记录运算结果-18,然后再输入(-18)/3并记录运算结果-6,最后输入2+(-6)并记录运算结果-4;现有的移动终端的简单计算器无法直接输入运算式2+6*(3-6)/3并自动直接得出结果。因此,现有技术还有待于改进和发展。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种移动终端及其计算器数据计算处理方法、系统,从而解决现有技术中移动终端的计算器进行运算式计算时,无法直接输入复杂运算式并直接算出结果,而需要用户根据基本的加、减、乘、除运算法则,计算多个式子来得出最终的运算结果,导致使用不便的问题。本专利技术解决技术问题所采用的技术方案如下:一种移动终端的计算器数据计算处理方法,包括:A、获取用户输入的以数字和运算符号为组成元素的运算式;B、设置空的第一栈,从左至右遍历所述运算式的每个元素,将所述运算式中的数字直接输出,同时将所述运算式中的运算符号入栈,并根据运算优先级,控制运算符号依次出栈输出,生成一由输出的数字和运算符号组成的用于进行进一步运算的中间式;C、设置空的第二栈,从左至右遍历所述中间式的每个元素,将所述中间式中的数字入栈,并按照所述中间式中的运算符号,依次将处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直至得到最终运算结果。所述的移动终端的计算器数据计算处理方法,所述步骤B具体包括:B1、设置空的第一栈,然后从左至右遍历所述运算式的每个元素,判断元素是数字还是运算符号;B2、当元素为数字,则直接输出为所述中间式的一部分;B3、当元素为运算符号,则判断此时第一栈是否为空;若为空,则将所述运算符号入栈,若不为空,则根据所述运算符号和处于第一栈栈顶的元素的运算优先级的高低,相应控制所述运算符号入栈和第一栈栈内元素出栈输出,直至遍历到所述运算式的最后一个数字时,将此时第一栈内剩余的元素全部输出,得到所述中间式。所述的移动终端的计算器数据计算处理方法,所述步骤B3具体包括:B31、若此时第一栈不为空,则判断所述运算符号的运算优先级是否高于处于第一栈栈顶的元素的运算优先级;B32、若所述运算符号的运算优先级高于处于第一栈栈顶的元素的运算优先级,则将所述运算符号入栈;若所述运算符号的运算优先级不高于处于第一栈栈顶的元素的运算优先级,则将此时处于第一栈栈顶的元素出栈输出,之后继续进行判断,直至所述运算符号的运算优先级高于处于第一栈栈顶的元素的运算优先级或者第一栈中的元素全部出栈,再将所述运算符号入栈;B33、当遍历到所述运算式的最后一个数字时,将此时第一栈内剩余的元素全部输出,最终得到所述中间式。所述的移动终端的计算器数据计算处理方法,所述步骤C具体包括:C1、设置空的第二栈,然后从左至右遍历所述中间式的每个元素,判断元素是数字还是运算符号;C2、当元素是数字,则将数字直接入栈;C3、当元素是运算符号,就将此时处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直到得到最终运算结果。所述的移动终端的计算器数据计算处理方法,所述数字为十进制数字,所述运算符号为加、减、乘、除及括号;所述运算符号的运算优先级为括号最高,乘、除次之,加、减最低。所述的移动终端的计算器数据计算处理方法,所述步骤B32具体还包括:B321、若元素为运算符号,且此时第一栈不为空,则判断所述运算符号是否为左括号或右括号;B322、若所述运算符号为左括号,则将左括号直接入栈;若所述运算符号为右括号,则将第一栈内的元素按照由栈顶到栈底的顺序依次出栈输出至所述中间式,直至左括号为止;B323、若所述运算符号既不是左括号也不是右括号,则根据所述运算符号和处于第一栈栈顶的元素的运算优先级的高低,相应控制所述运算符号入栈和第一栈栈内元素出栈输出至所述中间式。一种移动终端的计算器数据计算处理系统,包括:运算式获取模块,用于获取用户输入的以数字和运算符号为组成元素的运算式;中间式生成模块,用于设置空的第一栈,从左至右遍历所述运算式的每个元素,将所述运算式中的数字直接输出,同时将所述运算式中的运算符号入栈,并根据运算优先级,控制运算符号依次出栈输出,生成一由输出的数字和运算符号组成的用于进行进一步运算的中间式;计算模块,用于设置空的第二栈,从左至右遍历所述中间式的每个元素,将所述中间式中的数字入栈,并按照所述中间式中的运算符号,依次将处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直至得到最终运算结果。所述的移动终端的计算器数据计算处理系统,所述中间式生成模块包括:第一判断单元,用于设置空的第一栈,然后从左至右遍历所述运算式的每个元素,判断元素是数字还是运算符号;数字输出单元,用于当元素为数字,则直接输出为所述中间式的一部分;运算符号输出单元,用于当元素为运算符号,则判断此时第一栈是否为空;若为空,则将所述运算符号入栈,若不为空,则根据所述运算符号和处于第一栈栈顶的元素的运算优先级的高低,相应控制所述运算符号入栈和第一栈栈内元素出栈输出,直至遍历到所述运算式的最后一个数字时,将此时第一栈内剩余的元素全部输出,得到所述中间式。所述的移动终端的计算器数据计算处理系统,所述计算模块包括:第二判断单元,用于设置空的第二栈,然后从左至右遍历所述中间式的每个元素,判断元素是数字还是运算符号;数字入栈单元,用于当元素是数字,则将数字直接入栈;计算单元,用于当元素是运算符号,就将此时处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直到得到最终运算结果。一种移动终端,包括以上任一项所述的计算器数据计算处理系统。综上所述,本专利技术公开了一种移动终端及其计算器数据计算处理方法、系统,所述移动终端的计算器数据计算处理方法包括:获取用户输入的以数字和运算符号为组成元素的运算式;设置空的第一栈,从左至右遍历所述运算式的每个元素,将所述运算式中的数字直接输出,同时将所述运算式中的运算符号入栈,并根据运算优先级,控制运算符号依次出栈输出,生成一中间式;设置空的第二栈,从左至右遍历所述中间式的每个元素,将所述中间式中的数字入栈,并按照所述中间式中的运算符号,依次将处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直至得到最终运算结果;使移动终端增加了计算器能够输入复杂运算式并直接算出结果的功能。所述移动终端的计算器数据计算处理方法,能够直接输入复杂运算式由计算器直接算出结果,而不需要用户根据基本的加、减、乘、除运算法则,计算多个式子来得出最终的运算结果,给用户提供了方便。附图说明图1是本专利技术移动终端的计算器数据计算处理方法的流程图。图2是本专利技术移动终端的计算器数据计算处理系统的功能原理框图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照本文档来自技高网...

【技术保护点】
一种移动终端的计算器数据计算处理方法,其特征在于,包括:A、获取用户输入的以数字和运算符号为组成元素的运算式;B、设置空的第一栈,从左至右遍历所述运算式的每个元素,将所述运算式中的数字直接输出,同时将所述运算式中的运算符号入栈,并根据运算优先级,控制运算符号依次出栈输出,生成一由输出的数字和运算符号组成的用于进行进一步运算的中间式;C、设置空的第二栈,从左至右遍历所述中间式的每个元素,将所述中间式中的数字入栈,并按照所述中间式中的运算符号,依次将处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直至得到最终运算结果。

【技术特征摘要】
1.一种移动终端的计算器数据计算处理方法,其特征在于,包括:A、获取用户输入的以数字和运算符号为组成元素的运算式;B、设置空的第一栈,从左至右遍历所述运算式的每个元素,将所述运算式中的数字直接输出,同时将所述运算式中的运算符号入栈,并根据运算优先级,控制运算符号依次出栈输出,生成一由输出的数字和运算符号组成的用于进行进一步运算的中间式;C、设置空的第二栈,从左至右遍历所述中间式的每个元素,将所述中间式中的数字入栈,并按照所述中间式中的运算符号,依次将处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直至得到最终运算结果。2.根据权利要求1所述的移动终端的计算器数据计算处理方法,其特征在于,所述步骤B具体包括:B1、设置空的第一栈,然后从左至右遍历所述运算式的每个元素,判断元素是数字还是运算符号;B2、当元素为数字,则直接输出为所述中间式的一部分;B3、当元素为运算符号,则判断此时第一栈是否为空;若为空,则将所述运算符号入栈,若不为空,则根据所述运算符号和处于第一栈栈顶的元素的运算优先级的高低,相应控制所述运算符号入栈和第一栈栈内元素出栈输出,直至遍历到所述运算式的最后一个数字时,将此时第一栈内剩余的元素全部输出,得到所述中间式。3.根据权利要求2所述的移动终端的计算器数据计算处理方法,其特征在于,所述步骤B3具体包括:B31、若此时第一栈不为空,则判断所述运算符号的运算优先级是否高于处于第一栈栈顶的元素的运算优先级;B32、若所述运算符号的运算优先级高于处于第一栈栈顶的元素的运算优先级,则将所述运算符号入栈;若所述运算符号的运算优先级不高于处于第一栈栈顶的元素的运算优先级,则将此时处于第一栈栈顶的元素出栈输出,之后继续进行判断,直至所述运算符号的运算优先级高于处于第一栈栈顶的元素的运算优先级或者第一栈中的元素全部出栈,再将所述运算符号入栈;B33、当遍历到所述运算式的最后一个数字时,将此时第一栈内剩余的元素全部输出,最终得到所述中间式。4.根据权利要求1所述的移动终端的计算器数据计算处理方法,其特征在于,所述步骤C具体包括:C1、设置空的第二栈,然后从左至右遍历所述中间式的每个元素,判断元素是数字还是运算符号;C2、当元素是数字,则将数字直接入栈;C3、当元素是运算符号,就将此时处于第二栈栈顶的两个数字出栈进行运算,并将运算结果再入栈,直到得到最终运算结果。5.根据权利要求3所述的移动终端的计算器数据计算处理方法,其特征在于,所述数字为十进制数字,所述运算符号为加、减、乘、除及括号;所述运算符号的运...

【专利技术属性】
技术研发人员:俞斌杨维琴
申请(专利权)人:TCL移动通信科技宁波有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1