Question: Your next programming assignment involves designing and building a basic library management system to demonstrate your skills in object - oriented programming and working with

Your next programming assignment involves designing and building a basic library management system to demonstrate your skills in object-oriented programming and working with classes.
For this assignment, you will be creating a Book class and a Library class. The Book class will model important book attributes like title, author, price, publish date, etc. Make sure to include a constructor, getters & setters, and a method to neatly display a book's details.
The Library class will act as the main library system for storing and managing books. Model the library shelves virtually using a 2D array, then implement methods like addBook(), lendBook(), returnBook(), searchByTitle() and searchByAuthor() that allow you to add new books to the shelves, mark a book as lent out or returned, and search for books by attributes. Also include a printBooks() method to print all books in the library recursively, as well as findOldestBook() to get the oldest book based on publish date.
A Main driver class will tie together the whole management system by instantiating a Library, adding some Book objects, invoking lending and returning functionality, searching for books, and printing out full book listings. Demonstrate each piece working together as an integrated library system.
More details on the recursive printBooks() method
The key idea is that the library shelves are modeled as a 2D array, which is like a matrix of rows and columns (think of a spreadsheet).
The printBooks() method will print all books stored across all "shelves" in the library.
It can approach this recursively by:
1. Base case: If it is asked to print an empty shelf (row or column count ==0), it simply returns without printing anything.
2. Recursive case: Iterate across each "spot" on the current shelf (row/column) and check if a book object exists there.
2a. If yes, print the book details by calling book.display()2b. If not, do nothing and check the next spot
3. Recursive call: After finishing the current row, it makes a recursive call to print the NEXT shelf (next row in 2D array).
This way each shelf is processed recursively until all rows and columns are covered and
all books across the virtual library are neatly printed out.
The key is using the row/column structure of the 2D array along with recursion to traverse through and operate on each element systematically. note: Dont use array of list, Dont use built in functions and i need the awnser in java

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!