Remember that with Draw_Rectangle, if it is the first or the last ROW (the height data member) then you call Draw_Top_Bottom, else you call Draw_Middle.

Draw_Middle needs to draw a "|" if it is the first or the last COLUMN (the width data member), otherwise it draws the symbol chosen by the user.

Jim - I agree with Code_Nerd that your effort is lacking. How many different times in the two threads you've started on this topic have I reminded you about the specifications for the project, how Get_Number is supposed to have a string argument, and that you test the value which is chosen by the user in the main function rather than in Get_Number. I even gave you the code for this function in your other thread and you have never included it in anything you've posted on line. Behavior like this tells people who come to this site to help people like you that you are not looking for help, but that you are just trying to appear so needy that someone might take pity on you and write all of your assignment for you. When I have taken programming classes I worked hard, some code worked, some code didn't work, I revised, I learned what worked, and the code that worked became more plentiful. I would not know what I know now without doing that hard work to learn (if I had just looked for someone to bail me out of a project).

The easy stuff is getting your function signatures to be consistent with the specifications from your instructor, and knowing how to call those functions. The stuff that takes some thought, the stuff that you need to work out yourself, is the logic of your solution to the problem and how you code that solution so that the program knows what to output to the screen, based on the row and column coordinates it is working on. How does it move from row to row, and know which subordinate (helper) function to call? How does the program move from column to column, and know what to output, within those subordinate functions?