پروژه مدیریت کتابخانه با پایتون — درس پنجاه‌و‌ششم

Radio Ahmad Zahir
پروژه مدیریت کتابخانه با پایتون

پروژه مدیریت کتابخانه یک پروژه کاربردی است که می‌تواند به ما کمک کند تا اطلاعات کتاب‌های یک کتابخانه را سازماندهی و مدیریت کنیم. در این پروژه، ما قصد داریم یک برنامه پایتون بنویسیم که بتواند اطلاعات کتاب‌ها را ذخیره، ویرایش و حذف کند.

گام اول: نصب پایتون و محیط برنامه‌نویسی

قبل از شروع پروژه، باید مطمئن شوید که پایتون و یک محیط برنامه‌نویسی مناسب روی کامپیوتر شما نصب است. اگر پایتون را نصب نکرده‌اید، می‌توانید از سایت رسمی پایتون به آدرس https://www.python.org/ آن را دانلود و نصب کنید. همچنین، می‌توانید از یک محیط برنامه‌نویسی مانند PyCharm یا Visual Studio Code استفاده کنید.

گام دوم: طراحی پایگاه داده

برای ذخیره اطلاعات کتاب‌ها، به یک پایگاه داده نیاز داریم. ما می‌توانیم از یک فایل متنی ساده به عنوان پایگاه داده استفاده کنیم. در این فایل، هر خط می‌تواند شامل اطلاعاتی درباره یک کتاب باشد.

  • نام کتاب
  • نویسنده
  • سال انتشار
  • وضعیت (موجود یا در حال تعمیر)
گام سوم: نوشتن کد پایتون

حالا که طراحی پایگاه داده را انجام داده‌ایم، می‌توانیم کد پایتون را بنویسیم. ابتدا، ما باید فایل پایگاه داده را ایجاد کنیم.


import os

# ایجاد فایل پایگاه داده اگر وجود ندارد
if not os.path.exists("کتابخانه.txt"):
 open("کتابخانه.txt", "w").close()
گام چهارم: افزودن کتاب جدید

یک تابع بنویسید که اطلاعات کتاب جدید را از کاربر بگیرد و به فایل پایگاه داده اضافه کند.


def add_book():
 name = input("نام کتاب را بنویسید: ")
 author = input("نام نویسنده را بنویسید: ")
 year = input("سال انتشار را بنویسید: ")
 status = input("وضعیت کتاب (موجود یا در حال تعمیر) را بنویسید: ")

 with open("کتابخانه.txt", "a") as file:
  file.write(f"{name},{author},{year},{status}\n")

print("کتاب جدید با موفقیت افزوده شد.")
گام پنجم: نمایش کتاب‌های موجود

یک تابع بنویسید که تمام کتاب‌های موجود در پایگاه داده را نمایش دهد.


def display_books():
 try:
  with open("کتابخانه.txt", "r") as file:
   books = file.readlines()
   for book in books:
    if book.strip():  # چک کردن برای خطوط خالی
     book_info = book.strip().split(",")
     print(f"نام کتاب: {book_info[0]}, نویسنده: {book_info[1]}, سال انتشار: {book_info[2]}, وضعیت: {book_info[3]}")
 except FileNotFoundError:
  print("فایل پایگاه داده یافت نشد.")

display_books()
گام ششم: جستجوی کتاب

یک تابع بنویسید که به کاربر اجازه دهد بر اساس نام یا نویسنده کتاب جستجو کند.


def search_book():
 query = input("کلمه جستجو را بنویسید: ").lower()
 try:
  with open("کتابخانه.txt", "r") as file:
   books = file.readlines()
   found = False
   for book in books:
    if book.strip():  # چک کردن برای خطوط خالی
     book_info = book.strip().split(",")
     if query in book_info[0].lower() or query in book_info[1].lower():
      print(f"نام کتاب: {book_info[0]}, نویسنده: {book_info[1]}, سال انتشار: {book_info[2]}, وضعیت: {book_info[3]}")
      found = True
   if not found:
    print("کتابی یافت نشد.")
 except FileNotFoundError:
  print("فایل پایگاه داده یافت نشد.")

