Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Dynamic MathStack The MathStack class shown in this chapter only has two member

ID: 2246313 • Letter: D

Question

Dynamic MathStack The MathStack class shown in this chapter only has two member functions: add and sub . Write the following additional member functions: Function Description mult - Pops the top two values off the stack, multiplies them, and pushes their product onto the stack. div - Pops the top two values off the stack, divides the second value by the first, and pushes the quotient onto the stack. addAll - Pops all values off the stack, adds them, and pushes their sum onto the stack. multAll -Pops all values off the stack, multiplies them, and pushes their product onto the stack. Demonstrate the class with a driver program. Using these header files IntStack.h // Specification file for the IntStack class #ifndef INTSTACK_H #define INTSTACK_H class IntStack { protected: int *stackArray; int stackSize; int top; public: IntStack(int); ~IntStack(); void push(int); void pop(int &); bool isFull(); bool isEmpty(); }; #endif and MathStack.h // Specification file for the MathStack class #ifndef MATHSTACK_H #define MATHSTACK_H #include "IntStack.h" class MathStack : public IntStack { public: MathStack(int s) : IntStack(s) {} void add(); void sub(); void mult(); void div(); void addAll(); void multAll(); }; #endif In C++

Explanation / Answer


void MathStack::mult() {
   int a, b, result;
   pop(b);
   pop(a);
   result = a*b;
   push(result)
}

void MathStack::div() {
   int a, b, result;
   pop(b);
   pop(a);
   result = a/b;
   push(result)
}

void MathStack::addAll() {
   int a, result;
   pop(result);

   while (isEmpty() == false) { //keep poping and adding them
       pop(a);
       result += a;
   }
   push(result); //finally push the item
}

void MathStack::multAll() {
   int a, result;
   pop(result);

   while (isEmpty() == false) {
       pop(a);
       result *= a;
   }
   push(result);
}

Here you go, I have coded all 4 methods you needed according to the question