Note that there are some explanatory texts on larger screens.

plurals
  1. POPython: Calculating GPA with classes using credits and grades
    primarykey
    data
    text
    <p>I am so close with this code, I need to figure out to take more than one grade as a parameter. It takes one perfectly but my code is written so it keeps taking grades and credits until nothing is entered. but it doesn't work that way. </p> <p>My code so far:</p> <pre><code>#! /usr/bin/python3 # gpa.py # Program to take credits and grades and return calculated GPA class Student: def __init__(self, hours, qpoints, credits): self.hours = float(hours) self.qpoints = float(qpoints) def getName(self): return self.name def getHours(self): return self.hours def getQPoints(self): return self.qpoints def gpa(self): return self.qpoints/self.hours def addGrade(self, gradePoint, credits): self.hours += credits self.qpoints += 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) # 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 students.addGrade(grade, credits) # after user has entered all grades, compute the cumulative GPA if students.getHours() == 0.0: # can't compute GPA if hours = 0 print('*** zero credit hours recorded') else: # otherwise, output cumulative GPA and finish print('*** final GPA =', students.gpa()) if __name__ == '__main__': main() </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload