COP4226, Homework 2

Due Monday, October 27 (late 6am 10/28)

Create an application that will use a separate class for a document. The document will contain a list of shape ojects. Define a separate class for the shape information. Be sure to encapsulate operations in the class they work on.

Avoid long methods. Each method that you create should be short, to promote encapsulation. If you have a method that is longer than 25 lines, then it probably needs to be divided into smaller methods.

Do not create a new data structure if one that already exists will solve the problem.

Control Library

Use the control library from homework 1. Be sure to include the file in the zip that you upload.

Interfaces

Use interfaces to encapsulate implementation details. Design code so that the implementation details of data could be changed in the future without having to rewrite all the code that accesses that data.

Oath Dialog

Create a dialog in the main application that will display the pledge of honesty.

About Dialog

Create a dialog in the main application that will display a description of the assignment.

Shape Enumeration

Create an enumeration for shapes that contains the values Ellipse, Rectangle and Triangle.

Shape Class

Create a class that will hold data for a shape. The shape will have text, location, size, rotation, scale, translation and shape type. Add properties to improve encapsulation. Add more properties and helper methods that contain operations that work on shapes. Encapsulate shape processes in this class.

Document Class

Create a document class that will store shapes. Add properties and helper methods to encapsulate document processes in this class.

Shape Options Dialog

Create a dialog in the main application that will allow the user to modify information for a shape.

Main Form

Extend the main form from the form that was added to the control library for this assignment.

User Interface

When the user clicks and drags the mouse, create the currently checked shape from the shape menu.

Upload Assignment

Zip your entire project and upload on the web. Exclude the Debug and Release directories.
Submitting Homework Online.

Be sure to include your control library in your uploaded file.