[go: up one dir, main page]

0% found this document useful (0 votes)
221 views4 pages

GPA Calculator with Letter Grades

The document describes extending a Student class to allow calculating GPA based on letter grades entered as strings. It involves: 1. Adding a addLetterGrade method to the Student class that takes a letter grade as a string, maps it to a numeric grade point value based on a grading scale, and updates the student's grade points and credits. 2. Modifying the main program to allow entry of letter grades which get passed to addLetterGrade instead of addGrade, and still calculates the final GPA. 3. Testing the modified class and program to ensure letter grades can now be entered and GPA calculated correctly.

Uploaded by

VIKRAM KUMAR
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
221 views4 pages

GPA Calculator with Letter Grades

The document describes extending a Student class to allow calculating GPA based on letter grades entered as strings. It involves: 1. Adding a addLetterGrade method to the Student class that takes a letter grade as a string, maps it to a numeric grade point value based on a grading scale, and updates the student's grade points and credits. 2. Modifying the main program to allow entry of letter grades which get passed to addLetterGrade instead of addGrade, and still calculates the final GPA. 3. Testing the modified class and program to ensure letter grades can now be entered and GPA calculated correctly.

Uploaded by

VIKRAM KUMAR
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

1. Extend the previous exercise by implementing an addLetterGrade method.

This is similar to
addGrade except that it accepts a letter grade as a string (instead of a gradepoint). Use the updated
class to improve the GPA calculator by allowing the entry of letter grades.
Answer:

#! /usr/bin/python3
# [Link]
# Program to take credits and grades and return calculated GPA

class Student:
def __init__(self, hours, qpoints, credits):
[Link] = float(hours)
[Link] = float(qpoints)

def getName(self):
return [Link]

def getHours(self):
return [Link]

def getQPoints(self):
return [Link]

def gpa(self):
return [Link]/[Link]

def addGrade(self, gradePoint, credits):


[Link] += credits
[Link] += credits*gradePoint

def addLetterGrade(self, grade):


total = 0
for i in grade(A,B,C,D,E,F):
if grade == 'A':
total = total + 4.0
elif grade == 'A-':
total = total + 3.7
elif grade == 'B+':
total = total + 3.3
elif grade == 'B':
total = total + 3.0
elif grade == 'B-':
total = total + 2.7
elif grade == 'C+':
total = total + 2.3
elif grade == 'C':
total = total + 2.0
elif grade == 'C-':
total = total + 1.7
elif grade == 'D+':
total = total + 1.3
elif grade == 'D':
total = total + 1.0
elif grade == 'E':
total = total + 0.0
elif grade == 'F':
total = total + 0.0

def main():
grade = input('Enter grade for next course, or type done finish: ')
credits = input('Enter number of credit hours for this course: ')
error_float = 'error: expected a floating-point number'
# make a new Student object
# students = Student('students', 0.0, 0.0) # This is wrong declaration because you initialised "def
__init__(self, hours, qpoints, credits): "
students = Student(0.0, 0.0, 0.0)

# user-feedback loop
while 1:
# prompt user to enter a grade
grade_str = input(grade)
# quit if no grade is entered
if grade_str.strip() == 'done':
break

try:
# convert input to a floating-point value
grade = float(grade_str)
except ValueError:
# if input cannot be converted, restart feedback loop
print(error_float)
continue

# prompt user to enter the number of credits


credits_str = input(credits).strip()
try:
# convert input to a floating-point value
credits = float(credits_str)
except ValueError:
# if input cannot be converted, restart feedback loop
print(error_float)
continue

# update the student's grades


[Link](grade, credits)

# after user has entered all grades, compute the cumulative GPA
if [Link]() == 0.0:
# can't compute GPA if hours = 0
print('*** zero credit hours recorded')
else:
# otherwise, output cumulative GPA and finish
print('*** final GPA =', [Link]())

if __name__ == '__main__':
main()

2. Write a modified Button class that creates circular buttons. Call your class CButton and
implement the exact same methods that are in the existing Button class. Your constructor should
take the center of the button and its radius as normal parameters. Place your class in a module
called [Link]. Test your class by modifying [Link] to use your buttons.
Answer:

You might also like