Professional Documents
Culture Documents
[10]:
import os, json, platform
class StudentInformationSystem:
def __init__(self):
self.students_data = self.upload_students()
self.menu = {
while True:
ch = self.show_menu()
self.menu[ch][1]()
if ch=='E':
break
def create_student(self):
student = self.input_student()
student['grades'] = []
self.students_data.append(student)
self.save_students()
def read_student(self):
self.list_students()
if idxno != 'c':
self.student_information(int(idxno))
def update_student(self):
self.list_students()
if choice != 'c':
if idxno != 'c':
nidxno = int(idxno)
if choice == 's':
student = self.input_student()
if v != '':
self.students_data[nidxno][k] = v
while True:
grade = self.input_grade()
do_append = True
if grade['subject'] == v['subject']:
self.students_data[nidxno]['grades'][i]['grade']=grade['grade']
do_append = False
break
if do_append:
self.students_data[nidxno]['grades'].append(grade)
if answer == 'n':
break
self.save_students()
def delete_student(self):
self.list_students()
if choice != 'c':
if idxno != 'c':
nidxno = int(idxno)
if choice == 's':
if answer == 'y':
del self.students_data[nidxno]
self.save_students()
self.list_grades(nidxno)
if grno != 'c':
if answer == 'y':
del self.students_data[nidxno]['grades'][int(grno)]
self.save_students()
def show_menu(self):
while True:
print(f'{k}-{v[0]}')
if choice in self.menu.keys():
return choice
def upload_students(self):
while True:
try:
data = open('students_data.dta').read()
return json.loads(data)
except:
open('students_data.dta', 'w').write('[]')
def save_students(self):
open('students_data.dta', 'w').write(json.dumps(self.students_data))
def input_student(self):
student = {
return student
def input_grade(self):
sgrade = {
'subject': input('Enter Subject Code:'),
return sgrade
def list_students(self):
print('List of Students')
print(f'[{i}]-{sdata}')
while True:
choice = input(prompt)
if choice in choices:
return choice
sdata = self.students_data[nidxno]
print('\nStudent Information:')
self.list_grades(nidxno)
print('List of Grades:')
print(f"[{i}]-[{v['subject']}, {v['grade']}]")
def system_exit(self):
print('\nSystem Exit\n')
if __name__ == '__main__':
sis = StudentInformationSystem()
C-Create Student
R-Read Student
U-Update Student
D-Delete Student
E-System Exit
System Exit
In [11]:
sis
<__main__.StudentInformationSystem at 0x7fef880d52b0>
Out[11]:
In [12]:
sis.students_data
[{'idno': '45-67890',
Out[12]:
'fname': 'maria',
'mname': 'cortez',
'lname': 'rizal',
{'idno': '222-33333',
'fname': 'jose',
'mname': 'protacio',
'lname': 'mercado',
'grades': []},
{'idno': '00-11111',
'fname': 'nestor',
'mname': 'f',
'lname': 'bueno',
'grades': []}]
In [ ]: