ساخت برنامه مدیریت مخاطبین با پایتون: پروژه‌ای خلاقانه و کاربردی

ساخت برنامه مدیریت مخاطبین با پایتون: پروژه‌ای خلاقانه و کاربردی

در این مقاله، به آموزش گام به گام ساخت یک برنامه مدیریت مخاطبین ساده اما کاربردی با استفاده از زبان برنامه‌نویسی پایتون می‌پردازیم. این پروژه، یک تمرین عالی برای تقویت مهارت‌های برنامه‌نویسی، کار با فایل‌ها، و طراحی رابط کاربری متنی (CLI) است. این پروژه در دسته ‘پروژه‌های خلاقانه و کاربردی’ قرار می‌گیرد، زیرا نتیجه نهایی یک ابزار واقعی است که می‌توانید از آن برای سازماندهی اطلاعات تماس خود استفاده کنید.

پیش‌نیازها

برای شروع این پروژه، به موارد زیر نیاز دارید:

  • نصب پایتون: اطمینان حاصل کنید که پایتون بر روی سیستم شما نصب شده است.
  • محیط توسعه: می‌توانید از یک ویرایشگر متن ساده یا یک IDE (مانند VS Code، PyCharm) برای نوشتن کد استفاده کنید.
  • آشنایی با مفاهیم پایه پایتون: متغیرها، انواع داده، حلقه‌ها، شرط‌ها، توابع، و لیست‌ها.

طراحی برنامه

برنامه مدیریت مخاطبین ما باید قابلیت‌های زیر را داشته باشد:

  • اضافه کردن مخاطب جدید: امکان وارد کردن نام، شماره تلفن، و ایمیل مخاطب.
  • نمایش لیست مخاطبین: نمایش تمام مخاطبین ذخیره شده.
  • جستجوی مخاطب: امکان جستجو بر اساس نام.
  • حذف مخاطب: امکان حذف مخاطب بر اساس نام.
  • ذخیره و بازیابی اطلاعات: ذخیره اطلاعات مخاطبین در یک فایل و بازیابی آن‌ها در هنگام اجرای برنامه.

پیاده‌سازی برنامه

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

class Contact:
    def __init__(self, name, phone, email):
        self.name = name
        self.phone = phone
        self.email = email

    def __str__(self):
        return f"نام: {self.name}, تلفن: {self.phone}, ایمیل: {self.email}"

سپس، توابعی برای انجام عملیات مختلف تعریف می‌کنیم.

تابع اضافه کردن مخاطب

def add_contact(contacts):
    name = input("نام را وارد کنید: ")
    phone = input("شماره تلفن را وارد کنید: ")
    email = input("ایمیل را وارد کنید: ")
    contact = Contact(name, phone, email)
    contacts.append(contact)
    print("مخاطب جدید اضافه شد.")

تابع نمایش لیست مخاطبین

def display_contacts(contacts):
    if not contacts:
        print("هیچ مخاطبی وجود ندارد.")
        return
    print("لیست مخاطبین:")
    for contact in contacts:
        print(contact)

تابع جستجوی مخاطب

def search_contact(contacts):
    search_term = input("نام مورد نظر برای جستجو را وارد کنید: ")
    found_contacts = []
    for contact in contacts:
        if search_term.lower() in contact.name.lower():
            found_contacts.append(contact)

    if not found_contacts:
        print("مخاطبی با این نام یافت نشد.")
        return

    print("مخاطبین یافت شده:")
    for contact in found_contacts:
        print(contact)

تابع حذف مخاطب

def delete_contact(contacts):
    name = input("نام مخاطبی که می‌خواهید حذف کنید را وارد کنید: ")
    for i, contact in enumerate(contacts):
        if contact.name.lower() == name.lower():
            del contacts[i]
            print("مخاطب حذف شد.")
            return
    print("مخاطبی با این نام یافت نشد.")

توابع ذخیره و بازیابی اطلاعات

def save_contacts(contacts, filename="contacts.txt"):
    with open(filename, "w", encoding="utf-8") as f:
        for contact in contacts:
            f.write(f"{contact.name},{contact.phone},{contact.email}n")

def load_contacts(filename="contacts.txt"):
    contacts = []
    try:
        with open(filename, "r", encoding="utf-8") as f:
            for line in f:
                name, phone, email = line.strip().split(",")
                contact = Contact(name, phone, email)
                contacts.append(contact)
    except FileNotFoundError:
        print("فایل مخاطبین یافت نشد. یک فایل جدید ایجاد می‌شود.")
    return contacts

حلقه اصلی برنامه

def main():
    contacts = load_contacts()

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

        choice = input("انتخاب کنید: ")

        if choice == "1":
            add_contact(contacts)
        elif choice == "2":
            display_contacts(contacts)
        elif choice == "3":
            search_contact(contacts)
        elif choice == "4":
            delete_contact(contacts)
        elif choice == "5":
            save_contacts(contacts)
            print("برنامه خاتمه یافت.")
            break
        else:
            print("انتخاب نامعتبر. دوباره تلاش کنید.")

if __name__ == "__main__":
    main()

توضیحات تکمیلی

در این برنامه، از کلاس Contact برای تعریف ساختار داده‌ای مخاطبین استفاده شده است. توابع مختلف، عملیات‌های مورد نیاز را بر روی لیست مخاطبین انجام می‌دهند. توابع save_contacts و load_contacts، اطلاعات مخاطبین را در یک فایل متنی ذخیره و بازیابی می‌کنند. استفاده از encoding="utf-8" در هنگام باز کردن فایل، از نمایش صحیح کاراکترهای فارسی اطمینان حاصل می‌کند.

بهبود برنامه

این برنامه را می‌توان به روش‌های مختلفی بهبود داد:

  • استفاده از یک رابط کاربری گرافیکی (GUI) به جای رابط کاربری متنی (CLI).
  • اضافه کردن قابلیت ویرایش اطلاعات مخاطبین.
  • پیاده‌سازی اعتبارسنجی ورودی (مثلاً بررسی فرمت ایمیل و شماره تلفن).
  • استفاده از یک پایگاه داده به جای فایل متنی برای ذخیره اطلاعات.
  • اضافه کردن قابلیت گروه‌بندی مخاطبین.

نتیجه‌گیری

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

بدون دیدگاه

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

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