CSC 222: Computer Programming II
Spring 2005

HW5: Inheritance and Stacks

For this assignment, you will build upon existing classes to create a calculator that can evaluate both infix and postfix expressions. You are given the following classes:

You are to extend the calculator so that it gives the user the option of entering expressions in infix notation or postfix notation (a.k.a. Reverse Polish notation). In order to accomplish this, you will need to perform the following tasks:

  1. Define a new class named PostfixExpression that is derived from Expression and models a postfix expression. Similar to the way that InfixExpression is defined, your new class will need to implement the verify and evaluate methods. Recall that a stack can be used to evaluate a postifix expression: each operand is pushed on the stack, and each operator is handled by popping two operands off the top, applying the operator, and then pushing the result.
  2. Modify the Calculator class so that the main method first prompts the user as to whether they want to enter infix or postfix expressions for evaluation. Depending on their response, expressions of that type should be read in and evaluated.