Stack

copy over all the files provided for you 
the files are in the usual place


For this assignment you will create a Stack implementation , a menu driven test application ( like the lab ) and test files for all 3  data types


ELEMTYPE is a macro that will define the datatype it should hold

The stack will be a dynamic design. The constructor allows the user to pass in a size for the container when it is created it will default to the value of 4.

MAKE sure you test your stack by creating one and pass in a size to the constructor and make sure that the size is enforced.. 
.ie if you pass in 9 to the contructor make sure it allows insertion of up to 9 values. 
Test it by creating a stack and do not pass a size to the contructor it MUST default to a size of 4 and act accordingly 
(main2 and main3 do this , make sure to run ALL the examples)


Create ONLY 1 constructor and use a default parameter.

The stack will NOT re size OR grow as needed.

you will not use cout or cin ANYWHERE in your stack class. 
any cout or cin operations should happen in the main test application
Log the start and end of all functions

DO NOT PUT ANY LOGIC TO PREVENT A FUNTION BEING CALLED in your main
if the menu option for add or delete is chosen call the cooresponding function 
regardless if the container is full or empty



File: Stack.h 

#pragma once
#include "cmpslib19.h"
#include "easylogging.h"


#ifndef ELEMTYPE  // only do the following define if its not already defined

#define ELEMTYPE  int
#endif

// create your stack class, it will store values of type ELEMTYPE 
// you will need a constructor it will allow the user to pass in the size/capacity of the container as the only parameter
// have this default to the value of 4

// a public function that returns true or false if the container is empty

// a public function that returns true or false if the container is full

// a public function that returns the capacity of the stack

// a function that returns the number of elements currently in the stack

// a public function that allows a value to be added or  "pushed" into the stack, returns 
// true or false if push operation was successful

// a public function that will remove or "pop' a value from the stack
// true or false if pop operation was successful

// a public function that returns a reference to the top value on the stack
// if the stack is empty return the value at index 0
// blankline
// a public ToString() function that matches the examples output
// blankline


You will complete main1.cpp, it should be bascially the same as your main from lab when complete your code should perform EXACTLY like the examples example_int example_string example_fraction example_test_size1 example_test_size2 example_test_size3 create a test file for each data type and use it to test your code your test file should work with both the example and your code start simple then make your testfiles more complex... try to break your stack.. add even if its full, delete when its empty I will absolutely do it when I grade your assignments I WILL grade your homework with a testfile of my own.