【问题标题】:Multi-argument functions plus advanced text display for a scientific calculator in javajava中科学计算器的多参数函数和高级文本显示
【发布时间】:2016-05-24 03:06:25
【问题描述】:

所以我一直在使用 Java 为一个学校项目编写一个科学计算器,我在这里遇到了两件事。

  • 添加诸如sincostanroot(base,n) 等函数。这样,​​我就被困在分离参数的方法上。例如,root(base,n)。我可以自己弄清楚如何阅读方程式,我正在使用 Shutting Yard 算法将方程式转换为 RPN。我一直在关注this 伪代码算法来实现它。我只是不知道如何允许用户仅使用屏幕 GUI 添加两个参数。

  • 实现高级显示。因此,我的意思是显示不仅有一行文本,还有多行,例如degrees/radians mode、上一个方程和答案,以及当前方程/答案。如果我的解释不好,这可能有助于说明我的观点: 目前我的显示器使用一个简单的 JTextField,我知道它对我想做的事情的限制,我肯定需要改变它。 JTextField 是一种显示输出的临时方式,直到我正确显示为止。

我的计算器 GUI 目前如下所示:

它基本上有两个字符串,一个是要评估的字符串,另一个是屏幕上显示的内容,带有无法在等式中评估的 unicodes 等(因此是幂二符号和 x星号)

对于第一个问题,我认为左箭头和右箭头应该在 arg1、arg2 等之间移动。但我不知道如何实现。

我们将不胜感激任何有关这些问题的帮助。我已经尝试解决这个问题几个小时了......

谢谢。

【问题讨论】:

    标签: java user-interface jtextfield calculator jtextarea


    【解决方案1】:

    鉴于 root(base, n) = base ^ (1 / n),输入逻辑可能是相似的。我建议当用户点击 n-root 按钮时,左括号打开并且显示(或状态栏)指示他们必须进入基础。当它们以右括号结束时,它们会输入 n。

    对于高级显示我不太确定,也许是 JFormattedTextField?

    【讨论】:

    • 所以它看起来像root (base) n ?
    • 是的,这似乎是最简单的方法。你还尝试过什么?输入 n 后,可以更新显示以反映为 nth-root (of expression )
    • 我没有尝试太多...我真的不知道从哪里开始。我有想法将其格式化为root(arg1,arg2)(因为字符串“arg1”被替换为base,字符串arg2`被替换为n)但我也不知道该怎么做。
    • 有一点是肯定的,root(base)n 不会在没有大量或重组的情况下与当前设置一起使用...... base 和 n 必须在括号中,否则它会你乘以 n。需要有一个分隔符来分隔它们,即逗号。
    猜你喜欢
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多