RAJESTARY DIGITAL TECH • SECURITY • EDUCATION
دانش • فناوری • امنیت

دنیای تکنولوژی
از یادگیری شروع می‌شود

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

LEARN BUILD SECURE CREATE

پروژه نهایی: مدیریت مخاطبین

پروژه نهایی: مدیریت مخاطبین

🏆 پروژه نهایی: مدیریت مخاطبین

🎯 هدف این پروژه: ساخت یک برنامه کامل مدیریت مخاطبین با استفاده از تمام مباحث دوره

سلام دوست عزیز! 👋

به پروژه نهایی دوره خوش آمدی! 🎉 توی این پروژه، همه چیزهایی که توی ۷ درس گذشته یاد گرفتی رو کنار هم می‌ذاریم و یه برنامه کاربردی کامل می‌سازیم.

توی این پروژه، از این مباحث استفاده می‌کنیم:

  • متغیرها و انواع داده برای ذخیره اطلاعات مخاطبین
  • لیست‌ها برای نگهداری چندین مخاطب
  • شرط‌ها (if-elif-else) برای تصمیم‌گیری
  • حلقه‌ها (for و while) برای پیمایش و تکرار
  • توابع برای سازماندهی کد
  • ورودی و خروجی برای ارتباط با کاربر

📋 بخش ۱: توضیح پروژه

برنامه‌ای می‌نویسیم که به کاربر اجازه بده:

  1. مخاطب جدید اضافه کنه (نام، شماره تلفن، ایمیل)
  2. لیست همه مخاطبین رو ببینه
  3. مخاطب رو جستجو کنه (با نام)
  4. مخاطب رو ویرایش کنه
  5. مخاطب رو حذف کنه
  6. از برنامه خارج بشه

این برنامه شبیه یه دفترچه تلفن ساده هست که توی زندگی روزمره می‌تونیم ازش استفاده کنیم.


🔧 بخش ۲: کد پروژه

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



🐍
مدیریت مخاطبین

PYTHON
v3.12
🔒 RAW




# ============================================
# پروژه: مدیریت مخاطبین
# ============================================

# لیست مخاطبین (هر مخاطب یک دیکشنری است)
contacts = []

# ============================================
# توابع کمکی
# ============================================

def show_menu():
    """نمایش منوی اصلی"""
    print("\n" + "=" * 50)
    print("📇 مدیریت مخاطبین")
    print("=" * 50)
    print("1. نمایش همه مخاطبین")
    print("2. افزودن مخاطب جدید")
    print("3. جستجوی مخاطب")
    print("4. ویرایش مخاطب")
    print("5. حذف مخاطب")
    print("6. خروج")
    print("=" * 50)

def display_contact(contact, index = None):
    """نمایش یک مخاطب"""
    if index is not None:
        print(f"\n📌 مخاطب شماره {index + 1}:")
    print(f"   👤 نام: {contact["name"]}")
    print(f"   📞 تلفن: {contact["phone"]}")
    print(f"   📧 ایمیل: {contact["email"]}")

def find_contact_by_name(name):
    """پیدا کردن مخاطب با نام"""
    results = []
    for contact in contacts:
        if name.lower() in contact["name"].lower():
            results.append(contact)
    return results

# ============================================
# توابع اصلی
# ============================================

def show_all_contacts():
    """نمایش همه مخاطبین"""
    if not contacts:
        print("\n📭 لیست مخاطبین خالی است!")
        return

    print("\n📋 لیست مخاطبین:")
    print("-" * 40)
    for i, contact in enumerate(contacts):
        display_contact(contact, i)
    print("-" * 40)
    print(f"📊 مجموع مخاطبین: {len(contacts)} نفر")

def add_contact():
    """افزودن مخاطب جدید"""
    print("\n➕ افزودن مخاطب جدید")
    print("-" * 30)

    name = input("نام و نام خانوادگی: ").strip()
    if not name:
        print("❌ نام نمی‌تواند خالی باشد!")
        return

    phone = input("شماره تلفن: ").strip()
    if not phone:
        print("❌ شماره تلفن نمی‌تواند خالی باشد!")
        return

    email = input("ایمیل: ").strip()

    # ایجاد مخاطب جدید
    new_contact = {
        "name": name,
        "phone": phone,
        "email": email if email else "-"
    }

    contacts.append(new_contact)
    print(f"✅ مخاطب '{name}' با موفقیت افزوده شد!")

