import pickle
import student
LOOK_UP = 1
ADD = 2
CHANGE = 3
CHANGE_2 = 4
DISPLAY = 5
QUIT = 6
File = 'students.dat'
def main():
mystudents = load_students()
add(mystudents)
look_up(mystudents)
change_GPA(mystudents)
change_grade(mystudents)
print_data(mystudents)
## choice = 0
## while choice != QUIT:
## choice = get_menu_choice()
## if choice == LOOK_UP:
## look_up(mystudents)
##
##save_students(mystudents)
def load_students():
try:
input_file = open(File, 'rb')
student_dict = pickle.load(input_file)
input_file.close()
except IOError:
student_dict = {}
return student_dict
def look_up(mystudents):
student_ID = input('Enter an ID')
## try:
## print(mystudents[student_ID])
## except KeyError:
## print('Not found!')
print(mystudents.get(student_ID, "Not found!"))
#print(mystudents)
def add(mystudents):
name = input('Name:')
student_ID = input('ID:')
GPA = input('GPA:')
grade_course = input('Grade:')
work_time = input('Hours work:')
entry = student.Student(name,student_ID, GPA, grade_course, work_time)
if student_ID not in mystudents:
mystudents[student_ID] = entry
print('Student added')
else:
print('Entry existed')
def change_GPA(mystudents):
name = input('Enter student name:')
student_ID = input('Enter an ID')
if student_ID in mystudents:
new_GPA = input('Enter new GPA')
grade = mystudents[student_ID].grade_course
work = mystudents[student_ID].work_time
new_student = student.Student(name,student_ID,new_GPA,grade,work)
mystudents[student_ID] = new_student
##mystudents[student_ID].GPA = new_GPA
##mystudents[student_ID].GPA = mystudents[student_ID]
## #entry = student.Student(name,student_ID, new_GPA,grade_course,work_time)
print(mystudents[student_ID])
print('Updated')
else:
print('Not found!')
def change_grade(mystudents):
student_ID = input('Enter an ID')
if student_ID in mystudents:
grade = input('Enter new grade')
mystudents[student_ID]
## grade = mystudents[student_ID].grade_course
## old_GPA = mystudents[student_ID].GPA
## old_work = mystudents[student_ID].work_time
## new_student = student.Student(student_ID,old_GPA,grade,old_work)
## mystudents[student_ID] = new_student
mystudents[student_ID].grade_course = grade
print(mystudents[student_ID])
print('Updated')
else:
print('Not found!')
def display_student_info(mystudents[student_ID]):
print("Name\tI.D. #\t\tGPA\t\tExpected Grade\t\tEmployment")
print("----------------------------------------------------------")
for name in mystudents[student_ID]:
print(name, '\t', getattr(name, "id_number"),
'\t', getattr(name, "gpa"), '\t', getattr(name, "expected_grade"), '\t', getattr(name, "work_status"))
def save_students(mystudents):
output_file = open(Filename, 'wb')
pickle.dump(mystudents, output_file)
output_file.close()
main()
This is what I'm supposed to do but I've been staring at this code for hours.
1. Look up and print the student GPA
2. Add a new student to the class
3. Change the GPA of a student
4. Change the expected grade of a student
5. Print the data of all the students in a tabular format
6. Quit the program
This is the error message
Traceback (most recent call last):
File "/Users/kimmyyveee/Documents/Computer Science/Lab10.test2.py", line 104, in <module>
main()
File "/Users/kimmyyveee/Documents/Computer Science/Lab10.test2.py", line 18, in main
change_GPA(mystudents)
File "/Users/kimmyyveee/Documents/Computer Science/Lab10.test2.py", line 67, in change_GPA
grade = mystudents[student_ID].grade_course
AttributeError:
And that's my class Student.
#student.py
class Student:
def __init__(self, name, student_ID,GPA,grade_course,work_time):
self.__name = name
self.__student_ID = student_ID
self.__GPA = GPA
self.__grade_course = grade_course
self.__work_time = work_time
#Mutator
def set__student_ID(self, student_ID):
self.__student_ID = student_ID
def set__GPA(self, GPA):
self.__GPA = GPA
def set__grade_course(self, grade_course):
self.__grade_course = grade_course
def set__work_time(self, work_time):
self.__work_time = work_time
#return values(Acessor)
def get_student_ID(self):
return self.__student_ID
def get_GPA(self):
return self.__GPA
def get_grade_course(self):
return self.__grade_course
def get_work_time(self):
return self.__work_time
def __str__(self):
return '\nStudent Name:'+ self.__name+\
'\nStudent ID:'+ self.__student_ID+\
'\nStudent GPA:'+ self.__GPA+\
'\nStudent Expected Grade:'+ self.__grade_course+\
'\nStudent Work Time '+ self.__work_time