COS3711
Assignment 2
Due 18 July 2025
, Assignment 2
1. Introduction
Please read this whole assignment tutorial letter before starting to ensure that you know
what is expected of you and you do not get surprised by some requirement later in the
development process. Use CMake to set up the projects and use QMainWindow
instances for the user interfaces so that you can implement the functionality provided by
a QMainWindow (such as menus, a toolbar, and a status bar) to meet the requirements
of the scenario given below. Please note that you must not use Qt Designer, and you
are expected to manually set up GUIs to ensure that you properly handle memory using
Qt’s parent-child functionality. Marks will also be awarded for following good
programming practice.
• Follow standard naming conventions: class names start with a capital letter, variable
and function names start with a lowercase letter, using camelCase for names made up
of multiple words.
• Ensure consistent code layout and use of blank lines.
• Use forward class declarations in header files.
• Use initialiser lists in constructors.
• Have proper GUI management: setting cursor focus, sequential tabbing, clearing input
widgets (like text input fields being cleared and spin boxes being returned to some
default value), and enabling and disabling buttons/menu items as appropriate.
• Provide appropriate user feedback.
• Your code should build and run without any warnings.
Name:
Module: COS3711 – Advanced Programming
Year: 2025
Assignment 2
Assignment 2
Due 18 July 2025
, Assignment 2
1. Introduction
Please read this whole assignment tutorial letter before starting to ensure that you know
what is expected of you and you do not get surprised by some requirement later in the
development process. Use CMake to set up the projects and use QMainWindow
instances for the user interfaces so that you can implement the functionality provided by
a QMainWindow (such as menus, a toolbar, and a status bar) to meet the requirements
of the scenario given below. Please note that you must not use Qt Designer, and you
are expected to manually set up GUIs to ensure that you properly handle memory using
Qt’s parent-child functionality. Marks will also be awarded for following good
programming practice.
• Follow standard naming conventions: class names start with a capital letter, variable
and function names start with a lowercase letter, using camelCase for names made up
of multiple words.
• Ensure consistent code layout and use of blank lines.
• Use forward class declarations in header files.
• Use initialiser lists in constructors.
• Have proper GUI management: setting cursor focus, sequential tabbing, clearing input
widgets (like text input fields being cleared and spin boxes being returned to some
default value), and enabling and disabling buttons/menu items as appropriate.
• Provide appropriate user feedback.
• Your code should build and run without any warnings.
Name:
Module: COS3711 – Advanced Programming
Year: 2025
Assignment 2