0% found this document useful (0 votes)
3 views3 pages

Library Management

The document outlines a Library Management System with functions to save, load, add, check out, delete, return, and view books. It utilizes a text file to store book information and provides a user interface for managing book records. Key functionalities include tracking book status and displaying available and checked-out books.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views3 pages

Library Management

The document outlines a Library Management System with functions to save, load, add, check out, delete, return, and view books. It utilizes a text file to store book information and provides a user interface for managing book records. Key functionalities include tracking book status and displaying available and checked-out books.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 3

def save_books(self):

"""Save books to the Books.txt file."""


with open(self.file_name, "w") as file:
for book_id, book_info in self.books.items():
file.write(f"{book_id},{book_info['Title']},
{book_info['Author']},{book_info['Status']}\n")

def load_books(self):
"""Load books from the Books.txt file."""
if os.path.exists(self.file_name):
with open(self.file_name, "r") as file:
for line in file:
book_id, title, author, status = line.strip().split(',')
self.books[book_id] = {'Title': title, 'Author': author,
'Status': status}

def add_book(self):
"""Add a new book to the library."""
book_id = self.book_id_entry.get()
title = self.book_title_entry.get()
author = self.book_author_entry.get()

if book_id in self.books:
return # Do nothing if the book ID already exists

self.books[book_id] = {'Title': title, 'Author': author, 'Status':


'Available'}

self.book_id_entry.delete(0, tk.END)
self.book_title_entry.delete(0, tk.END)
self.book_author_entry.delete(0, tk.END)

self.save_books() # Save books to file


self.view_books() # Update the display

def check_out_book(self):
"""Mark a book as 'Checked Out'."""
book_id = self.book_id_entry.get()

if book_id in self.books:
if self.books[book_id]['Status'] == 'Checked Out':
return # Do nothing if the book is already checked out

self.books[book_id]['Status'] = 'Checked Out'

self.book_id_entry.delete(0, tk.END)
self.save_books() # Save books to file
self.view_books() # Update the display

def delete_book(self):
"""Delete a book from the library."""
book_id = self.book_id_entry.get()

if book_id in self.books:
del self.books[book_id]

self.book_id_entry.delete(0, tk.END)
self.save_books() # Save books to file
self.view_books() # Update the display

def return_book(self):
"""Mark a book as 'Available'."""
book_id = self.book_id_entry.get()

if book_id in self.books:
if self.books[book_id]['Status'] == 'Checked Out':
self.books[book_id]['Status'] = 'Available'

self.book_id_entry.delete(0, tk.END)
self.save_books() # Save books to file
self.view_books() # Update the display

def view_books(self):
"""View all books (both available and checked-out)."""
self.books_display.config(state=tk.NORMAL)
self.books_display.delete(1.0, tk.END)

for book_id, book_info in self.books.items():


self.books_display.insert(tk.END, f"Book ID: {book_id}\n")
self.books_display.insert(tk.END, f"Title: {book_info['Title']}\n")
self.books_display.insert(tk.END, f"Author: {book_info['Author']}\
n")
self.books_display.insert(tk.END, f"Status: {book_info['Status']}\
n")
self.books_display.insert(tk.END, "\n")

self.books_display.config(state=tk.DISABLED)

def view_checked_out_books(self):
"""View only checked-out books."""
self.books_display.config(state=tk.NORMAL)
self.books_display.delete(1.0, tk.END)
for book_id, book_info in self.books.items():
if book_info['Status'] == 'Checked Out':
self.books_display.insert(tk.END, f"Book ID: {book_id}\n")
self.books_display.insert(tk.END, f"Title: {book_info['Title']}\
n")
self.books_display.insert(tk.END, f"Author:
{book_info['Author']}\n")
self.books_display.insert(tk.END, f"Status:
{book_info['Status']}\n")
self.books_display.insert(tk.END, "\n")

self.books_display.config(state=tk.DISABLED)

def view_all_books(self):
"""View all books in the library (available or checked-out)."""
self.books_display.config(state=tk.NORMAL)
self.books_display.delete(1.0, tk.END)

for book_id, book_info in self.books.items():


self.books_display.insert(tk.END, f"Book ID: {book_id}\n")
self.books_display.insert(tk.END, f"Title: {book_info['Title']}\n")
self.books_display.insert(tk.END, f"Author: {book_info['Author']}\
n")
self.books_display.insert(tk.END, f"Status: {book_info['Status']}\
n")
self.books_display.insert(tk.END, "\n")

self.books_display.config(state=tk.DISABLED)

# Main function to start the program


def main():
root = tk.Tk()
app = LibraryManagementSystem(root)
root.mainloop()

# Run the program


if __name__ == "__main__":
main()

You might also like