Calculate the price
of
your order:

275 words
+
Approximate price
$ 0.00

Stack object data structures do not contain code to throw an exception when a stack.pop() function is called on an empty stack. This is due to the fact that it is easy to establish this exception handing elsewhere. Create a class named SafeStack that implements a stack of strings. 

  • Use an instance of stack from <string> to hold string values and implement the same interface as the data type. However, your implementation (class) should throw an exception if an attempt is made to remove a value from an empty stack.
  • See Chapter 17 of the book for how to complete this assignment.

TEXT is BIG C++ 

 

free pdf.

 

https://vk.com/doc-38203920_235034518

 

I am having issues getting code to compile. Need HELP ASAP 

 

// File: SafeStack.h
#ifndef SAFESTACK_H
#define SAFESTACK_H

// Header files section
#include <stack>
#include <string>
#include <exception>
#include <stdexcept>
#include <iostream>
#include <sstream>
using namespace std;

// definition of the EmptyStackException class
class EmptyStackException : public exception
{
public:
   EmptyStackException();
  
};

// definition of the SafeStack class
class SafeStack
{
public:
   SafeStack();
   void push(string str);
   string top() throw (EmptyStackException);
   void pop() throw (EmptyStackException);
   int size();
   bool empty();

private:
   stack<string> stk;
};
#endif

——————————————————————-

// File: SafeStack.cpp
#include “SafeStack.h”

// constructor of the EmptyStackException class
EmptyStackException::EmptyStackException() : exception(“Stack is empty!”)
{
}

// constructor of the SafeStack class
SafeStack::SafeStack()
{}

// push function implementation
void SafeStack::push(string str)
{
   stk.push(str);
   cout << “One element is inserted in the stack.” << endl;
} // end of push function

// top function implementation
string SafeStack::top() throw (EmptyStackException)
{
   // throw the EmptyStackException if the stack is empty
   if(stk.empty())
       throw EmptyStackException();

   return stk.top();
} // end of top function

// pop function implementation
void SafeStack::pop() throw (EmptyStackException)
{
   // throw the EmptyStackException if the stack is empty
   if(stk.empty())
       throw EmptyStackException();

   stk.pop();
} // end of pop function

// size function implementation
int SafeStack::size()
{
   return stk.size();
} // end of size function

// empty function implementation
bool SafeStack::empty()
{
   return stk.empty();
} // end of empty function

——————————————————————–

// File: Test.cpp
#include “SafeStack.h”

// start main function
int main()
{
   // create an object for the SafeStack class
   SafeStack ss;

   cout << “The number of elements in the stack: ” << ss.size() << endl;

   // try/catch for the top() function
   try
   {
       cout << “The top element in the stack: ” << ss.top() << endl;
   }
   catch(exception& ex)
   {
       cout << “Caught exception for top(): ” << ex.what() << endl;
   }

   ss.push(“John”);
   ss.push(“Smith”);
   cout << “nThe number of elements in the stack: ” << ss.size() << endl;

   // try/catch for the top() function
   try
   {
       cout << “The top element in the stack: ” << ss.top() << endl;
   }
   catch(exception &ex)
   {
       cout << “Caught exception for top(): ” << ex.what() << endl;
   }

   cout << “nThe number of elements in the stack: ” << ss.size() << endl;

   // try/catch for the pop() function
   try
   {
       ss.pop();
       cout << “One element is removed from the stack.” << endl;
   }
   catch(exception &ex)
   {
       cout << “Caught exception for pop(): ” << ex.what() << endl;
   }

   // try/catch for the top() function
   try
   {
       cout << “The top element in the stack: ” << ss.top() << endl;
   }
   catch(exception &ex)
   {
       cout << “Caught exception for top(): ” << ex.what() << endl;
   }

   cout << “nThe number of elements in the stack: ” << ss.size() << endl;

   // try/catch for the pop() function
   try
   {
       ss.pop();
       cout << “One element is removed from the stack.” << endl;
   }
   catch(exception &ex)
   {
       cout << “Caught exception for pop(): ” << ex.what() << endl;
   }

   // try/catch for the top() function
   try
   {
       cout << “The top element in the stack: ” << ss.top() << endl;
   }
   catch(exception ex)
   {
       cout << “Caught exception for top(): ” << ex.what() << endl;
   }

   cout << “nThe number of elements in the stack: ” << ss.size() << endl;

   // try/catch for the pop() function
   try
   {
       ss.pop();
       cout << “One element is removed from the stack.” << endl;
   }
   catch(exception &ex)
   {
       cout << “Caught exception for pop(): ” << ex.what() << endl;
   }

   cout << endl;
   system(“pause”); // for Visual Studio
   return 0;
} // end of main function

Basic features

  • Free title page and bibliography
  • Unlimited revisions
  • Plagiarism-free guarantee
  • Money-back guarantee
  • 24/7 support

On-demand options

  • Writer's samples
  • Part-by-part delivery
  • Overnight delivery
  • Copies of used sources
  • Expert Proofreading

Paper format

  • 275 words per page
  • 12pt Arial/Times New Roman
  • Double line spacing
  • Any citation style (APA, MLA, CHicago/Turabian, Havard)

Guaranteed originality

We guarantee 0% plagiarism! Our orders are custom made from scratch. Our team is dedicated to providing you academic papers with zero traces of plagiarism.

Affordable prices

We know how hard it is to pay the bills while being in college, which is why our rates are extremely affordable and within your budget. You will not find any other company that provides the same quality of work for such affordable prices.

Best experts

Our writer are the crème de la crème of the essay writing industry. They are highly qualified in their field of expertise and have extensive experience when it comes to research papers, term essays or any other academic assignment that you may be given!

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00

Expert paper writers are just a few clicks away

Place an order in 3 easy steps. Takes less than 5 mins.