Perhaps I'm missing something, but you have an array of points in the Polygon class which holds each x,y value. So why store the coordinates again in x_array and y_array?
Seems to me the code in Setpoints() should look like the constructor w/params.
And in showPolygon() just iterate over points[] and call Point::showPoint().