I would be happy to help you. I would recommend using nested loops to solve the problem. In any problem where you need to output characters in rows and columns nested loops can help you get a resolution. Simply create a loop on the outside that represents the rows and loop on the inside that represents the column. The loop that represents the column should print a character to the console. The loop that represents the row should move to the next line. The catch in this problem is that we need to print a different character depending on the position. I would recommend writing a conditional statement inside the column loop that determines which character to print.
How do we determine which coordinates are the exterior points? If we consider a graph with coordinates x and y or better yet an array with two dimension we can begin to visualize our solution. In the array box[x][y] we can easily determine the exterior coordinates or values. So how do we define the boundaries of our array? We know one set of boundaries just be examining the properties of a two-dimensional array. We know that 0th element of the x coordinate is always a boundary and the 0th element of the y coordinate is always a boundary. The outer boundary will be determined by the user input.