Problem:
Question 1: Write a function that accepts an integer parameter and returns its integer square root. The function should throw an exception if it is passed an integer that is not a perfect square. Demonstrate the function with a suitable driver program.
Question 2: Add exception handling to the C++ code of template class "stack" in previous lecture and throws and handles exception "OVERFLOW" when trying to push into a full stack. Throws and handles exception "UNDERFLOW" when trying to pop from an empty stack.
Show the code, demonstrate it works properly and describe what it is doing.