پروژه مدیریت کتابخانه با پایتون
پروژه مدیریت کتابخانه یک پروژه کاربردی است که میتواند به ما کمک کند تا اطلاعات کتابهای یک کتابخانه را سازماندهی و مدیریت کنیم. در این پروژه، ما قصد داریم یک برنامه پایتون بنویسیم که بتواند اطلاعات کتابها را ذخیره، ویرایش و حذف کند.
گام اول: نصب پایتون و محیط برنامهنویسی
قبل از شروع پروژه، باید مطمئن شوید که پایتون و یک محیط برنامهنویسی مناسب روی کامپیوتر شما نصب است. اگر پایتون را نصب نکردهاید، میتوانید از سایت رسمی پایتون به آدرس 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) برای پروژه طراحی کنید.
برنامهنویسی فقط نوشتن کد نیست، بلکه حل مشکلات به روشی نوین است.