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

Programming 622 Assignments

Uploaded by

nkosiwandile680
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views

Programming 622 Assignments

Uploaded by

nkosiwandile680
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

FACULTY OF INFORMATION TECHNOLOGY

PROGRAMMING 622 ASSIGNMENT

Name & Surname: _ / ITS No:

Qualification: Semester: Module Name:

Date Submitted:

ASSESSMENT CRITERIA MARK EXAMINER MODERATOR


ALLOCATION MARKS MARKS

MARKS FOR CONTENT


QUESTION ONE 20
QUESTION TWO 30
QUESTION THREE 40
TOTAL 90
MARKS FOR TECHNICAL ASPECTS
CODE 10
Program text indentation
Use of constant, variable and structure names
Comments
TOTAL 10
TOTAL MARKS FOR ASSIGNMENT 100
Examiner’s Comments:

Moderator’s Comments:

Signature of Examiner: S. Jwara Signature of Moderator:


Assignment Instructions

1. All assignments must be typed, not handwritten.


2. Every assignment should include the cover page, table of contents and a reference list or
bibliography at the end of the document
3. A minimum of five current sources (references) should be used in all assignments and these
should be reflected in both in-text citations as well as the reference list or bibliography
4. Students must include both in-text citations and a comprehensive reference list or bibliography,
adhering to the Harvard Style for both. While specific marks have been allocated for technically
weak referencing in the table above, it's important to note that lecturers reserve the right to
further deduct more marks for failing to use in-text citations correctly or for not providing a
complete bibliography. Accurate and thorough referencing is considered an integral part of
academic integrity and scholarship at this level.

5. Assignments submitted without citations and accompanying reference lists will be penalized.
6. Students are not allowed to share assignments with fellow students. Any shared assignments will
attract stiff penalties.
7. The use of, and copying of content from websites such as chegg.com, studocu.com,
transtutors.com, sparknotes.com or any other assignment-assistance websites is strictly
prohibited. This also applies to Wiki sites, blogs and YouTube.
8. Any pictures and diagrams used in the Assignment should be properly labelled and referenced.
9. Correct formatting as indicated on the Cover Page should be followed (font-size 12, font-style
Calibri, line spacing of 1.0 and margins justified).
10. All Assignments must be saved in PDF using the correct naming-convention before uploading on
Moodle. E.g. StudentNumber_CourseCode_Assignment (402999999_WBT512A_Assignment).
11. For each question in the assignment, paste the screenshot of the output. Below
this screenshot, paste all the code for that question.
QUESTION 1 (20 MARKS)

Assume you are a Junior C++ Developer at Richfield, Richfield's library needs a modern, efficient
catalog system to manage its growing collection of academic resources.

 Design a Resource class that can represent various types of academic materials (books,
journals, digital resources). Use inheritance if appropriate.
 Implement a Catalog class using an appropriate STL container. This class should efficiently
manage the entire resource collection.
 In the Catalog class, create methods to:
o Add new resources to the system
o Remove outdated or damaged resources
o Search for resources using multiple criteria (title, author, ISBN, type)
o Generate a report of all resources, grouped by type
 Ensure your implementation demonstrates advanced OOP principles and effective use of
const correctness.

Bonus: Implement a simple command-line interface for librarians to interact with your system.

QUESTION 2 (30 MARKS)

Richfield needs a new course scheduling system. As an outsourced Junior C++ developer, you
have been tasked to develop an intelligent system to optimize class schedules, room allocations,
and student registrations.

2.1. Design and implement the following classes:


o Course: Include attributes for course code, name, required room type, maximum
capacity, enrolled students, and scheduled time slots.
o Student: Include student ID, major, list of enrolled courses, and academic year.
o Room: Include room number, type, capacity, available time slots, and any special
equipment.
 Implement a priority queue to manage course registration requests. The queue should
prioritize based on the student's academic year, core courses for their major, and request
timestamp.
 Develop a schedule optimization algorithm that:
o Processes registration requests from the priority queue
o Assigns courses to appropriate rooms based on type and capacity
o Resolves scheduling conflicts
o Balances class sizes
o Generates individual student schedules (20 Marks)

2.2. Write a brief technical report (maximum 1 page) explaining:


o The efficiency of your priority queue implementation
o How your algorithm balances fair course registration and optimal resource
utilization
o The space and time complexity of your solution (10 Marks)
QUESTION 3 (40 MARKS)

Richfield wants to improve its student club management system. As a Junior C++ developer, you
are tasked with creating "ClubHub", a program to manage club memberships and activities.

 Implement a simple graph data structure to represent connections between students in


clubs:
a. Nodes represent students
b. Edges represent shared club memberships
c. Use an adjacency list to store the graph.
 Create functions to:
a. Add a new student to the system
b. Create a new club
c. Add a student to a club (this should automatically create edges with other club
members)
d. Remove a student from a club.
 Implement two search algorithms:
a. A function to find all clubs a student is a member of
b. A function to find all students who are in a specific club.
 Create a simple sorting function to list students alphabetically by last name. Use ANY basic
sorting algorithm you're comfortable with (e.g., bubble sort, insertion sort).
 Implement a function to save the current state of the system (students, clubs,
memberships) to a text file, and another function to load this data from the file.

END OF ASSIGNMENT

You might also like