Help with C++ homework
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
10 years ago 10
Purchase the answer to view it
- 1.zip
- 2.zip
Purchase the answer to view it
- downloads.zip
- Film Analysis and Its Applications
- (MC)<object:standard:lacc.w.1112.9a:> Frankenstein Chapter 2, Excerpt 2 By Mary Shelley Victor Frankenstein continues recounting the influences that lead to his great experiment: An accident again...
- Assignment 2: Negotiation and Decision Making Styles Dialogue
- Political Challenges of the CHIP
- Multiple Questions Answers
- econ of Healthcare 6
- Excel Assignment One of ECO 500
- Need 4page single space report for eng315 assignment 2.3 instructions on pages 18-29
- sociology
- Need help with a paper