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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.