Discussion about this post

User's avatar
Bijal's avatar

Hi All,

I have written a OOP-version of the grade calculator.

Please let me know any suggestions or improvements.

I have one question regarding the self. When to use self and when not to use self.

Please let me know

Here is the code below

#####################

class GradeClass:

print("Grade Calculator")

print(20*"="+"\n")

def __init__(self):

self.name = input("Enter student name: ")

self.scores = input("Enter test scores (comma seprated): ")

def average(self):

self.user_scores = (self.scores.split(","))

self.sum = 0

for value in self.user_scores:

self.sum += int(value)

self.number = len(self.user_scores)

self.average_cal = self.sum / self.number

return self.average_cal

def grade_calculator(self,avg):

if avg>90 and avg<100:

return "A"

elif avg>80 and avg<90:

return "B"

elif avg>70 and avg<80:

return "C"

elif avg>60 and avg<70:

return "D"

elif avg>50 and avg<60:

return "E"

else:

return "F"

def grade_status(self,grade):

if grade=="F":

return "FAIL"

else:

return "PASS"

obj = GradeClass()

print("\n")

print("Student Grade Report")

print(20*"="+"\n")

print(f"Name: {obj.name}")

print(f"Test Scores: {obj.scores}")

average_cal = obj.average()

print(f"Average Score: {average_cal}")

grade_cal=obj.grade_calculator(average_cal)

print(f"Letter Grade: {grade_cal}")

grade_stat = obj.grade_status(grade_cal)

print(f"Status: {grade_stat}")

print("Report Generated Successfully!")

############################

Thanks

No posts

Ready for more?