java 如何让用户自定义函数呢?
大家好,在下有一个比较基础的问题想问你们:我编写了一个类,类里面有一个要经常被调用的方法,该方法返回一个数学函数的函数值classPicPanelextendsJPane...
大家好,在下有一个比较基础的问题想问你们:
我编写了一个类,类里面有一个要经常被调用的方法,该方法返回一个数学函数的函数值
class PicPanel extends JPanel
{
…………………
……………………
public double f(double x)
{
return Math.sin(x);
}
}
但是找我这样编写程序的话,函数只能用编写者(我)来确定,
我想让用户自己输入函数想解析表达式,然后在调用这个函数,
请问大家,有什么好的方法或建议吗?
我是想让用户输入一个数学函数的表达式,然后我的那个类中 画出用户输入的数学函数的图像,因为我是用描点法画图的,所以就是要不断的调用 用户输入的表达式,我觉得你们可能误解了我的意思了吧? 展开
我编写了一个类,类里面有一个要经常被调用的方法,该方法返回一个数学函数的函数值
class PicPanel extends JPanel
{
…………………
……………………
public double f(double x)
{
return Math.sin(x);
}
}
但是找我这样编写程序的话,函数只能用编写者(我)来确定,
我想让用户自己输入函数想解析表达式,然后在调用这个函数,
请问大家,有什么好的方法或建议吗?
我是想让用户输入一个数学函数的表达式,然后我的那个类中 画出用户输入的数学函数的图像,因为我是用描点法画图的,所以就是要不断的调用 用户输入的表达式,我觉得你们可能误解了我的意思了吧? 展开
3个回答
展开全部
用户输入一个表达式,如果你不对这个表达式做严格的规范限制,只会让你的程序不健康。
假设你写一个方法:public void math(String str);
现在用户传递一个String: "10 + 5";
你需要对这个String进行解析,然后调用10.add(5).
计算公式千差万别,用户输入的string有无限可能,你不可能将所有可能一网打尽的。比如(10+5)*6+6+7*8这样的算术式你解析起来很困难的。
所以建议你到网上搜索有没有已经存在的开源的算术表达式解析器。自己很麻烦。
但我猜想,就算有这样的算术表达式解析器,也就是写很简单的计算,对于复杂的如求模,求和,求平均,统计,傅里叶变换等等高级算术肯定是不支持的
如果你真的打算自己实现,那么就需要对输入框经行限制,比如只允许用户输入数字和运算符,这样给你解析字符串带来方便。
假设你写一个方法:public void math(String str);
现在用户传递一个String: "10 + 5";
你需要对这个String进行解析,然后调用10.add(5).
计算公式千差万别,用户输入的string有无限可能,你不可能将所有可能一网打尽的。比如(10+5)*6+6+7*8这样的算术式你解析起来很困难的。
所以建议你到网上搜索有没有已经存在的开源的算术表达式解析器。自己很麻烦。
但我猜想,就算有这样的算术表达式解析器,也就是写很简单的计算,对于复杂的如求模,求和,求平均,统计,傅里叶变换等等高级算术肯定是不支持的
如果你真的打算自己实现,那么就需要对输入框经行限制,比如只允许用户输入数字和运算符,这样给你解析字符串带来方便。
展开全部
可以在主函数里接收解析表达式,如:sin(x), cos(x)等。
将函数参数double x改为String x,接收主函数中用户自己输入的串,然后在函数体中
if (x.equals("sin"))
{}
else if (x.equals("cos"))
{}
……
具体的代码自己写吧,不难
将函数参数double x改为String x,接收主函数中用户自己输入的串,然后在函数体中
if (x.equals("sin"))
{}
else if (x.equals("cos"))
{}
……
具体的代码自己写吧,不难
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
接收一个参数,调用方法的时候,把接收的参数传进去,代替你自己写的.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询