【问题标题】:implementation of simple calculator简单计算器的实现
【发布时间】:2013-11-13 18:32:06
【问题描述】:

创建一个模拟一个非常简单的计算器的程序

所以我被要求实现一个代表二进制(有 2 个参数)算术表达式的抽象类

abstract class ArithmeticExpression {

    double binary1;
    double binary2;

    public abstract void evaluate ();

    public abstract void display ();

}

然后我创建了子类加法、乘法、减法和除法。在减去我有:

public class subtract extends ArithmeticExpression {
    // private double result;
    double binary1;
    double binary2;

    public subtract (double x, double y) {
        this.binary1 = x;
        this.binary2 = y;
    }

    public  void evaluate () {

        System.out.println("Expression: " + getsubX() + " - " + getsubY() + " = ");

        // return result;
    }

    public  void display () {

    }

    public double getsubX() {

    }

    public double getsubY() {

    }

使用类我应该能够表示任意表达式,无需硬编码。

也有人说,evaluate 应该以 double 形式返回结果,而 display 方法应该以字符串形式打印出表达式。我在正确的轨道上吗?我在这里想念什么?我不明白的部分是如何表示任何表达式的?

【问题讨论】:

  • 您可能想要更具体一些。很难回答“我还好吗?”在不知道您要求的详细信息的情况下。即使这样,它也应该是一个解决特定编码问题的问题。

标签: java class abstract


【解决方案1】:

使用您的抽象 ArithmeticExpression,Subtract 类应如下所示。 Java 类以大写字母开头。

public class Subtract extends ArithmeticExpression {
    double  result;

    public Subtract(double x, double y) {
        this.binary1 = x;
        this.binary2 = y;
    }

    @Override
    public void evaluate() {
        result = binary1 - binary2;
    }

    @Override
    public void display() {
        System.out.println("Expression: " + binary1 + 
                " - " + binary2 + " = " + result);
    }

}

您不必重新声明 binary1 和 binary2。它们在抽象 ArithmeticExpression 类中实例化。

您必须为结果提供双精度值。这应该在抽象 ArithmeticExpression 类中完成。

evaluate() 方法用于评估。

display() 方法用于显示。

您不必在您的 Subtract 具体类中定义任何其他方法。

【讨论】:

    【解决方案2】:

    如果你想评估任何插入形式的表达式

    4 + 3 * ( 4 + 5)
    

    您需要创建二叉树或堆栈并填充这些值和运算符。

    我很不明白的是你所谓的二进制表示为双。如果你想要二进制计算,你应该使用 unsigned int 或 long(或任何其他类型,不是浮点数)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 2015-04-04
      • 2011-02-13
      • 2014-02-22
      • 2013-06-27
      相关资源
      最近更新 更多