From 4c9c57ae7f3b39ef6506974d662aa42218a7b31d Mon Sep 17 00:00:00 2001 From: midfieldfieldhockey18 Date: Sun, 28 Sep 2025 13:50:18 -0400 Subject: [PATCH] Update polymorphism.py --- polymorphism.py | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/polymorphism.py b/polymorphism.py index 9823b36..8204a83 100644 --- a/polymorphism.py +++ b/polymorphism.py @@ -1,11 +1,47 @@ class Student: - # Delete this and write your code here - pass + def __init__(self, name, major, gpa_for_semesters): + self.name = name + self.major = major + self.__gpa_for_semesters = gpa_for_semesters # Private attribute + + def __str__(self): + return f"{self.name} is studying {self.major}." + + # Encapsulation: controlled access to GPA data + def get_gpa(self): + return self.__gpa_for_semesters + + def set_gpa(self, new_value): + self.__gpa_for_semesters = new_value + + def calculate_average_gpa(self): + if not self.__gpa_for_semesters: + return 0.0 + return sum(self.__gpa_for_semesters) / len(self.__gpa_for_semesters) + + def is_in_good_standing(self): + print(f"{self.name} is a student.") + class UndergraduateStudent(Student): - # Delete this and write your code here - pass + def __str__(self): + return f"{self.name} is an undergraduate student studying {self.major}." + + def is_in_good_standing(self): + avg_gpa = self.calculate_average_gpa() + if avg_gpa >= 2.5: + print(f"{self.name} is in good academic standing.") + else: + print(f"{self.name} is not in good academic standing.") + class GraduateStudent(Student): - # Delete this and write your code here - pass \ No newline at end of file + def __str__(self): + return f"{self.name} is a graduate student studying {self.major}." + + def is_in_good_standing(self): + avg_gpa = self.calculate_average_gpa() + if avg_gpa >= 3.0: + print(f"{self.name} is in good academic standing.") + else: + print(f"{self.name} is not in good academic standing.")