求助!有谁给个java算术表达解析器的源代码

来源:百度知道 编辑:UC知道 时间:2024/06/14 02:58:41
比如输入x=8,能输出sin(x)/(x+1)的值.最好不是gui的.谢谢各位大师了
sin(x)/(x+1)是一个可以输入的表达式,不是固定的.要可以解决含有加减乘除四则运算和一些简单的函数的表达式.相当麻烦的那种.大家如果曾经写过或见过就贴上来吧

这个问题需要用到编译原理的知识
代码肯定会很长

我只能告诉你需要用到的数据结构和基本知识
用栈、考虑用编译原理里面的制导翻译技术 具体实现我懒的写 长~~~

说实话
如果不调Math的话还真挺难的

不过我可以教你一个方法看源代码里面是怎么实现的
首先你要有一个IDE.比如
eclipse
复制楼上兄弟的代码到eclipse里面

import java.util.*;

public class TestMath{

public static void main(String[] args)
{
System.out.print("请您输入x的数值: ");
Scanner s=new Scanner(System.in);
double x=s.nextDouble();
System.out.println("\n您输入的x = "+x);
System.out.println("\nsin(x)/(x+1)的值为: "+Math.sin(x)/(x+1)+"\n");
}

}

然后跟踪代码.按住CTRL键然后点击Math.sin(x)

你运行下面的源代码看看是你需要的吗?程序要求用户输入一个数值x(比如像你所说的输入x=8),然后计算sin(x)/(x+1)的值并输出结果.我就照你要求去写的,还有疑问可补充问题!希望能帮上你,欢迎你再次提问!
下面是写好的程序:

import java.util.*;

public class TestMath{

public static void main(String[] args)
{
System.out.print("请您输入x的数值: ");
Sca