Question: Question One ( 4 5 marks ) - c# code Case Study 1 : Library Management System with Advanced Features Background: Richfield library is looking
Question One marksc# code
Case Study : Library Management System with Advanced Features
Background: Richfield library is looking to modernize its operations by developing a
comprehensive Library Management System LMS The system needs to manage the
borrowing and returning of books, track overdue books, generate various reports for library
administrators, and utilize advanced features such as threading, file handling, and delegates
for efficient operations.
Requirements:
The system should support multiple users with different roles: Librarian, Member, and
Admin.
Members can borrow and return books. Each book has attributes like title, author,
ISBN, and publication year.
Librarians can add and remove books from the system.
Admins can generate reports on the number of books borrowed, overdue books, and
the most popular books.
The system should send notifications to members about overdue books.
Implement the use of threading to handle concurrent operations, file handling for data
persistence, and delegates for eventdriven programming.
Tasks:
Design and implement the classes for the LMS including User, Member, Librarian,
Admin, Book, and Library. Utilize inheritance where appropriate.
Implement threading to handle multiple members borrowing and returning books
concurrently.
Use file handling to save and retrieve book and user data to and from a file.
Implement delegates to notify members about overdue books and to generate
reports.
Questions:
Class Design, Inheritance, and File Handling:
o Implement the class hierarchy for the LMS Ensure that the User class is
abstract and that Member, Librarian, and Admin classes inherit from it Each
class should have appropriate properties and methods.
o Write a method in the Library class that allows a Librarian to add a new Book
to the system and save the book data to a file. Demonstrate this functionality
with a sample implementation.
Threading and Delegates:
o Implement threading in the Library class to handle multiple members
borrowing and returning books simultaneously. Ensure thread safety and
proper synchronization.
o Create a delegate and an event in the Library class to notify Members about
overdue books. Write a method to subscribe members to this event and
demonstrate its functionality.
o Implement a delegate in the Library class for generating different types of
reports based on the role of the user eg Admin can generate a
comprehensive report while Member can only view their borrowed books
Software Development Approach and Life Cycle:
o Explain the software development approach and life cycle model adopted for
the Library Management System.
o Describe the requirements gathering process and techniques used.
o Justify the choice of the development approach and its benefits for the project.
CODE MUST BE IN C# and able to run in visual studio
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
