Help with c++ homework | Computer Science homework help

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

Calculate your order
Pages (275 words)
Standard price: $0.00
Client Reviews
4.9
Sitejabber
4.6
Trustpilot
4.8
Our Guarantees
100% Confidentiality
Information about customers is confidential and never disclosed to third parties.
Original Writing
We complete all papers from scratch. You can get a plagiarism report.
Timely Delivery
No missed deadlines – 97% of assignments are completed in time.
Money Back
If you're confident that a writer didn't follow your order details, ask for a refund.

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
Power up Your Academic Success with the
Team of Professionals. We’ve Got Your Back.
Power up Your Study Success with Experts We’ve Got Your Back.
×

Contact Us on WhatsApp

× How can I help you?