"""
Student attributes:
    list of courses - list of Course
    Name - string
    ID - integer
    birthday - string
    GPA - float (needs to change when courses change)
    total credits - integer (needs to change when courses change)
    major - string
    extra cirricular list - (come back to this later, maybe)
    year/class - string (needs to change when courses change, maybe)
"""

import course
    
class Student:
    pass

def create(name, student_id, birthday, major, classes, grades, year):
    student = Student()
    student.name = name
    student.student_id = student_id
    student.major = major
    student.classes_taken = classes
    student.grades = grades
    student.year = year
    student.birthday = birthday
    return student

def add_course(student, the_course, grade):
    student.classes_taken += [course.clone(the_course)]
    student.grades += [grade]

def credits(student):
    num_credits = 0
    for course in student.classes_taken:
        num_credits += course.credits
    return num_credits

def GPA(student):
    total_credits = credits(student)
    total_quality_points = 0

    for i in range(len(student.classes_taken)):
        if student.grades[i] == 'A':
            points = 4.0
        elif student.grades[i] == 'B':
            points = 3.0
        elif student.grades[i] == 'C':
            points = 2.0
        elif student.grades[i] == 'D':
            points = 1.0
        else:
            points = 0
            
        quality_points = points * student.classes_taken[i].credits
        total_quality_points = total_quality_points + quality_points

    return total_quality_points/total_credits
