رفتن به محتوا
یادداشت‌های یک روزنامه‌نگار

برنامه مدیریت نمرات با کلاس در پایتون — درس چهلم

برای یک مطالعه آرام
برنامه مدیریت نمرات با کلاس در پایتون

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

چرا برنامه مدیریت نمرات؟

مدیریت نمرات دانش‌آموزان می‌تواند کار سختی باشد، خصوصاً وقتی تعداد دانش‌آموزان زیاد باشد. با داشتن یک برنامه مدیریت نمرات، می‌توانیم به راحتی نمرات را ثبت، ویرایش و مشاهده کنیم. این برنامه می‌تواند برای معلمان، مدیران مدارس و حتی دانش‌آموزان مفید باشد.


گام اول: تعریف کلاس

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


class Student:
    def __init__(self, name, lastname):
        self.name = name
        self.lastname = lastname
        self.scores = []

در کد بالا، `__init__` یک متد ویژه است که هنگام ایجاد یک شیء جدید از کلاس فراخوانی می‌شود. در این متد، ما ویژگی‌های `name`، `lastname` و `scores` را تعریف می‌کنیم. `scores` یک لیست خالی است که بعداً نمرات دانش‌آموز را در آن ذخیره خواهیم کرد.

گام دوم: افزودن نمرات

حالا باید روشی برای افزودن نمرات به لیست `scores` تعریف کنیم. می‌توانیم یک متد به نام `add_score` ایجاد کنیم.


class Student:
    def __init__(self, name, lastname):
        self.name = name
        self.lastname = lastname
        self.scores = []

    def add_score(self, score):
        self.scores.append(score)

متد `add_score` یک نمره را به لیست `scores` اضافه می‌کند.

گام سوم: محاسبه معدل

برای محاسبه معدل، می‌توانیم یک متد به نام `calculate_average` ایجاد کنیم. این متد، میانگین نمرات را محاسبه می‌کند.


class Student:
    def __init__(self, name, lastname):
        self.name = name
        self.lastname = lastname
        self.scores = []

    def add_score(self, score):
        self.scores.append(score)

    def calculate_average(self):
        if len(self.scores) == 0:
            return 0
        return sum(self.scores) / len(self.scores)

در کد بالا، اگر لیست `scores` خالی باشد، معدل ۰ برمی‌گرداند. در غیر این صورت، جمع نمرات را بر تعداد نمرات تقسیم می‌کند.

گام چهارم: نمایش اطلاعات

می‌توانیم یک متد به نام `display_info` ایجاد کنیم تا اطلاعات دانش‌آموز، شامل نام، نام خانوادگی و نمرات را نمایش دهد.


class Student:
    def __init__(self, name, lastname):
        self.name = name
        self.lastname = lastname
        self.scores = []

    def add_score(self, score):
        self.scores.append(score)

    def calculate_average(self):
        if len(self.scores) == 0:
            return 0
        return sum(self.scores) / len(self.scores)

    def display_info(self):
        print(f"نام: {self.name}")
        print(f"نام خانوادگی: {self.lastname}")
        print(f"نمرات: {self.scores}")
        print(f"معدل: {self.calculate_average()}")
گام پنجم: استفاده از کلاس

حالا که کلاس `Student` را تعریف کردیم، می‌توانیم از آن استفاده کنیم. فرض کنیم می‌خواهیم یک دانش‌آموز به نام “احمد” با نام خانوادگی “حسینی” ایجاد کنیم.


student1 = Student("احمد", "حسینی")
student1.add_score(90)
student1.add_score(85)
student1.display_info()

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


گام ششم: مدیریت چندین دانش‌آموز

برای مدیریت چندین دانش‌آموز، می‌توانیم یک لیست از اشیاء `Student` ایجاد کنیم.


students = []

def add_student():
    name = input("نام دانش‌آموز را وارد کنید: ")
    lastname = input("نام خانوادگی دانش‌آموز را وارد کنید: ")
    student = Student(name, lastname)
    students.append(student)

def display_students():
    for i, student in enumerate(students):
        print(f"دانش‌آموز شماره {i+1}:")
        student.display_info()
        print("------------------------")

while True:
    print("1. افزودن دانش‌آموز")
    print("2. نمایش دانش‌آموزان")
    print("3. خروج")
    choice = input("انتخاب کنید: ")
    
    if choice == "1":
        add_student()
    elif choice == "2":
        display_students()
    elif choice == "3":
        break
    else:
        print("انتخاب نامعتبر است. دوباره تلاش کنید.")
برنامه مدیریت نمرات کامل

در نهایت، برنامه کامل مدیریت نمرات به این شکل خواهد بود:


class Student:
    def __init__(self, name, lastname):
        self.name = name
        self.lastname = lastname
        self.scores = []

    def add_score(self, score):
        self.scores.append(score)

    def calculate_average(self):
        if len(self.scores) == 0:
            return 0
        return sum(self.scores) / len(self.scores)

    def display_info(self):
        print(f"نام: {self.name}")
        print(f"نام خانوادگی: {self.lastname}")
        print(f"نمرات: {self.scores}")
        print(f"معدل: {self.calculate_average()}")

