Project on Object-Oriented Programming (OOP) concepts_
Project on Object-Oriented Programming (OOP) concepts_
A Library Management System allows a librarian to manage books, users, and transactions
using OOP principles.
Project Structure
LibraryManagementSystem/
│── src/
│ ├── models/
│ │ ├── Item.java
│ │ ├── Book.java
│ │ ├── EBook.java
│ │ ├── User.java
│ │ ├── Student.java
│ │ ├── Librarian.java
│ │ ├── Transaction.java
│ ├── services/
│ │ ├── Library.java
│ │ ├── LibraryManagement.java
│ ├── Main.java
@Override
public void displayDetails() {
System.out.println("Book ID: " + itemId);
System.out.println("Title: " + title);
System.out.println("Author: " + author);
System.out.println("Pages: " + numPages);
System.out.println("Availability: " + (isAvailable ? "Available" : "Not Available"));
}
}
@Override
public void displayDetails() {
System.out.println("E-Book ID: " + itemId);
System.out.println("Title: " + title);
System.out.println("Author: " + author);
System.out.println("Download Link: " + downloadLink);
}
}
@Override
public void borrowItem() {
if (borrowedItems < maxBooksAllowed) {
super.borrowItem();
System.out.println(name + " borrowed an item.");
} else {
System.out.println(name + " has reached the limit of borrowed items.");
}
}
}
6️⃣Librarian Class
package models;
7️⃣Transaction Class
package models;
import java.util.Date;
import models.Book;
import models.User;
import java.util.ArrayList;
import java.util.List;
public Library() {
this.books = new ArrayList<>();
this.users = new ArrayList<>();
}
import models.*;
import services.Library;
library.addBook(book1);
library.addBook(book2);
System.out.println("\nLibrary Books:");
book1.displayDetails();
book2.displayDetails();
System.out.println("\nStudent Info:");
student.displayUserDetails();
System.out.println("\nBorrowing Book:");
student.borrowItem();
student.displayUserDetails();
}
}