Design and implement a Library Management System using Java.
- Each book should have:
- Title
- Author
- Availability Status (Available/Not Available)
- Book Type (Printed or E-Book)
- The library should support two types of users:
- Students (Can borrow up to 2 books at a time).
- Teachers (Can borrow up to 3 books at a time).
- Users should be able to:
- Borrow books (if available).
- Return books (with late fee calculation).
- Borrowing and Returning Books
- Implement borrowing by checking the availability of the book.
- When a book is returned late, a fine is calculated dynamically.
- Students get a 50% discount on the late fee.
- Professors don’t pay a late fee.
- Borrowed books should become available once returned.
- Late Fee Calculation
- If a book is returned late, apply a fine based on the book type:
- Printed Books (5Tk. per day late).
- E-Books (No late fee).
- The fine should be reduced or waived based on the user type:
- Students (50% discount on the late fee).
- Teachers (No late fee at all).
- Book Search Feature
- Users should be able to search for a book by title.
- If the book exists, display title, author, and availability status.
- If the book doesn’t exist, display "Book not found".