【问题标题】:Java Calculator ProgramJava 计算器程序
【发布时间】:2012-06-01 09:25:35
【问题描述】:

我有一个需要编写的程序,想知道是否有人可以给我一些指示。我已经编写了很多程序,但是因为我被卡住了,所以需要关于算法的提示。我正在使用 Java。

我曾想过遍历文件,将指令和数字存储在二维数组中。当我到达“应用”时,数组结束。 tat 听起来是个好主意吗?

编写一些代码来计算一组指令的结果。指令由关键字和数字组成,每行用空格分隔。从文件加载指令并将结果输出到屏幕。可以指定任意数量的指令。指令可以是您选择的任何二元运算符(例如,加法、除法、减法、乘法等)。指令将忽略数学优先级。最后一条指令应该是“apply”和一个数字(例如,“apply 3”)。然后使用该数字初始化计算器,并将前面的指令应用于该数字。

例子:

[从文件输入]
添加 2
乘以 3
申请 3

[输出到屏幕]
15

[解释]
(3 + 2) * 3 = 15

【问题讨论】:

  • 如果您使用的是 Java,则不需要指针:p

标签: calculator


【解决方案1】:

您知道您将有一系列已知类型的操作,然后是已知类型的数字,而不是使用数组。因此,您真的想将其标记为您自己的结构,该结构可以从操作名称和数量创建,然后知道如何执行该操作以及如何描述它。然后您可以创建一个文件解析器,它读取每一行并返回与其相关的操作对象。您可能为此使用了一个接口,这样您的IMathmaticalOperation 将拥有name、symbol、number 和performOperation( number ) 成员,然后您可以拥有AdditionOperation、SubtractionOperation 等等实施它并知道如何执行自己的操作。这也意味着,如果您决定向计算器添加新功能,则可以轻松创建实现该接口的新对象,而无需过多更改核心代码。然后,您的文件解析器可以返回一个 IMathmaticalOperations 数组,而不必知道它们实际执行操作的详细信息,只需知道它们正确地实现了操作即可。

它还使单元测试变得容易。听起来您才刚刚开始,所以现在学习如何进行单元测试将使您在余下的编程生涯中走上一条好路。

【讨论】:

    猜你喜欢
    • 2013-11-29
    • 2016-05-14
    • 1970-01-01
    • 2023-01-11
    • 2010-10-03
    • 1970-01-01
    • 2013-06-04
    • 2015-08-07
    • 1970-01-01
    相关资源
    最近更新 更多