Pythonは学生管理システムのコード(JSONモジュール)を実現します。
構想を練る
学生管理システムは先生登録管理学生情報(添削・修正)とデータの持続化を含むべきです。
データはJSONファイルに保存しますので、添削して調べてもファイルの読み込みと修正が必要です。
したがって、ファイルを読み書きする方法ファイルが必要です。
暗号化は、ハッシュモジュールファイル
教師と学生のクラスファイル
プログラム入り口(ホームページ)ファイル
自分で書いたファイルの読み取り方法でテキストを直接読み取ることができます。
welcome.txt
ここでPython学生管理システムを実現するコード(JSONモジュール)についての記事を紹介します。Python学生管理システムの内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。
学生管理システムは先生登録管理学生情報(添削・修正)とデータの持続化を含むべきです。
データはJSONファイルに保存しますので、添削して調べてもファイルの読み込みと修正が必要です。
したがって、ファイルを読み書きする方法ファイルが必要です。
暗号化は、ハッシュモジュールファイル
file_manager
を使用することができる。教師と学生のクラスファイル
プログラム入り口(ホームページ)ファイル
tools
コア添削ファイルmodel
file_manager.py
"""
Project: ClassStudent
Creator:
Create time: 2021-02-25 20:23
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
base_dir = 'files/' #
#
def read_file(file_name):
try:
with open(base_dir + file_name, 'r', encoding='utf8') as file:
content = file.read()
return content
except FileNotFoundError:
print(' ')
def write_json(file_name, data):
with open(base_dir + file_name, 'w', encoding='utf8') as file:
import json
json.dump(data, file)
def read_json(file_name, default_data):
try:
with open(base_dir + file_name, 'r', encoding='utf8') as file:
import json
return json.load(file)
except FileNotFoundError:
# print(' ')
return default_data
tools.py
"""
Project: ClassStudent
Creator:
Create time: 2021-02-25 20:24
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
#
import hashlib
def encrypt_password(passwd, x='zhumaogouniu'):
h = hashlib.sha256()
h.update(passwd.encode('utf8'))
h.update(x.encode('utf8'))
return h.hexdigest()
model.py
"""
Project: ClassStudent
Creator:
Create time: 2021-02-25 20:24
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
#
class Teacher(object):
def __init__(self, name, password):
import tools
self.name = name
self.password = tools.encrypt_password(password)
class Student(object):
def __init__(self, s_id, name, age, gender, tel):
self.s_id = s_id
self.name = name
self.age = age
self.gender = gender
self.tel = tel
index.py
"""
Project: ClassStudent
Creator:
Create time: 2021-02-25 20:25
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
import sys
import file_manager #
import model
import student_manager
def register():
# , 。 ,
data = file_manager.read_json('data.json', {})
while True:
teacher_name = input(' (3~6 ):')
if not 2 <= len(teacher_name) <= 6:
print(' , !')
else:
break
if teacher_name in data:
print(' ! !')
return
while True:
password = input(' (6~12 ):')
if not 6 <= len(password) <= 12:
print(' , !')
else:
break
# key:value
# teacher
t = model.Teacher(teacher_name, password)
data[t.name] = t.password
file_manager.write_json('data.json', data)
def login():
# , 。 ,
data = file_manager.read_json('data.json', {})
teacher_name = input(' :')
if teacher_name not in data:
print(' ! !')
return
password = input(' :')
import tools
if data[teacher_name] == tools.encrypt_password(password):
student_manager.name = teacher_name
print(' ')
student_manager.show_manager()
else:
print(' , !')
def start():
content = file_manager.read_file('welcome.txt')
while True:
operate = input(content + '
(1-3):')
if operate == '1':
print(' ')
login()
elif operate == '2':
print(' ')
register()
elif operate == '3':
print(' ')
# break #
# exit(0) #
sys.exit(0) #
else:
print(' !')
if __name__ == '__main__':
start()
student_manager.py
"""
Project: ClassStudent
Creator:
Create time: 2021-02-25 20:26
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
import file_manager
import model
name = ''
#
def add_student():
x = file_manager.read_json(name + '.json', {})
if not x:
students = []
num = 0
else:
students = x['all_student']
# s_id json num
num = int(x['num'])
while True:
s_name = input(' :')
s_age = input(' :')
s_gender = input(' :')
s_tel = input(' :')
num += 1
# zfill , 0
s_id = 'student_id_' + str(num).zfill(3)
# Student
s = model.Student(s_id, s_name, s_age, s_gender, s_tel)
students.append(s.__dict__)
#
data = {'all_student': students, 'num': len(students)}
# .json data
file_manager.write_json(name + '.json', data)
choice = input(' !
1.
2.
(1-2):')
if choice == '2':
break
#
def show_student():
choice = input('1.
2.
3.
:
:')
students = file_manager.read_json(name + '.json', {})
all_students = students.get('all_student', []) # get , []
if not all_students:
print(' , ')
return
if choice == '1': #
pass
elif choice == '2': #
s_name = input(' :')
all_students = filter(lambda s: s['name'] == s_name, all_students) # students
elif choice == '3': #
s_id = input(' :')
all_students = filter(lambda s: s['s_id'] == s_id, all_students)
else:
return
if not students:
print(' ')
return
for student in all_students:
print(' :{s_id}, :{name}, :{gender}, {age}, {tel}'.format(**student))
#
def modify_student():
key = value = ''
m = file_manager.read_json(name + '.json', {})
all_students = m.get('all_student', [])
if not all_students:
print(' , ')
return
modify = input('1.
2.
:
:')
if modify == '1':
value = input(' :')
key = 'name'
elif modify == '2':
value = input(' :')
key = 's_id'
else:
return
students = list(filter(lambda s: s[key] == value, all_students))
if not all_students:
print(' ')
return
for i, student in enumerate(students):
print('{xiabiao} :{s_id}, :{name}, :{gender}, {age}, {tel}'.format(xiabiao=i, **student))
n = int(input(' (0~{}),q--> :'.format(len(students) - 1)))
if not 0 <= n <= len(students):
print(' ')
return
all_students.remove(students[n])
students[n]['s_id'] = new_input((students[n]['s_id']), " [ ]:")
students[n]['name'] = new_input((students[n]['name']), " [ ]:")
students[n]['gender'] = new_input((students[n]['gender']), " [ ]:")
students[n]['age'] = new_input((students[n]['age']), " [ ]:")
students[n]['tel'] = new_input((students[n]['tel']), " [ ]:")
all_students.append(students[n])
print(all_students)
m['all_student'] = all_students
file_manager.write_json(name + '.json', m)
#
def delete_student():
y = file_manager.read_json(name + '.json', {})
all_students = y.get('all_student', [])
key = value = ''
if not all_students:
print(' , ')
return
num = input('1.
2.
:
:')
if num == '1':
key = 'name'
value = input(' :')
elif num == '2':
key = 's_id'
value = input(' :')
else:
return
students = list(filter(lambda s: s.get(key, '') == value, all_students))
if not students:
print(' ')
return
for i, student in enumerate(students):
print('{xiabiao} :{s_id}, :{name}, :{gender}, {age}, {tel}'.format(xiabiao=i, **student))
n = input(' (0~{}),q--> :'.format(len(students) - 1))
if not n.isdigit() or not 0 <= int(n) <= len(students):
print(' ')
return
# all_students
# all_students.pop(n)
all_students.remove(students[int(n)])
#
y['all_student'] = all_students
file_manager.write_json(name + '.json', y)
#
def show_manager():
content = file_manager.read_file('students_page.txt') % name
while True:
print(content)
operate = input(' (1-5):')
if operate == '1':
add_student()
elif operate == '2':
show_student()
elif operate == '3':
modify_student()
elif operate == '4':
delete_student()
elif operate == '5':
break
else:
print(' !')
# input
def new_input(old, new):
input_str = input(new)
if len(input_str) > 0:
return input_str
else:
return old
テキストを美化する自分で書いたファイルの読み取り方法でテキストを直接読み取ることができます。
welcome.txt
================================
** **
1.
2.
3.
** **
================================
students_page.txt
================================
❀❀ %s :
1.
2.
3.
4.
5.
❀❀ ❀❀
================================
効果を実行ここでPython学生管理システムを実現するコード(JSONモジュール)についての記事を紹介します。Python学生管理システムの内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。