Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

1 . Brief Task Description A small library needs a system to track the details of their available books and members. They provided you with

1. Brief Task Description
A small library needs a system to track the details of their available books and members. They provided you with the data source CSV file. The file contains details of all books that are available for members to borrow and return within three days. It is made available to you for implementation and testing, but the system should allow any file to be used - a different file will be used for your CW marking (do NOT hardcode the filename). You have been provided with the UML diagram in Figure 1 to design the software and must implement the classes as shown any deviation will be marked down. You must use the Git version control system with regular commits pushed to a repository on either Bitbucket or GitHub.
You should NOT use any third-party libraries or code as a part of your solution and all code must be written by you, e.g., not automatically generated by an A.I. or IDE. Do not use any non-standard code or libraries or system calls in your program.
2. Submission
The submission will be done via submitting a link to your Bitbucket or GitHub repository. The online repository MUST consist of all-required source code; a single MP4 video file of a screencast presentation and a single PDF file of the presentation slides. The deadline is 5pm on Friday, 5th January 2024.
The repository should include:
C++ source code files of your program.
C++ source code of Catch2 tests which test your code. a makefile to compile your program.
In the presentation you should show your slides while you describe each section. Full details of what should be included in the presentation are given below. The video should be a maximum of 6 minutes long. If the video is longer, only the first 6 minutes will be marked. The video must also include a short demonstration of your software where you demonstrate understanding of the implementation (note: just running the program will not demonstrate any knowledge of the implementation).
Notes:
Only the required files MUST be included in your repository, no other files (any other files will not be used when marking your work).
If code does not compile and run, it will severely limit your marks for the code.
Do not use any non-standard or OS specific libraries or system calls, which will prevent your
program from working correctly when being marked.
Do not make any further commits to the repository once you have made the submission
the date of commits will be monitored and anything committed after the deadline will be
ignored.
Requests to pre-assess summative assessment will be (politely) refused.
1
Figure 1: The UML class diagram for the library system.
2
3. Scenario
A small library has these types of books that are available to borrow for members only:
1. Science fiction
2. Satire
3. Drama
4. Action and Adventure
5. Romance
6. Mystery
7. Horror
8. Health
9. Guide
10. Diaries
11. Comics
12. Journals
13. Biographies
14. Fantasy
15. History
16. Science
17. Art
All books have an id, name, author, type, and page count.
The program will only be used by the librarian at the library (not by customers/members) and will not take payment details.
The system should include the following functionality:
Add a member the librarian should be able to create a new member and display the new members details directly following the creation of the member.
Issue a book to a member the librarian should be able to issue a book to an individual member with a valid due date from the date of issue (3 days).
Return a book the librarian should be able to return a book from an individual member.
Display all books borrowed by any individual member the librarian should be able to display
all books borrowed by an individual member.
Calculate a fine for any individual member for overdue book(s) upon the return of a book, if
the books due date has expired, a fine should be calculated based on a rate of 1 per day overdue.
Your program must have input validation to ensure it performs correctly and helpful error messages informing the user of any incorrect input. It should be intuitive, i.e., the user shouldnt need to read the source code or attend training to know how to use the system.
3
4. Detailed Description
It is recommended that you complete the tasks in the following order as the later sub-tasks will require the earlier ones.
4.1. Plan Software
Begin by planning which classes you need and how the software will work using the provided UML diagram.
You should include:
use case diagram(s)
we provided you with the class diagram(s)
activity diagram(s)
4.2. Create a Git Repository
Create a Git repository for your coursework on Bitbucket or GitHub. As you create new files, you should add them to the Git repository. Commit regularly with clear, useful commit messages. You will need to submit the URL for your Git repository, as file submissions are NOT accepted.
4.3. Implement Classes
Once you are happy with your design, you should implement the classe

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Oracle Database 19c DBA By Examples Installation And Administration

Authors: Ravinder Gupta

1st Edition

B09FC7TQJ6, 979-8469226970

More Books

Students also viewed these Databases questions