COP4226, Homework 3 - Part A

Due Monday, 9/12 (late 6 am, 9/13)

The app will open child dialogs that are either ellipses or rectangles. One dimension (height or width) of each will be determined by a ratio that is set by the user. The child windows can have different colors and can be moved by the mouse.

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.

Use properties to encapsulate implementation details.

Use meaningful names for all variables. Any variable that ends with a number will lose points.

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

Control Library

Add a project for a control library to the solution. Only add one control library: it will contain two controls and two forms.

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.

Preferences Dialog

Create a modeless dialog in the main application that will be used to gather information from the user.

Elliptic Child

Add a form in the main application that extends the moveable base form.

Rectangular Child

Add a form in the main application that extends the moveable base form.

Main Form

Modify the main form for the project.

  • Set the context menu to the context menu for the preferences.
  • When the form closes, ask the user if they really want to close the application. Only close the application if the user confirms.
  • Create a video

    Create a 2-5 minute mp4 video. You may use the free version of Screencast-o-matic. The video must include:

    Submitting the Assignment

    Zip your entire project and upload via the Assignment Dropbox on BlackBoard. Exclude the Debug and Release directories.

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

    Upload your video to me using the upload via the Assignment Dropbox on BlackBoard.