def search_contact():
    """جستجوی مخاطب با نام"""
    if not contacts:
        print("\n📭 لیست مخاطبین خالی است!")
        return

    name = input("\n🔍 نام مورد نظر برای جستجو: ").strip()

    if not name:
        print("❌ لطفاً نام را وارد کنید!")
        return

    results = find_contact_by_name(name)

    if not results:
        print(f"❌ هیچ مخاطبی با نام '{name}' پیدا نشد.")
        return

    print(f"\n🔍 نتایج جستجو برای '{name}' (" + str(len(results)) + " مورد):")
    print("-" * 40)
    for contact in results:
        display_contact(contact)
        print()

def edit_contact():
    """ویرایش مخاطب"""
    if not contacts:
        print("\n📭 لیست مخاطبین خالی است!")
        return

    show_all_contacts()

    try:
        index = int(input("\n🔢 شماره مخاطب مورد نظر برای ویرایش: ")) - 1
    except ValueError:
        print("❌ لطفاً یک عدد معتبر وارد کنید!")
        return

    if index < 0 or index >= len(contacts):
        print("❌ شماره مخاطب معتبر نیست!")
        return

    contact = contacts[index]
    print("\n📝 اطلاعات فعلی:")
    display_contact(contact)

    print("\n📝 اطلاعات جدید را وارد کنید (برای عدم تغییر، Enter بزنید):")
    new_name = input("نام جدید: ").strip()
    new_phone = input("تلفن جدید: ").strip()
    new_email = input("ایمیل جدید: ").strip()

    if new_name:
        contact["name"] = new_name
    if new_phone:
        contact["phone"] = new_phone
    if new_email:
        contact["email"] = new_email

    print("✅ مخاطب با موفقیت ویرایش شد!")

def delete_contact():
    """حذف مخاطب"""
    if not contacts:
        print("\n📭 لیست مخاطبین خالی است!")
        return

    show_all_contacts()

    try:
        index = int(input("\n🔢 شماره مخاطب مورد نظر برای حذف: ")) - 1
    except ValueError:
        print("❌ لطفاً یک عدد معتبر وارد کنید!")
        return

    if index < 0 or index >= len(contacts):
        print("❌ شماره مخاطب معتبر نیست!")
        return

    contact = contacts[index]
    display_contact(contact)

    confirm = input("\n❓ آیا از حذف این مخاطب مطمئن هستید؟ (y/n): ")
    if confirm.lower() == "y":
        deleted = contacts.pop(index)
        print(f"✅ مخاطب '{deleted["name"]}' با موفقیت حذف شد!")
    else:
        print("❌ عملیات حذف لغو شد.")

# ============================================
# برنامه اصلی
# ============================================

def main():
    """برنامه اصلی"""
    print("\n👋 به برنامه مدیریت مخاطبین خوش آمدید!")

    while True:
        show_menu()
        choice = input("\n🎯 انتخاب خود را وارد کنید (1-6): ")

        if choice == "1":
            show_all_contacts()

        elif choice == "2":
            add_contact()

        elif choice == "3":
            search_contact()

        elif choice == "4":
            edit_contact()

        elif choice == "5":
            delete_contact()

        elif choice == "6":
            print("\n🙏 از اینکه از برنامه مدیریت مخاطبین استفاده کردید، متشکریم!")
            print("✨ به امید دیدار دوباره!")
            break

        else:
            print("❌ انتخاب نامعتبر! لطفاً یک عدد بین 1 تا 6 وارد کنید.")

# اجرای برنامه
if __name__ == "__main__":
    main()

📖 بخش ۳: توضیح کد پروژه

بیا با هم بررسی کنیم که توی این پروژه از چه مباحثی استفاده کردیم:

