Расчет среднего балла по классам с использованием кредитов и оценокPython

Программы на Python
Ответить
Anonymous
 Расчет среднего балла по классам с использованием кредитов и оценок

Сообщение Anonymous »

Я пишу программу для получения кредитов и оценок и возврата рассчитанного среднего балла. Мне нужно придумать, как использовать более одной оценки в качестве параметра. Для этого достаточно одного, но мой код написан так, что он продолжает получать оценки и кредиты, пока ничего не будет введено. Но так не работает.
Мой код на данный момент:
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()


Подробнее здесь: https://stackoverflow.com/questions/161 ... and-grades
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»