search_book()
گام هفتم: ویرایش کتاب

یک تابع بنویسید که به کاربر اجازه دهد اطلاعات یک کتاب را ویرایش کند.


def edit_book():
 name = input("نام کتاب را برای ویرایش بنویسید: ")
 try:
  with open("کتابخانه.txt", "r") as file:
   books = file.readlines()

  book_found = False
  for i, book in enumerate(books):
   if book.strip():  # چک کردن برای خطوط خالی
    book_info = book.strip().split(",")
    if book_info[0].lower() == name.lower():
     book_info[0] = input("نام جدید کتاب: ") or book_info[0]
     book_info[1] = input("نویسنده جدید: ") or book_info[1]
     book_info[2] = input("سال انتشار جدید: ") or book_info[2]
     book_info[3] = input("وضعیت جدید: ") or book_info[3]
     books[i] = ",".join(book_info) + "\n"
     book_found = True
     break

  if book_found:
   with open("کتابخانه.txt", "w") as file:
    file.writelines(books)
   print("کتاب با موفقیت ویرایش شد.")
  else:
   print("کتاب یافت نشد.")

 except FileNotFoundError:
  print("فایل پایگاه داده یافت نشد.")

edit_book()
گام هشتم: حذف کتاب

یک تابع بنویسید که به کاربر اجازه دهد یک کتاب را حذف کند.


def delete_book():
 name = input("نام کتاب را برای حذف بنویسید: ")
 try:
  with open("کتابخانه.txt", "r") as file:
   books = file.readlines()

  book_found = False
  new_books = []
  for book in books:
   if book.strip():  # چک کردن برای خطوط خالی
    book_info = book.strip().split(",")
    if book_info[0].lower() != name.lower():
     new_books.append(book)
    else:
     book_found = True

  if book_found:
   with open("کتابخانه.txt", "w") as file:
    file.writelines(new_books)
   print("کتاب با موفقیت حذف شد.")
  else:
   print("کتاب یافت نشد.")

 except FileNotFoundError:
  print("فایل پایگاه داده یافت نشد.")

delete_book()

منوی برنامه

حالا که تمام توابع را نوشتیم، می‌توانیم یک منو برای برنامه ایجاد کنیم تا کاربر بتواند به راحتی بین گزینه‌ها جابه‌جا شود.


while True:
 print("\n مدیریت کتابخانه")
 print("1. افزودن کتاب جدید")
 print("2. نمایش کتاب‌ها")
 print("3. جستجوی کتاب")
 print("4. ویرایش کتاب")
 print("5. حذف کتاب")
 print("6. خروج")

 choice = input("گزینه را انتخاب کنید: ")

 if choice == "1":
  add_book()
 elif choice == "2":
  display_books()
 elif choice == "3":
  search_book()
 elif choice == "4":
  edit_book()
 elif choice == "5":
  delete_book()
 elif choice == "6":
  print("خروج از برنامه.")
  break
 else:
  print("گزینه نامعتبر است. لطفا دوباره تلاش کنید.")

نکته‌ها و پیشنهادها
  • همیشه از نسخه پشتیبان از فایل پایگاه داده خود استفاده کنید.
  • می‌توانید پروژه را با افزودن قابلیت‌های بیشتر مانند دسته‌بندی کتاب‌ها یا مدیریت کاربران، گسترش دهید.
  • برای پروژه‌های بزرگتر، استفاده از پایگاه داده‌های حرفه‌ای مانند MySQL یا SQLite پیشنهاد می‌شود.

همیشه یاد بگیرید، همیشه رشد کنید.


تمرین‌ها
  • سعی کنید قابلیت دسته‌بندی کتاب‌ها بر اساس موضوع را به پروژه اضافه کنید.
  • قابلیت قرض گرفتن و پس دادن کتاب را اضافه کنید.
  • یک رابط کاربری گرافیکی (GUI) برای پروژه طراحی کنید.

برنامه‌نویسی فقط نوشتن کد نیست، بلکه حل مشکلات به روشی نوین است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Back To Top
PHP Code Snippets Powered By : XYZScripts.com
Verified by MonsterInsights