502IT Algorithms and Data Structures

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

Module Title: Algorithms and Data Structures

Module Code: 502IT

Submission Date: 22/June/2024

Introduction:

Programming knowledge is based on the programmer’s experience with various standard structures, generic designs, and templates, to address specific scenarios in real-life scenarios. Therefore, it is crucial to provide practical evidence of the application of concepts presented in this module.

The scenario should be based on the case study given below:

SG Online Library App (SOLA):

In SG, the library allows borrowing and returning of books, periodicals, and audio books. There are borrowers who can borrow up to 8 items. The borrowers would have an account with SOLA to track the items borrowed and fines if any. SOLA’s administrators should be able to perform functions related to books and borrowers. Hence, the system SOLA should allow the user (borrower or admin) to do the following:

For the Borrower:

1. Borrow up to 8 books, periodicals, or audio books if the user has no fine.

2. Return up to all the items borrowed.

3. Search for a particular item by title, category, language, year published, or author.

4. Upon searching, the details of the item can be displayed.

5. Search all items belonging to a particular author creator.

6. Check the due date of the borrowed items.

7. Pay a fine if the user owes a fine to the library.

For the Administrator

1. Search for a particular item by title, category, language, year published, author, or display all items in a paginated format.

2. Display the details of a selected item.

3. Add new items into the library or remove the items.4. Maintain a database for borrowers.

5. Locate all borrowers with unpaid fines.

6. List a list of items borrowed by each borrower.

Program Design

a) Use appropriate classes to implement the Book, Periodical, Magazine, and Audio Book. Be sure to indicate any relationship (eg. Inheritance, compositions)

b) Create a LibraryTree in the form of a Binary Search Tree to store objects the Library has for the users to search.

c) Use classes to model the Borrower and Library Administrators

d) Use a doubly linked list BorrowerList to store the Borrowers for searching, removing, creating or modifying.

e) Use another class BorrowedItems with a suitable data structure to store the borrowed items for tracking, the borrower account number, the item borrowed, and the date borrowed.

Basic Information about Classes and Objects

The Borrower object stores information about a borrower, such as the first name, last name, account number, and a list of rented items. The Borrower object would also have information about its username and password (you can assume the password is protected).

The Administrator object stores the following: username, password as well as first name and last name.

The Book object stores the following: The title of the book, category, language, a list of authors, isbn and year published.

The Periodical object stores the following: The title of the book, category, language, a list of authors and year published.

The AudioBook object stores the following: The title of the book, category, language, a list of authors, and isbn and type of audio format (eg. mp3, au) and year published.

Completion of this assignment will address the following learning outcomes:

1   Select and develop algorithms to solve a range of complex problems.

2   Apply object-oriented analysis and design techniques to develop software with multiple component parts.

3   Evaluate common algorithms and data structures.

4   Develop software that uses and builds upon common algorithms and data structures.

5   Apply object-oriented programming language features.

In this assignment, you are required to produce a workable prototype to demonstrate your skills in problem solving and object-oriented work based on the materials learned/used in class.

The professional portfolio of software includes:

A: The prototype will cover the following areas(20%);

i. Object-oriented analysis, design, and programming.

ii. Algorithms.

iii. Data structures.

B: The final report must include and not more than 2000 words in total (20%):

i. Introduction

ii. UML Class Diagram

iii. Selection of algorithm(s) and integration methodology(ies)

iv. Indicative Learning Summary Report which maps the intended module learning outcomes and topics under discussion. Learners are to exhibit how these topics was being applied to solve the case study and prototype development.

v. List of references

C: Demonstration of Prototype - Viva (10%)

For the assignment and You may refer to the examples found in the essential reading; “Data Structure and Algorithmic Thinking with Python: Data Structure and Algorithmic Puzzles.”.




发表评论

电子邮件地址不会被公开。 必填项已用*标注