برنامه مدیریت نمرات با کلاس در پایتون
پایتون یک زبان برنامهنویسی قدرتمند است که میتوان با آن برنامههای مختلفی ساخت. در این درس، میخواهیم یک برنامه مدیریت نمرات با استفاده از کلاس در پایتون بسازیم. این برنامه به ما کمک میکند تا نمرات دانشآموزان را مدیریت کنیم.
چرا برنامه مدیریت نمرات؟
مدیریت نمرات دانشآموزان میتواند کار سختی باشد، خصوصاً وقتی تعداد دانشآموزان زیاد باشد. با داشتن یک برنامه مدیریت نمرات، میتوانیم به راحتی نمرات را ثبت، ویرایش و مشاهده کنیم. این برنامه میتواند برای معلمان، مدیران مدارس و حتی دانشآموزان مفید باشد.
گام اول: تعریف کلاس
برای ساخت برنامه مدیریت نمرات، ابتدا باید یک کلاس تعریف کنیم. کلاس ما به نام `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` ایجاد کنید که یک نمره خاص را از لیست نمرات حذف کند.
- برنامه را طوری تغییر دهید که نمرات را در یک فایل ذخیره کند و هنگام اجرای برنامه، نمرات را از فایل بخواند.