۱. لیست مخاطبین

برای ذخیره مخاطبین از یه لیست استفاده کردیم. هر مخاطب به‌صورت یه دیکشنری با سه کلید name، phone و email ذخیره می‌شه.

۲. توابع

همه عملیات‌ها رو توی توابع جداگانه قرار دادیم:

  • show_menu() – نمایش منو
  • display_contact() – نمایش یک مخاطب
  • find_contact_by_name() – جستجو با نام
  • show_all_contacts() – نمایش همه
  • add_contact() – افزودن مخاطب
  • search_contact() – جستجو
  • edit_contact() – ویرایش
  • delete_contact() – حذف

۳. شرط‌ها و حلقه‌ها

از if-elif-else برای تصمیم‌گیری بر اساس انتخاب کاربر و از while True برای اجرای مداوم برنامه تا زمان خروج استفاده کردیم.

۴. ورودی و خروجی

با input() از کاربر اطلاعات می‌گیریم و با print() نتایج رو نمایش می‌دیم.


🎯 بخش ۴: تمرین برای شما

📝 تمرین: بهبود پروژه

قابلیت‌های زیر رو به پروژه اضافه کنید:

  • 📁 ذخیره مخاطبین در فایل: مخاطبین رو توی یه فایل ذخیره کن تا بعد از بستن برنامه از بین نرن.
  • 🔢 شماره‌گذاری خودکار: به هر مخاطب یه شناسه یکتا (ID) بده.
  • 📱 اعتبارسنجی شماره تلفن: بررسی کن که شماره تلفن حداقل ۱۱ رقم باشه.
  • 📧 اعتبارسنجی ایمیل: بررسی کن که ایمیل شامل @ باشه.

🧩 جمع‌بندی دوره

تبریک می‌گم! 🎉 تو یک دوره کامل رو با موفقیت به پایان رسوندی. بیا با هم مرور کنیم که چی یاد گرفتی:

📚 خلاصه درس‌های دوره

درس عنوان مباحث اصلی
۱ اولین قدم‌ها نصب پایتون، Hello World
۲ متغیرها متغیرها، انواع داده، input()
۳ محاسبات ریاضی عملگرهای ریاضی، مقایسه‌ای، منطقی
۴ شرط‌ها if, elif, else
۵ حلقه‌ها for, while, break, continue
۶ لیست‌ها لیست‌ها، append, remove
۷ توابع def, return, پارامترها
🎯 مسیر ادامه یادگیری

توی این دوره، پایه‌های پایتون رو یاد گرفتی. حالا می‌تونی به سراغ مباحث پیشرفته‌تر بری:

  • 📚 برنامه‌نویسی شی‌گرا (OOP) – کلاس‌ها و اشیاء
  • 📊 تحلیل داده – با کتابخانه‌های pandas و numpy
  • 🌐 توسعه وب – با جنگو یا فلاسک
  • 🤖 هوش مصنوعی – با کتابخانه‌های یادگیری ماشین

🔗 لینک‌های مرتبط

👤
نویسنده
📅
تاریخ انتشار 19 مرداد 1405
🔄
آخرین بروزرسانی 19 مرداد 1405

نظر خود را بنویسید

با ثبت نظر، به بهبود محتوای ما کمک کنید

امتیاز شما به این مطلب (اختیاری)
برای امتیازدهی، روی ستاره‌ها کلیک کنید
نام شما در سایت نمایش داده می‌شود
ایمیل شما محفوظ می‌ماند
0 کاراکتر | حداقل ۱۰ کاراکتر
نظر سازنده و مفید بنویسید
ارسال دیدگاه: +۵ امتیاز
امتیازدهی: +۲ امتیاز
نشان شما: مبتدی
لطفاً از کلمات محترمانه استفاده کنید. دیدگاه‌های توهین‌آمیز حذف می‌شوند.
⚠️

هشدار مهم!

برای اتصال به درگاه پرداخت و انجام تراکنش، لطفاً VPN یا فیلترشکن خود را خاموش کنید.

⏳ ادامه در
5
ثانیه