Topical Information
Use C++. The purpose of this project is to test your ability to use files, class design, operator overloading, and Strings or strings effectively in program design.
Program Information
Create a program which will read a phrase from the user and create a framed version of it for printing. For example, the phrase "hello world"would result in:
*********
* hello *
* world *
*********
Whereas the phrase "the sky is falling"might be:
***********
* the *
* sky *
* is *
* falling *
***********
Or:
***********
* the *
* sky *
* is *
* falling *
***********
Or even:
***********
* the *
* sky *
* is *
* falling *
***********
Depending on whether or not the user asked for left, centered, or right justification — respectively — of the phrase's words within the frame. Note how the frame exactly fits the phrase based on the longest word within. Neat, eh?
The phrase "O | -+- | /-\"when centered would become:
*******
* O *
* | *
* -+- *
* | *
* /-\ *
*******
Also allow the user to specify what character you are to make the frame from. Typical choices would be @, #, *, +, x, X, o, or O. But let them tell you anythingthat will print just fine. (Hint: cctype has a function called isprint that tells if a character is printable.)
Give them the option of reading phrases from the keyboard or a file they specify (assume each line of the input stream contains a single phrase).
The user should also be able to choose if the framed phrase is printed on the screen or into a file they specify.
In case it isn't clear, you should create a 'frame the phrase' class. It should have overloaded operators forat least
input and output.