Pythonは学生管理システムのコード(JSONモジュール)を実現します。


構想を練る
学生管理システムは先生登録管理学生情報(添削・修正)とデータの持続化を含むべきです。
データはJSONファイルに保存しますので、添削して調べてもファイルの読み込みと修正が必要です。
したがって、ファイルを読み書きする方法ファイルが必要です。
暗号化は、ハッシュモジュールファイルfile_managerを使用することができる。
教師と学生のクラスファイル
プログラム入り口(ホームページ)ファイルtoolsコア添削ファイルmodelfile_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学生管理システムの内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。