我有一个我需要编写的程序,并且想知道是否有人可以给我一些指示。我写了很多程序,但需要提示算法,因为我被卡住了。我正在使用Java。
我曾想过遍历文件,将指令和数字存储在2D数组中。当我到达'Apply'时,数组结束。 tat听起来像个好主意吗?
编写一些代码来计算一组指令的结果。指令包括由每行空格分隔的关键字和数字。从文件加载指令,结果输出到屏幕。可以指定任意数量的指令。指令可以是您选择的任何二元运算符(例如,加,除,减,乘等)。指令将忽略数学优先级。最后一条指令应为“apply”和一个数字(例如“apply 3”)。然后使用该数字初始化计算器,并将先前的指令应用于该数字。
示例:
[从档案输入]
加2
乘以3
申请3
[输出到屏幕]
15
[说明]
(3 + 2)* 3 = 15
答案 0 :(得分:0)
您知道您将拥有一系列已知类型的操作,后跟已知类型的数字,而不是使用数组。所以你真的想将它标记为你自己的结构,可以从操作名称和数量创建,然后知道如何执行该操作以及如何描述它。然后,您可以创建一个文件解析器,它读取每一行并返回与之相关的操作对象。你可能使用了一个界面,这样你的IMathmaticalOperation
就会有name
,symbol
,number
和performOperation( number )
成员,然后你就可以{ {1}},AdditionOperation
等实现它并知道如何执行自己的操作。这也意味着如果您决定向计算器添加新功能,则可以轻松创建实现该接口的新对象,而无需过多更改核心代码。然后,您的文件解析器可以返回一个IMathmaticalOperations数组,并且不必知道它们实际执行操作的细节,只需它们正确地实现操作。
它也使单元测试变得容易。听起来你刚刚开始,所以现在学习如何进行单元测试将使你在编程生涯的其余部分走上一条良好的道路。