Dynamic MathStack The MathStack class shown in this chapter only has two member
ID: 3819394 • 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
lets start with the add() method we can write the add method as follows
void MathStack :: add()
{
int sum,number;
// Pop first two values from the stack
pop(sum);
pop(number);
sum += number; //add the values
push(sum);// Push the sum to stack again
}
for substraction
void MathStack::sub()
{
int number, difference;
pop(difference);
pop(number);
// Subtract num from diff.
difference -= number;
push(difference);
}
for multiplication
void MathStack::mult()
{
int number1, number2;
pop(number1);
pop(number2);
number1 *= number2;
push(number);
}
for division
void MathStack::div()
{
int number1, number2;
pop(number1);
pop(number2);
number1 /= number2;
push(number);
}
for addall
void MathStack::addAll()
{
int array[stackSize];
int totalval;
for (int k = 0; k < stackSize; k++)
{
array[k] = stackArray[k];
totalval += array[k];
}
push(totalval);
}
for multall
void MathStack::multAll()
{
int array[stackSize];
int totalval;
for (int k = 0; k < stackSize; k++)
{
array[k] = stackArray[k];
totalval *= array[k];
}
push(totalval);
}
thats the all functions completed happy coding
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.