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

COS3711 Assignment 2 (ANSWERS) 2025 - DISTINCTION GUARANTEED

Rating
-
Sold
1
Pages
17
Grade
A+
Uploaded on
16-07-2025
Written in
2024/2025

Well-structured COS3711 Assignment 2 (ANSWERS) 2025 - DISTINCTION GUARANTEED. (DETAILED ANSWERS - DISTINCTION GUARANTEED!)... Implement an application that tracks items bought from a store. Screenshots of possible interfaces have been provided as guidance below. Store application The store keeps a list of customers so that when something is purchased from the store, it is recorded against that customer’s name. Only the customer’s name is required. Only two items are currently sold in the store currently – books and magazines, and only the name of the item is required. Clearly, a list of such items is needed, and the user should be able to add items to the list. When an item is added, the application should automatically make a backup in Downloaded by Vusi Xhumalo () lOMoARcPSD| COS3711/Assignment 2/2025 3 memory in case something goes wrong when the application is being used. Provision should thus be made to restore this list when necessary. Clearly, for the sake of data integrity, you do not want the user to create multiple copies of these lists. When a customer purchases items, a transaction is recorded. The date/time of the purchase is noted, as is the name, type, and quantity of each item purchased as part of the transaction. Use an appropriate widget to indicate which items have already been added as part of this transaction. All transactions should be displayed on the main GUI. A tree model (and appropriate view) should be used so that a user can see a customer’s transactions grouped together. Downloaded by Vusi Xhumalo () lOMoARcPSD| COS3711/Assignment 2/2025 4 The user should be able to broadcast (using UDP) the contents of the model in XML format. This task should be run as a thread in the main application. The required XML format can be seen in the image in the next section. UDP receiver application Create a separate application that simply listens for the broadcast message and displays the received data (in XML format) on the GUI. 3. Requirements The following general requirements should be noted. • Follow good OOP design principles. • You should use menus in your application. • Pointers should be used for all instances of objects, and memory should be properly managed. • Appropriate design patterns should be used where sensible. 4. Extras Bonus marks will be awarded for the following. • The data members required for the classes are very basic and can be extended (like adding a price for each item and tracking the number of items available). Downloaded by Vusi Xhumalo () lOMoARcPSD| COS3711/Assignment 2/2025 5 • Using QMainWindow functionality: o Splash screen o Application icon o Toolbar o About and Help 5. Submission Please check the How to submit the assessments page in the Module orientation lesson on myUnisa before submitting this assignment for information about how to submit the assignment. • Use CMake when setting up your assignment. • Submit only the project folders. • You should not submit the build-desktop folders. • Zip the two folders (for the two parts of the project) into one zipped file for submission.

Show more Read less










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

Document information

Uploaded on
July 16, 2025
Number of pages
17
Written in
2024/2025
Type
Exam (elaborations)
Contains
Questions & answers

Subjects

Content preview

COS3711 Assignment 2 2025
Unique Number:
Due date: 18 July 2025
Project Structure Overview

You’ll need two separate folders/projects:

COS3711_Assignment2/

├── store_app/ <- Project 1: Store application
│ ├── CMakeLists.txt
│ ├── main.cpp
│ ├── MainWindow.h/.cpp
│ ├── Customer.h/.cpp
│ ├── Item.h/.cpp
│ ├── Transaction.h/.cpp
│ └── ...

├── udp_receiver/ <- Project 2: UDP listener app
│ ├── CMakeLists.txt
│ ├── main.cpp
│ ├── MainWindow.h/.cpp
│ └── ...




DISCLAIMER & TERMS OF USE
 Educational Aid: These study notes are intended to be used as educational resources and should not be seen as a
replacement for individual research, critical analysis, or professional consultation. Students are encouraged to perform
their own research and seek advice from their instructors or academic advisors for specific assignment guidelines.
 Personal Responsibility: While every effort has been made to ensure the accuracy and reliability of the information in
these study notes, the seller does not guarantee the completeness or correctness of all content. The buyer is
responsible for verifying the accuracy of the information and exercising their own judgment when applying it to their
assignments.
 Academic Integrity: It is essential for students to maintain academic integrity and follow their institution's policies
regarding plagiarism, citation, and referencing. These study notes should be used as learning tools and sources of
inspiration. Any direct reproduction of the content without proper citation and acknowledgment may be considered
academic misconduct.
 Limited Liability: The seller shall not be liable for any direct or indirect damages, losses, or consequences arising from
the use of these notes. This includes, but is not limited to, poor academic performance, penalties, or any other negative
consequences resulting from the application or misuse of the information provided.

, For additional support +27 81 278 3372

Project Structure Overview

You’ll need two separate folders/projects:

COS3711_Assignment2/

├── store_app/ <- Project 1: Store application
│ ├── CMakeLists.txt
│ ├── main.cpp
│ ├── MainWindow.h/.cpp
│ ├── Customer.h/.cpp
│ ├── Item.h/.cpp
│ ├── Transaction.h/.cpp
│ └── ...

├── udp_receiver/ <- Project 2: UDP listener app
│ ├── CMakeLists.txt
│ ├── main.cpp
│ ├── MainWindow.h/.cpp
│ └── ...



1. Starter Code – store_app
✅CMakeLists.txt
cmake
CopyEdit
cmake_minimum_required(VERSION 3.5)

project(store_app)

set(CMAKE_CXX_STANDARD 17)

find_package(Qt5 COMPONENTS Core Widgets Network REQUIRED)

add_executable(store_app
main.cpp
MainWindow.cpp MainWindow.h
Customer.cpp Customer.h
Item.cpp Item.h
Transaction.cpp Transaction.h
)

target_link_libraries(store_app Qt5::Core Qt5::Widgets Qt5::Network)



✅main.cpp
cpp
CopyEdit
#include <QApplication>
#include "MainWindow.h"

, For additional support +27 81 278 3372


int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow w;
w.show();
return app.exec();
}



✅MainWindow.h
cpp
CopyEdit
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTreeView>
#include <QStandardItemModel>
#include <QUdpSocket>
#include <QPushButton>

class MainWindow : public QMainWindow {
Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();

private slots:
void onBroadcastClicked();

private:
QStandardItemModel *transactionModel;
QPushButton *broadcastButton;
void setupUI();
void populateDummyData();
};

#endif // MAINWINDOW_H



✅MainWindow.cpp
cpp
CopyEdit
#include "MainWindow.h"
#include <QVBoxLayout>
#include <QTreeView>
#include <QXmlStreamWriter>
#include <QByteArray>
#include <QThread>
#include <QUdpSocket>
#include <QPushButton>

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent),
transactionModel(new QStandardItemModel(this))
{

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.
Edge
View profile
Follow You need to be logged in order to follow users or courses
Sold
9673
Member since
2 year
Number of followers
4252
Documents
2643
Last sold
1 day ago

4,2

1173 reviews

5
660
4
236
3
177
2
27
1
73

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