Stack without use of STL - Version 1.1
Don't mix a "library" class and input/output that is a bad style. If you really need to output some debug output, use a logger.
In push(), in case the a stack is full, you need to throw an exception or return an error code. Don't just silently ignore the error.
Same problem with the pop() method. Don't just ignore the error, notify the caller. And do not simply return 0, because it is a valid value that can be stored in a stack, so caller will not be able to distinguish error from successful call.
isFull() can be rewritten as a one-liner:

isFull() { return top == MAX_SIZE - 1; }

Don't use #define to define a constant. Use const int. #define works as a simple text substitution and is a very old and very outdated way to define constants.
Add templates to your stack to support not only a stack of ints, but a stack of any type.
Is it a feature that your stack has a limited size? If yes, consider specifying max size through the constructor. If not, extend your internal array when the limit is reached.
The top variable is pointing to the last set element. Why not to change invariant to "point to the first free element" and replace this awkward top = -1 initialization with top = 0?
print() should not be in your stack class. Provide a generic way to iterate though your stack (read about how STL iterators are implemented or implement your own iterator) and let a user decide what to do with each value from a stack while iterating it.
You can replace top++; A[top] = x; with A[++top] = x. You are using similar style in other place of your class anyway.
Consider renaming array A. The name is not descriptive at all.
Well... "Mystack" name is awkward, rename it to "Stack" :)