完整资料进入【数字空间】查看——baidu搜索"writebug"
一、产品概述
计算器:
它是一个拥有扁平化优雅用户界面的科学计算器,拥有科学计算与基础计算器功能,可以计算是是数学表达式:从一个简单的表达式,如“1+2”到更高级的表达式,如“3+(3*9(80+sin90))” 除了可以实现了系统自带计算器功能外还可以进行基本函数的运算和括号的运算,能根据表达式的优先级来自动区分运算顺序。
它可以记住你的计算,添加强大的容错处理功能,如点击空小数点默认为 0,除数不能为 0,log、根号与 sin 等符号中的数不能为负等。
二、面向人群
高中生,大学生等
三、产品版本及兼容
适用于 Android 操作系统
目标 API 4.1
向下兼容 API 4.0
四、思想
计算器:
计算表达式过程:
获取用户点击按钮输入的表达式的字符串,检验合法性,通过
StringTokenizer expToken = new StringTokenizer(expression, “±×÷()sctgl!√^”);
截取表达式
从左向右扫描,数字入 number 栈,运算符入 operator 栈
优先级定义: ±基本优先级为 1,×÷ 基本优先级为 2,log ln sin cos tan n!基本优先级为 3,√^ 基本优先级为 4 ,括号内层运算符比外层同级运算符优先级高 4
当前运算符优先级高于栈顶压栈,
低于栈顶弹出一个运算符与两个数进行运算
重复直到当前运算符大于栈顶
扫描完后对剩下的运算符与数字依次计算