In order to receive credit for this assignment, it must be submitted, using the handin command, by 8 AM on Monday, April 25th.
This assignment will provide an opportunity for you to become familiar with three (3) Design Patterns implemented in C++. The three patterns are Singleton, Command and Factory Method and you should use them to implement a notepad kind of application that allows the user to type lines of text onto a canvas. Use the Command pattern to encapsulate five (5) commands: load, save, encrypt, leet, undo. To obviate the need to pass the text around through the five commands, use a Singleton to store the data. Also, to place the scaffolding for command construction within the Command hierarchy, include a Factory Method as one of your derived classes in the Command pattern.
To get full credit you must provide a GUI interface for your notepad application. This GUI should include a canvas and six buttons, one for each of the commands above and one button to quit the application. I will provide some start code for the GUI; this start code will show you how to implement a button and how to get lines of text from the canvas. However, you will be required to make additions to the GUI code that I provide; these additions should include: (1) a cursor, (2) different buttons, (3) backspace, and (4) facility to retrieve a file name from the user.
Finally, use the handin command to submit you final program. The handin command works as follows:
handin.481.2 <asgn #> <files> for example: handin.481.2 4 *