0% found this document useful (0 votes)
25 views

Assignment 3 CPP

The document provides instructions for an assignment to improve a C++ student management program across 4 parts. Part 1 involves using data structures like struct, vector, stack or queue. Part 2 focuses on design patterns like singleton, factory or adapter. Part 3 is about modern C++ features such as smart pointers, range-based for loops, auto or decltype. Part 4 requires submitting a report with UML diagram and explanations of improvements.

Uploaded by

Minh Hoàng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Assignment 3 CPP

The document provides instructions for an assignment to improve a C++ student management program across 4 parts. Part 1 involves using data structures like struct, vector, stack or queue. Part 2 focuses on design patterns like singleton, factory or adapter. Part 3 is about modern C++ features such as smart pointers, range-based for loops, auto or decltype. Part 4 requires submitting a report with UML diagram and explanations of improvements.

Uploaded by

Minh Hoàng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

ASSIGNMENT 3 CPP

Prepared by Dr Han Duy Phan.

Submission instruction: Create a folder (A3_StudentName_StudentID) that contains 4


sub folders for each part. Each sub folder contains a solution for the corresponding
task. Compress the A3_StudentName_StudentID folder and submit
A3_StudentName_StudentID.zip to Moodle.

PART 1
Improve the simple C++ student management program from Assignment 2.
In this part, you need to utilize at least one of the C++ data structures below to improve
your program.
Struct:
1 Minute C++ Struct | Cat Can Code
https://youtu.be/b7zehj0qIDs
Vector:
1 Minute C++ Vector | Cat Can Code
https://youtu.be/_W0cZCLWk8U
Stack:
1 Minute C++ Stack | Cat Can Code
https://youtu.be/detOrVIbBOg
Queue:
1 Minute C++ Queue | Cat Can Code
https://youtu.be/4M1UeN5ro54
Set:
1 Minute C++ Set | Cat Can Code
https://youtu.be/dVVDQcGgzDY
Map:
1 Minute C++ Map | Cat Can Code
https://youtu.be/1U_9rQXnAxY

PART 2
Improve the simple C++ student management program from Part 1.
In this part, you need to utilize at least one of the following design patterns to improve
your program.
Singleton:
1 Minute C++ Design Pattern Singleton | Cat Can Code
https://youtu.be/_763HQ17wY8
Factory:
1 Minute C++ Design Pattern Factory | Cat Can Code
https://youtu.be/K38KM_pDhrc
Adapter:
1 Minute C++ Design Pattern Adapter | Cat Can Code
https://youtu.be/1H3rDXVu0dE

PART 3
Improve the simple C++ student management program from Part 2.
In this part, you need to utilize at least one of the following modern C++ features to
improve your program.
Smart Pointers:
1 Minute C++ Modern Smart Pointers | Cat Can Code
https://youtu.be/9VO_viG67QY
Range For Loop:
1 Minute C++ Modern Range For Loop | Cat Can Code
https://youtu.be/wRG2AWqwPl8
Auto:
1 Minute C++ Modern Auto | Cat Can Code
https://youtu.be/9vyt_VnVWYo
Decltype:
1 Minute C++ Modern Decltype | Cat Can Code
https://youtu.be/_qHF7WYubBo
Lambda Expression
1 Minute C++ Modern Lambda Expression | Cat Can Code
https://youtu.be/lgdbeqaYROo

PART 4
Produce a report (PDF format) that includes all the following contents:
● An UML diagram with all the classes and relationships and necessary details.
Use the notations shown in my UML essentials cheat sheet.
https://youtube.com/shorts/VXXx7j8XPfw
● Detailed explanations why your changes in Part 1 lead to good improvements.
● Detailed explanations why your changes in Part 2 lead to good improvements.
● Detailed explanations why your changes in Part 3 lead to good improvements.

You might also like