Pythonは学生管理システムの完全コードを実現する(対象に向ける)


前言
これは対象に向けた方法で書くだけの発想です。学生管理システム(JSONモジュール)と同じです。
file_manager.py

"""
Project: ClassStudent
Creator:   
Create time: 2021-03-04 08:18
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_file(file_name):
    with open(base_dir + file_name, 'w', encoding='utf8') as file:
        pass

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-03-04 08:20
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-03-04 08:18
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, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    def __str__(self):
        return f'{self.name},{self.age},{self.gender}'
index.py

"""
Project: ClassStudent
Creator:   
Create time: 2021-03-04 12:08
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
# 1.        
import sys
import file_manager  #             
import model
import managerSystem

def register():
    #     ,          。       ,       
    data = file_manager.read_json('data.json', {})
    while True:
        teacher_name = input('     (2~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):
        managerSystem.name = teacher_name
        print('    ')
        student_manager= managerSystem.StudentManager()
        student_manager.run()

    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(' !') # 2. # : if -- run if __name__ == '__main__': start()
manager System.py

"""
Project: ClassStudent
Creator:   
Create time: 2021-03-04 16:12
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
import file_manager
from model import *

name = ''
class StudentManager(object):
    def __init__(self):
        #        --   
        self.student_list = []


    #  .      
    def run(self):
        # 1.           
        self.load_student()
        while True:
            # 2.      
            self.show_menu()
            # 3.          
            menu_num = input('           :')

            # 4.                
            if menu_num == '1':
                self.add_student()
            elif menu_num == '2':
                self.del_student()
            elif menu_num == '3':
                self.modify_student()
            elif menu_num == '4':
                self.search_student()
            elif menu_num == '5':
                self.show_student()
            elif menu_num == '6':
                self.sava_student()
            elif menu_num == '7':
                break
            else:
                print('    ')

    #  。      
    # 2.1        ----               
    @staticmethod
    def show_menu():
        content = file_manager.read_file('students_page.txt')
        print(content)

    #   
    def add_student(self):
        # 1.      
        name = input('       :')
        age = input('       :')
        gender = input('       :')

        # 2.        --      student  ,     
        student = Student(name, age, gender)

        # 3.           
        self.student_list.append(student)

        print(self.student_list)
        print(student)

    #   
    def del_student(self):
        del_name = input('           :')

        #                 
        for i in self.student_list:
            if i.name == del_name:
                self.student_list.remove(i)
                break
        else:
            print('    ')

        print(self.student_list)

    #   
    def modify_student(self):
        modify_name = input('           :')

        for i in self.student_list:
            if i.name == modify_name:
                i.name = self.new_input(i.name, '         [      ]:')
                i.age = self.new_input(i.age, '         [      ]:')
                i.gender = self.new_input(i.gender, '         [      ]:')
                print(f'        ,   {i.name},   {i.age},   {i.gender}')
                break
        else:
            print('    ')

    #   
    def search_student(self):
        search_name = input('           :')

        for i in self.student_list:
            if i.name == search_name:
                print(f'   {i.name},   {i.age},   {i.gender}')
                break
        else:
            print('    ')

    #       
    def show_student(self):
        print('  \t\t  \t  ')
        for i in self.student_list:
            print(f'{i.name}\t\t{i.age}\t\t{i.gender}')

    #       
    def sava_student(self):
        # 1.    
        file = open('files/student.data', 'w')

        # 2.      
        # 2.1 [    ]     [  ]
        #        
        new_list = [i.__dict__ for i in self.student_list]

        # 2.2           
        file.write(str(new_list))
        file.close()

    #     
    def load_student(self):
        try:
            file = open('files/student.data', 'r')
        except FileNotFoundError:
            file = open('files/student.data', 'w')
        else:
            # 1.    
            data = file.read()
            # 2.                        ,
            #                          
            new_list = eval(data)
            #      
            self.student_list = [Student(i['name'], i['age'], i['gender']) for i in new_list]
        finally:
            pass
            # 3.    
        file.close()

    #    input  
    def new_input(self, old, new):
        input_str = input(new)

        if len(input_str) > 0:
            return input_str
        else:
            return old
効果を実行
在这里插入图片描述
在这里插入图片描述
ここでPythonについて学生管理システムの完全なコード(対象に向かって)を実現する記事を紹介します。これに関連して、もっと多くのpython学生管理システムの内容を紹介します。私達の以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。