students = []

def add_student():
    name = input("نام دانش‌آموز را وارد کنید: ")
    lastname = input("نام خانوادگی دانش‌آموز را وارد کنید: ")
    student = Student(name, lastname)
    students.append(student)

def add_score_to_student():
    if len(students) == 0:
        print("هیچ دانش‌آموزی وجود ندارد.")
        return
    for i, student in enumerate(students):
        print(f"{i+1}. {student.name} {student.lastname}")
    choice = int(input("شماره دانش‌آموز را وارد کنید: ")) - 1
    if choice < 0 or choice >= len(students):
        print("انتخاب نامعتبر است.")
        return
    score = float(input("نمره را وارد کنید: "))
    students[choice].add_score(score)

def display_students():
    for i, student in enumerate(students):
        print(f"دانش‌آموز شماره {i+1}:")
        student.display_info()
        print("------------------------")

while True:
    print("1. افزودن دانش‌آموز")
    print("2. افزودن نمره به دانش‌آموز")
    print("3. نمایش دانش‌آموزان")
    print("4. خروج")
    choice = input("انتخاب کنید: ")
    
    if choice == "1":
        add_student()
    elif choice == "2":
        add_score_to_student()
    elif choice == "3":
        display_students()
    elif choice == "4":
        break
    else:
        print("انتخاب نامعتبر است. دوباره تلاش کنید.")

مثال‌های بیشتر
  • فرض کنیم می‌خواهیم نمرات یک دانش‌آموز را ویرایش کنیم. می‌توانیم یک متد `edit_score` به کلاس `Student` اضافه کنیم.
  • می‌توانیم نمرات را به صورت فایل CSV یا JSON ذخیره کنیم تا اطلاعات بین جلسات برنامه حفظ شود.

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


تمرین‌ها
  • یک متد به نام `remove_score` ایجاد کنید که یک نمره خاص را از لیست نمرات حذف کند.
  • برنامه را طوری تغییر دهید که نمرات را در یک فایل ذخیره کند و هنگام اجرای برنامه، نمرات را از فایل بخواند.
به پایان این نوشته رسیدید.

شاید بخواهید بخوانید

گفت‌وگو درباره این نوشته

دیدگاه شما

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

دنبال چه می‌گردید؟

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

همه چیز در دسترس

جعبه ابزار شما

خبرخوانخبرهای افغانستان و جهان نرخ اسعارنرخ ارزهای مختلف آب‌وهواوضعیت شهرها و ولایت‌ها تلویزیون زندهتماشای شبکه‌های تلویزیونی رادیو زندهصدای رادیوها قرآن صوتیشنیدن تلاوت قرآن اوقات شرعیزمان نمازها لرزه‌نگاریرویدادهای زمین‌لرزه

جهان نوشته‌ها

معلومات عمومی۱۰۲۸ نوشتهصحت۵۵۴ نوشتهآموزش‌ها۴۴۱ نوشتهتاریخ۴۳۳ نوشتهچرا ها؟۳۳۲ نوشتهوبلاگ۱۹۱ نوشتهمهارت‌های زندگی۸۹ نوشتهمبانی فلسفه‌ی غرب۵۰ نوشتهآموزش ساده پایتون۵۰ نوشتهاحمد ظاهر۴۷ نوشتهآلمان۲۵ نوشتهمهاجرت۲۲ نوشتهموسیقی۲۰ نوشتهکتابخانه۱۷ نوشتهپادکست۱۷ نوشتهورزش۱۵ نوشتهفرهنگ و هنر۱۵ نوشتهخبر۱۵ نوشتهمقالات۱۵ نوشتهخلاصه کتاب۱۵ نوشتهمحلی هراتی۱۴ نوشتهخبرها۱۴ نوشتهزبان آلمانی۱۳ نوشتههمه۱۳ نوشتهجامعه۱۳ نوشتهروایت‌ها۱۲ نوشتهدانش۱۲ نوشتهسلامت۱۲ نوشتهدرست بنویسیم۱۱ نوشتهسیاست۱۱ نوشتهیادداشت‌ها۱۱ نوشتهگزارش‌ها۱۱ نوشتهاصطلاحات سیاسی۱۰ نوشتهمقاله‌ها۱۰ نوشتهچگونه ویزا بگیریم؟۹ نوشتهشب‌نامه‌ها۸ نوشتهویژه۸ نوشتهابزار۸ نوشتهمطالب مناسبتی۶ نوشتهچگونه۶ نوشتهدنیای مهاجرت۶ نوشتهسفرنامه‌ها۶ نوشتهزندگی۶ نوشتهخبرها۵ نوشتهدانلود۵ نوشتهتکنالوژی۵ نوشتههوش مصنوعی۵ نوشتهکلاسیک۵ نوشتهپخش زنده تلویزیون های افغانستان۴ نوشتهمصاحبه‌ها۴ نوشتهآمار و ارقام مهاجرین۳ نوشتهکتاب۲ نوشتهپانزده اگست۱ نوشته

برای خواندن بعدی

نوشته‌هایی که در همین مرورگر ذخیره کرده‌اید.

منوی پیمان

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