پایتون

روز ۳۴ آموزش پایتون: پروژه سیستم مدیریت کتابخانه با کلاس‌ها و فایل‌ها

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

تعریف کلاس کتاب

ابتدا یک کلاس پایه به نام Book تعریف می‌کنیم که شامل ویژگی‌هایی مانند عنوان، نویسنده، سال انتشار و وضعیت در دسترس بودن باشد. همچنین متدهایی برای نمایش اطلاعات کتاب و تغییر وضعیت آن تعریف می‌کنیم. استفاده از متدهای ویژه __init__ و __str__ باعث می‌شود مقداردهی اولیه و چاپ اطلاعات کتاب حرفه‌ای و خوانا باشد. این ساختار پایه، ستون فقرات سیستم مدیریت کتابخانه خواهد بود.

نمونه کد کلاس کتاب:

class Book:
    def __init__(self, title, author, year, available=True):
        self.title = title
        self.author = author
        self.year = year
        self.available = available

    def borrow(self):
        if self.available:
            self.available = False
            print(f"کتاب '{self.title}' امانت گرفته شد.")
        else:
            print(f"کتاب '{self.title}' در حال حاضر موجود نیست.")

    def return_book(self):
        self.available = True
        print(f"کتاب '{self.title}' بازگردانده شد.")

    def __str__(self):
        status = "موجود" if self.available else "امانت گرفته شده"
        return f"Book(title={self.title}, author={self.author}, year={self.year}, status={status})"

مدیریت کتاب‌ها با کلاس Library

برای مدیریت مجموعه‌ای از کتاب‌ها، یک کلاس به نام Library ایجاد می‌کنیم. این کلاس مسئول افزودن کتاب، حذف کتاب، جستجو و نمایش کتاب‌ها است. همچنین قابلیت ذخیره و بارگذاری داده‌ها از فایل را دارد تا اطلاعات بین اجرای برنامه حفظ شود. کار با فایل‌ها باعث می‌شود برنامه کاربردی و قابل استفاده برای سیستم واقعی باشد.

نمونه کد کلاس Library:

import json

class Library:
    def __init__(self, filename="library.json"):
        self.filename = filename
        self.books = []
        self.load_books()

    def add_book(self, book):
        self.books.append(book)
        self.save_books()
        print(f"کتاب '{book.title}' اضافه شد.")

    def remove_book(self, title):
        self.books = [book for book in self.books if book.title != title]
        self.save_books()
        print(f"کتاب '{title}' حذف شد.")

    def show_books(self):
        for book in self.books:
            print(book)

    def save_books(self):
        with open(self.filename, "w", encoding="utf-8") as f:
            json.dump([book.__dict__ for book in self.books], f, ensure_ascii=False, indent=4)

    def load_books(self):
        try:
            with open(self.filename, "r", encoding="utf-8") as f:
                books_data = json.load(f)
                self.books = [Book(**data) for data in books_data]
        except FileNotFoundError:
            self.books = []

استفاده عملی از سیستم مدیریت کتابخانه

اکنون می‌توانیم کتاب‌های جدید اضافه کنیم، کتاب‌ها را نمایش دهیم، امانت بدهیم یا بازگردانیم و تغییرات را در فایل ذخیره کنیم. این بخش تمرینی باعث می‌شود تمامی مفاهیم کلاس، شیء، متدهای ویژه، کار با فایل و JSON به شکل عملی تثبیت شود و مهارت کاربردی ما افزایش یابد.

نمونه کد استفاده از سیستم:

library = Library()

book1 = Book("ریاضی پایه", "علی", 1399)
book2 = Book("فیزیک پیشرفته", "زهرا", 1400)

library.add_book(book1)
library.add_book(book2)

library.show_books()

book1.borrow()
book1.return_book()

library.remove_book("ریاضی پایه")
library.show_books()

با اجرای این کد، مشاهده می‌کنیم که تمامی عملیات روی کتاب‌ها قابل انجام است و اطلاعات بین اجرای برنامه در فایل JSON ذخیره می‌شود. این تمرین باعث می‌شود برنامه واقعی و قابل استفاده برای مدیریت کتاب‌ها ساخته شود.

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

در این پروژه یاد گرفتیم چگونه یک سیستم متوسط با استفاده از کلاس‌ها بسازیم، اطلاعات را مدیریت و در فایل ذخیره کنیم. مفاهیمی مانند کلاس، شیء، متد، متدهای ویژه، کار با فایل و JSON به شکل عملی تمرین شد. همچنین با ایجاد کلاس Library و استفاده از متدهای مدیریت مجموعه، مهارت طراحی برنامه‌های قابل توسعه و حرفه‌ای را کسب کردیم. تمرین پیشنهادی این است که قابلیت‌هایی مانند جستجوی پیشرفته، دسته‌بندی کتاب‌ها و اضافه کردن کاربران به سیستم را نیز پیاده‌سازی کنید تا تسلط کامل بر طراحی سیستم‌های واقعی پیدا کنید.

نوشته های مشابه

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

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

4 × 4 =

دکمه بازگشت به بالا