100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached 4.2 TrustPilot
logo-home
Exam (elaborations)

COS3711 ASSIGNMENT 3 2025

Rating
-
Sold
-
Pages
36
Grade
A+
Uploaded on
14-09-2025
Written in
2025/2026

COS3711 Assignment 3 2025; 100% TRUSTED workings with detailed Answers for A+ Grade.












Whoops! We can’t load your doc right now. Try again or contact support.

Document information

Uploaded on
September 14, 2025
Number of pages
36
Written in
2025/2026
Type
Exam (elaborations)
Contains
Questions & answers

Content preview

COS3711
ASSIGNMENT 3 2025

UNIQUE NO.
DUE DATE: 2025

, lOMoARcPSD|21997160




COS3711/Assignment 3/2025

Assignment 3

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.

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. Three sets of
files have been provided for you so that you do not have to do it all from scratch:
• COS3711A3_QMainWindow_template – use this template to set up the main GUIs.
• COS3711A3_ContainerWidget – this contains a widget providing the setup of the one
interface.
• COS3711A3_Icons – this contains icons that you can use in the application.
Use these to set up a project (using cmake, not qmake) that uses a QMainWindow as the user
interface so that you can implement the functionality provided by aQMainWindow (menus,
toolbar, status bar) to meet the requirements of the scenario given below.

Marks will also be awarded for following good programming practice, for example,
• naming conventions,
• code layout and line spacing,
• using initialiser lists in constructors,
• using forward class declarations in header files,
• enabling and disabling buttons as appropriate,
• GUI handling like setting focus, sequential tabbing, clearing input widgets (like text input fields
being cleared and spin boxes being returned to some default value), and
• providing appropriate user feedback (including tooltips and messages to the user).
Your code should build and run without any warnings.

Consider the following scenario and then design a solution to meet the requirements listed.

2. Scenario

Transporting cargo around the world is essential in ensuring that customers have access to the
goods they need and want.

Containers
All such items are packaged in some sort of container, each of which has a code, weight, and
volume (which should be calculated and expressed as an integer). For the purposes of this
scenario, there are two kinds of containers.
• A box, where we want to know its dimensions: length, breadth, and height.

, lOMoARcPSD|21997160




COS3711/Assignment 3/2025

• A cylinder, where we want to know its diameter and height.
The user should not be able to instantiate a simple container; only boxes and cylinders can be
instantiated. Think carefully about how these requirements will be designed and an appropriate
design pattern that could be used when instantiating container types. Use sensible ranges/limits
for the input widgets on the user interface.

The container code, which is allocated when containers are created, takes the following format.
• The current year value between 2000 and 2099 (both included)
• Forward slash (/)
• The current month value between 01 and 12 (both included)
• Forward slash (/)
• A ‘B’ or a ‘C’, depending on the container type.
• A serial number starting from 1, running up to 9999. Each new container is given the next
serial number.
Examples of valid codes are 2022/01/B1 and 2022/01/C2.

Lists
When a user creates a box or cylinder, the objects should be added to an unallocated container
list. The container codes of these items should be displayed on the user interface using some
model/view convenience class instance. The user should be able to backup this list of unallocated
containers (remembering that you cannot simply back up the pointers to the container objects as
they may be deleted before the restore is done); when restoring the unallocated container list, the
container objects should be recreated and added to the list, and the model/view convenience
object appropriately updated. Use an appropriate design pattern for this backup/restore
functionality where the state is saved in memory rather than to a file.

For transport, containers are packed onto a pallet (where it should be possible to calculate a
pallet’s total weight and volume); for the purposes of this assignment, you may assume that there
is no limit to the number of pallets, number of items on a pallet, or a pallet’s total weight and
volume. The user should be able to click on a container code in the model/view convenience
object, and this container should be moved to a pallet selected by the user, updating both the list
of unallocated containers and the model/view convenience display. This means that there should
also be a list of pallets, where pallets can be identified by a pallet number (which do not have to
be sequential; a user can load containers onto pallets numbered 1 and 3 without loading any
containers onto pallet 2).

Here is the required design of the user interface, showing how it could be used. As can be seen,
all this functionality is available on one tab of the user interface.

, lOMoARcPSD|21997160




COS3711/Assignment 3/2025




Serialising
The user should be able to serialise the list of pallets. This is achieved on a second tab on the
user interface.
• The serialising task should be run in a thread.
• The pallet list should be converted to XML for the serialisation task. Use container meta-
objects to ensure a more generic approach to capturing container properties. See below for
the required XML format.

<pallets NumberOfPallets="2">
<pallet weight="3" volume="7" number="1">
<Box>
<code>2022/04/B1</code>
<height>1</height>
<weight>1</weight>
<length>1</length>
<breadth>1</breadth>
</Box>
<Cylinder>
<code>2022/04/C2</code>

Get to know the seller

Seller avatar
Reputation scores are based on the amount of documents a seller has sold for a fee and the reviews they have received for those documents. There are three levels: Bronze, Silver and Gold. The better the reputation, the more your can rely on the quality of the sellers work.
StudyAidPro Tutors International
View profile
Follow You need to be logged in order to follow users or courses
Sold
191
Member since
1 year
Number of followers
2
Documents
560
Last sold
1 month ago
StudyAidPro

On this page, you find all documents, package deals, and flashcards offered by seller StudyAidPro. All Modules!

4,0

22 reviews

5
11
4
5
3
2
2
3
1
1

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their exams and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can immediately select a different document that better matches what you need.

Pay how you prefer, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card or EFT and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Frequently asked questions