使用Eclipse在Java中创建基本的postfix表达式计算器/计算器程序。我希望能够存储一些统计数据(如下所列)
•最高的总体结果值 •总体结果值最低 •总值(所有答案加在一起) •平均答案(来自所有表达式的所有答案) •输入的无效表达式总数 •输入的有效表达式总数
当前代码:http://pastebin.com/EijjR6jq
感谢任何指导,谢谢。
答案 0 :(得分:0)
一个简单的解决方案是创建一个arraylist来存储值(打印前)。这个arraylist将包含您到目前为止所获得的所有值。对它进行排序将为您提供最高/最低的整体价值,并将其总结为&将该总和除以arraylist中的元素数量将得到总和值&平均答案。
对于无效和有效的表达式,可以实现计数器以跟踪这些表达式。根据输入的表达式递增相应的计数器(有效/无效)。
例如,它看起来如下所示。
Scanner input = new Scanner(System.in);
int invalidNumberExpressions = 0; //counter for invalids
int validNumberExpressions = 0; //counter for valids
ArrayList<String> values = new ArrayList<String>(); //Arraylist for calculated values
while (true) {
... //Omitted
if ("+".equals(part3)) {
// Note that your calculation ends up with a string, and not a float
values.add(part1 + " " + part3 + " " + part2 + " " + " = " + (number1 + number2));
System.out.println(values.get(validNumberExpressions));
validNumberExpressions++;
}
// Omitted
还可以考虑使用switch语句&amp;将两个部分中的代码的公共部分重构为另一个方法,这样您就不必重复整个部分两次。看起来也更干净。
如下所示的switch语句。我会把重构部分留给你。
switch (part3) {
case "+": values.add(part1 + " " + part3 + " " + part2 + " " + " = " + (number1 + number2));
System.out.println(values.get(validNumberExpressions));
validNumberExpressions++;
break;
... //other cases here
}