class Student:
name = None
id = None
gpa = None
# Student specification ends here
def outputStudents(student, nStudents):
for i in range(nStudents):
print("Name =", "{:30}".format(student[i].name), end="")
print(" ID =", "{:07}".format(student[i].id), end="")
print(", gpa =", student[i].gpa)
# outputStudents ends here
# main program starts here
try: # open a file for input
fin = open("students.txt")
# create an empty list
MAX_STUDENTS = 30 # list capacity
nStudents = 0 # initially empty list
student = [Student() for i in range(MAX_STUDENTS)]
except:
print("file not found")
exit() # end the program NOW
# read and save the records
for lineFromFile in fin:
aStudent = Student()
aStudent.name = lineFromFile.strip()
aStudent.id = int(fin.readline().strip())
aStudent.gpa = float(fin.readline().strip())
fin.readline() # skip the ---------- separator
# add record to list, if it's not full
if (nStudents < MAX_STUDENTS):
student[nStudents] = aStudent
nStudents += 1
fin.close() # done with the file
# sort the students by name
for i in range(nStudents):
for j in range(i + 1, nStudents):
if student[i].name.lower() > student[j].name.lower():
student[i],student[j] = student[j],student[i]
outputStudents(student, nStudents)