Object-Oriented Programming/GUI Applications

This lesson introduces GUI applications.

Objectives and Skills

edit

Objectives and skills for this lesson include:

  • Develop project management skills to achieve a project goal within given constraints.
    • Initiating, planning, executing, controlling, and closing the work of a team.
    • Design a Gantt chart to illustrate the project's schedule
  • Design a object-oriented GUI program
    • Create a UML class diagram that characterizes the implementation details of the program (classes, methods, attributes, and their relationships)

Readings

edit
  1. Wikiversity: Project Management
  2. Wikipedia: Graphical user interface
  3. Wikipedia: List of widget toolkits
  4. https://python-course.eu/tkinter/

Multimedia

edit

Examples

edit

Activities

edit

Hello World

edit
  1. Review Wikipedia: "Hello, World!" program.
  2. Create a GUI program that displays "Hello, World!"

Text Editor

edit
  1. Review Wikipedia: Text editor
  2. Create a GUI program that implements a text editor.
  3. Add a File menu with options for New and Exit.
  4. Add an Edit menu with options to Cut, Copy, and Paste. Include keyboard shortcuts for ^X, ^C, and ^V.
  5. Add a context menu that allows the user to right-click in the text window and select Cut, Copy, and Paste options.
  6. Update the File menu with options for Open..., Save, and Save As... Use standard dialog boxes to implement these menu options.
  7. Add a Format menu with options for Font... Use a standard dialog box to implement this menu option.
  8. Add a Help menu with a custom About dialog box.

Raster Graphics Editor

edit
  1. Review Wikipedia: Raster graphics editor
  2. Create an object-oriented GUI program that implements a raster graphics editor (paint program). Include a canvas drawing surface and a variety of drawing options, such as different colors and brush sizes, a text tool, etc.
  3. Add a File menu with options for New, and Exit.
  4. Update the File menu with options for Open..., Save, and Save As... Use standard dialog boxes to implement these menu options.
  5. Add a Help menu with a custom About dialog box.

Card Game

edit

Create a GUI Application

edit
  1. Review Stanford: The Card Game Assignment. Create an object-oriented GUI program that implements a card deck application.
  2. Include program, class, and method documentation consistent with the documentation standards for your selected programming language.
  3. Add unit testing to test all aspects of each class. Run tests automatically when the class module itself is run as the main program.

Add Lists

edit
  1. Enhance the card game program above to use lists to implement decks, hands, and players.
  2. Add rules to the card game so users may play one of the following:
    • Black Jack
    • Crazy Eights
    • Go Fish
    • Old Maid
    • Rummy
    • War
  3. Include program, class, and method documentation consistent with the documentation standards for your selected programming language.
  4. Add unit testing to test all aspects of each class. Run tests automatically when the class module itself is run as the main program.

Add Dictionaries

edit
  1. Enhance the card game program above to use dictionaries to implement scoring (tracking player wins and losses).
  2. Include program, class, and method documentation consistent with the documentation standards for your selected programming language.
  3. Add unit testing to test all aspects of each class. Run tests automatically when the class module itself is run as the main program.

Weather Application

edit

Create a GUI Application

edit
  1. Review OpenWeatherMap: API. Create an object-oriented GUI program that displays current weather for a given location entered or selected by the user.# Include program, class, and method documentation consistent with the documentation standards for your selected programming language.
  2. Add unit testing to test all aspects of each class. Run tests automatically when the class module itself is run as the main program.

Add Lists

edit
  1. Enhance the weather application above to use lists to add hourly and daily weather forecasts for the given location.
  2. Include program, class, and method documentation consistent with the documentation standards for your selected programming language.
  3. Add unit testing to test all aspects of each class. Run tests automatically when the class module itself is run as the main program.

Add Dictionaries

edit
  1. Enhance the weather application above to use dictionaries to track multiple locations entered or selected by the user. Track usage history and display location options in order by most recently used.
  2. Include program, class, and method documentation consistent with the documentation standards for your selected programming language.
  3. Add unit testing to test all aspects of each class. Run tests automatically when the class module itself is run as the main program.

Lesson Summary

edit

Key Terms

edit

See Also

edit

References

edit