日期:2014-05-20  浏览次数:20678 次

给定运算公式,然后利用这个公式进行运算
如题。

又来麻烦大家了。

例子是这样的:
首先是一个值a(是变化的)
b的公式是在控制台输入的:比如:(a+3)*9/(a+4)

最后的问题是:如何通过指定a的值获取b,或者指定b的值获取a.
谢谢了!

------解决方案--------------------
b=(a+3)*9/(a+4)

通过输入a计算b还是好做的,用脚本引擎就好了

反过来不容易
------解决方案--------------------
有点像编译系统。。。
------解决方案--------------------
最好在a和b两个输入框后加一个计算按钮,按a旁的按钮计算b,按b旁的按钮计算b.
------解决方案--------------------
for example
jdk1.6以上

Java code
String exp = "(a+3)*9/(a+4)"; //公式
String a = "5"; //设置a
exp = exp.replaceAll("a", a);
ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript");
Object b = se.eval(exp);
System.out.println(b);

------解决方案--------------------
用se.put("a",5)更好 

探讨

for example
jdk1.6以上

Java code
String exp = "(a+3)*9/(a+4)"; //公式
String a = "5"; //设置a
exp = exp.replaceAll("a", a);
ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript");
O……

------解决方案--------------------
自己编写的话,可以使用栈来解决计算符号优先级的问题。 我记得严蔚敏版的《数据结构》里面讲了这个算法,我当时还自己写了个计算复杂运算式的算法,算式可以包含sin,cos等。
------解决方案--------------------
简单的,a算b的代码我这里没有,我这里只有复杂的,楼主要是有兴趣和精力,可以看看
从C语言转换过来的Java版,字符串代数运算器