0% found this document useful (0 votes)
5 views5 pages

Library Management System Code

The document outlines a library management system implemented in Java, featuring classes for books, members, and loans. It includes functionalities for adding books, lending them to members, and calculating fines for overdue returns. The main class provides a user interface for interacting with the library system, allowing users to manage books and members.

Uploaded by

amanuelabere60
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views5 pages

Library Management System Code

The document outlines a library management system implemented in Java, featuring classes for books, members, and loans. It includes functionalities for adding books, lending them to members, and calculating fines for overdue returns. The main class provides a user interface for interacting with the library system, allowing users to manage books and members.

Uploaded by

amanuelabere60
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

// Book.

public class Book {


private String bookId;
private String title;
private String author;
private String publisher;
private int publicationYear;
private boolean available;

public Book(String bookId, String title, String author, String publisher, int
publicationYear) {
[Link] = bookId;
[Link] = title;
[Link] = author;
[Link] = publisher;
[Link] = publicationYear;
[Link] = true; // Initially available
}

public String getBookId() { return bookId; }


public String getTitle() { return title; }
public String getAuthor() { return author; }
public boolean isAvailable() { return available; }
public void setAvailable(boolean available) { [Link] = available; }

@Override
public String toString() {
return "Book ID: " + bookId + ", Title: " + title + ", Author: " + author +
", Available: " + available;
}
}

// [Link] (Abstract Class)


public abstract class Member {
protected String memberId;
protected String name;
protected String address;
protected String phoneNumber;
protected int borrowLimit;

public Member(String memberId, String name, String address, String phoneNumber,


int borrowLimit) {
[Link] = memberId;
[Link] = name;
[Link] = address;
[Link] = phoneNumber;
[Link] = borrowLimit;
}

public String getMemberId() { return memberId; }


public String getName() { return name; }
public String getAddress() { return address; }
public String getPhoneNumber() { return phoneNumber; }
public int getBorrowLimit() { return borrowLimit; }

public abstract double calculateFine(Date dueDate, Date returnDate);

@Override
public String toString() {
return "Member ID: " + memberId + ", Name: " + name + ", Address: " +
address + ", Phone: " + phoneNumber;
}
}

// [Link]
import [Link];

public class StudentMember extends Member {


private String studentId;
private String department;

public StudentMember(String memberId, String name, String address, String


phoneNumber, String studentId, String department) {
super(memberId, name, address, phoneNumber, 5); // Student borrow limit is
5
[Link] = studentId;
[Link] = department;
}

@Override
public double calculateFine(Date dueDate, Date returnDate) {
// Implement fine calculation logic for student members
long diff = [Link]() - [Link]();
long diffDays = diff / (24 * 60 * 60 * 1000);

if (diffDays > 0) {
return diffDays * 0.50; // 0.50 Birr per day overdue
} else {
return 0.0;
}
}

@Override
public String toString() {
return [Link]() + ", Student ID: " + studentId + ", Department: " +
department;
}
}

// [Link] (Key methods)


import [Link];
import [Link];

public class Library {


private String name;
private ArrayList<Book> books;
private ArrayList<Member> members;
private ArrayList<Loan> loans;

public Library(String name) {


[Link] = name;
[Link] = new ArrayList<>();
[Link] = new ArrayList<>();
[Link] = new ArrayList<>();
}

public void addBook(Book book) {


[Link](book);
}

public void lendBook(Book book, Member member, Date dueDate) {


if ([Link]() && [Link]() > 0) {
Loan loan = new Loan(book, member, new Date(), dueDate);
[Link](loan);
[Link](false);
[Link]--;

[Link]("Book lent successfully to " + [Link]());

} else {
[Link]("Book is not available or member has reached borrow
limit.");
}
}
}

// [Link]
import [Link];

public class Loan {


private Book book;
private Member member;
private Date borrowDate;
private Date dueDate;
private Date returnDate;

public Loan(Book book, Member member, Date borrowDate, Date dueDate) {


[Link] = book;
[Link] = member;
[Link] = borrowDate;
[Link] = dueDate;
[Link] = null; // Initially not returned
}

public Book getBook() { return book; }


public Member getMember() { return member; }
public Date getBorrowDate() { return borrowDate; }
public Date getDueDate() { return dueDate; }
public Date getReturnDate() { return returnDate; }
public void setReturnDate(Date returnDate) { [Link] = returnDate; }

public boolean isOverdue() {


if (returnDate == null) {
return new Date().after(dueDate); // Check if current date is after due
date
}
return false; // Already returned
}
}

// [Link] (Main Class - Partial Example)


import [Link];
import [Link];
import [Link];
import [Link];
public class LibrarySystem {
public static void main(String[] args) {
Library dtuLibrary = new Library("Debre Tabor University Library");
Scanner scanner = new Scanner([Link]);

// Example: Add some books and members (for testing)


Book book1 = new Book("ISBN-123", "The Lord of the Rings", "J.R.R.
Tolkien", "Allen & Unwin", 1954);
Book book2 = new Book("ISBN-456", "Pride and Prejudice", "Jane Austen", "T.
Egerton", 1813);
[Link](book1);
[Link](book2);

StudentMember student1 = new StudentMember("DTU-001", "Abebe Kebede",


"Debre Tabor", "0911111111", "STD-123", "Computer Science");
[Link](student1);

// Main menu loop


while (true) {
[Link]("\nDebre Tabor University Library System");
[Link]("1. Add Book");
[Link]("2. Lend Book");
[Link]("3. Return Book");
[Link]("4. List All Books");
[Link]("5. List All Members");
[Link]("6. Exit");

[Link]("Enter your choice: ");


int choice = [Link]();
[Link](); // Consume newline

switch (choice) {
case 1:
// Implement add book logic (prompt user for book details,
create a Book object, and call [Link]())
[Link]("Adding a book (implementation needed)");
break;
case 2: {
// Implement lend book logic
[Link]("Lending a book");

[Link]("Enter book ID to lend: ");


String bookId = [Link]();

[Link]("Enter member ID to lend to: ");


String memberId = [Link]();

[Link]("Enter due date (yyyy-MM-dd): ");


String dueDateString = [Link]();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-
dd");
Date dueDate = null;
try {
dueDate = [Link](dueDateString);
} catch (ParseException e) {
[Link]("Invalid date format. Please use yyyy-
MM-dd.");
break;
}
// Find the book and member
Book bookToLend = null;
for (Book book : [Link]) {
if ([Link]().equals(bookId)) {
bookToLend = book;
break;
}
}

Member memberToLendTo = null;


for (Member member : [Link]) {
if ([Link]().equals(memberId)) {
memberToLendTo = member;
break;
}
}

if (bookToLend != null && memberToLendTo != null) {


[Link](bookToLend, memberToLendTo, dueDate);
} else {
[Link]("Book or member not found.");
}
break;
}
case 3:
[Link]("Returning a book (implementation needed)");
break;
case 4:
[Link]();
break;
case 5:
[Link]();
break;
case 6:
[Link]("Exiting...");
[Link]();
return;
default:
[Link]("Invalid choice.");
}
}
}
}

You might also like