"""
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:
    def __init__(student, name, student_id, birthday, major, classes, grades, year):
        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 no longer needed, it happens automatically
        #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 = student.credits()
        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

"""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"""
