Object-Oriented Programming/GUI Applications

From Wikiversity
Jump to navigation Jump to search

This lesson introduces GUI applications.

Objectives and Skills[edit | edit source]

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 | edit source]

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

Multimedia[edit | edit source]

Examples[edit | edit source]

Activities[edit | edit source]

Hello World[edit | edit source]

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

Text Editor[edit | edit source]

  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 | edit source]

  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 | edit source]

Create a GUI Application[edit | edit source]

  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 | edit source]

  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 | edit source]

  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 | edit source]

Create a GUI Application[edit | edit source]

  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 | edit source]

  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 | edit source]

  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 | edit source]

Key Terms[edit | edit source]

See Also[edit | edit source]

References[edit | edit source]