Android表达式计算器

本文介绍了Android表达式计算器的实现,包括将其转化为栈结构、中缀表达式转后缀表达式、计算后缀表达式的值。计算器支持基础运算及三角函数,处理高级运算如Log、Sin时,会查找并替换数字进行计算。文章还讨论了计算器设计中的问题,如精确度、四舍五入以及错误处理,并提出HorizontalScrollView显示问题的尝试和未解决问题。
摘要由CSDN通过智能技术生成

1.先看看界面,有点像原生Android的计算器(我写的没那么好,在这里膜拜一下~)





我写的这个表达式计算器似乎与Android原生的计算器有点像,实际上这个计算器比那个在实现上要简单,但是功能方面都类似。(原生的计算器的三角函数计算只实现了弧度计算,这里弧度和角度都实现了)

 

2.思路:表达式计算

之前用CC++写过一个表达式计算的程序(看这里),这里用Java重新实现,思路都是一样的:

2.1预处理,将表达式转化为栈结构。

// 将一个表达式转化为栈结构
	public ExStack getInfxStac
ESC:显示或隐含扩展输入框 F1: 显现帮助窗口 ESC:关闭帮助窗口 C: 清输入框和输出值 AU:所见即得计算值 (hd:关闭所见即得功能) MC:保留 M+: 累加累减寄存器 (鼠标右击转换累加或累减) Mn:寄存器,可以存储十组数据 (在Mn状态下,空格清空输入框, 拖曳数据,自动保存->M0~M9) (在M0~M9状态下,空格清空输入 框,回车,自动清除->Mn) ≈≈扩展部分≈≈ 复原: 表达式宽(685)、显示宽度(14)、 小数位数(6)复原 以及所有数据初始化 表达式宽: 表达式宽度:扩展输入表达式的宽度 显示宽度:输入输出数字精度 位数:指定输出小数位数 (超出部分截断) 调色板:$000000~$ffffff,BGR (':'左右分别是底色和文字本色) 进制转换: toHex:输入十进制,输出十六进制 toBin:输入十进制,输出二进制 toDec:$输入十六进制,输出十进制 toDec:b输入二进制,输出十进制 数学公式: mod:AmodB(得余数。输入A、B为十进 制,输出十进制) div:AdivB(A整除B,得整数。输入A、 B为十进制,输出十进制) X^:A的B次方(2X^3=8) 2X^:2的B次方(2X^3=8) logN:X^的逆函数(8logN2=3) logN2:2X^的逆函数(8logN2=3) 逻辑运算: (and):求与 (or):求或 (not):求非 (Xor):求异或(相异为1,相同为0) 转换函数: sin()、cos()、tg(): exp():eX^A(e=2.7182818284 eX^1) ln():exp()的逆函数 Char():输入字符,输出ASCII对应码 (Char(a)=97) Byte():输入ASCII对应码,输出字符 (Byte(30)='0') 使用技巧: 各输入框支持鼠标拖曳功能,用鼠标 划过选定复制内容,进行拖曳。放落后 落点在光标所在处 delphi 源码开放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值