Python:学生管理系统

目录结构
在这里插入图片描述
代码示例
index.py

from 学生管理系统 import file_manager, model,tool,student_manage


def login():
    # 读取文件,看文件是否有数据,判断输入的用户名是否被注册过
    teacher = file_manager.read_json('teacher.json',{
    
    })
    account = input('请输入用户名:')
    if account not in teacher:
        print('登陆失败,该账号没有注册')
        return

    #输入密码,对密码进行校验
    password = input('请输入密码:')
    if teacher[account] == tool.encrypt_password(password):
        print('登陆成功')
        student_manage.account = account
        student_manage.show_manage()

    else:
        print('密码错误,登陆失败')



# teacher = {} # 定义9行,此行作废
def register():
    # 读取文件,查看文件里是否有数据,如果没有数据,则默认teacher是一个字典 ,此处替代第7行代码
    teacher = file_manager.read_json('teacher.json',{
    
    })
    print(teacher)

    # 输入用户名,密码,并进行校验
    while True:
        account = input('请输入用户名(3~9位):')
        if not 3 <= len(account) <= 9:
            print('用户名长度要求3~9位,请重新输入:')
        elif account in teacher:
            print('该账号已经注册过,请重新注册')
        else:
            break

    while True:
        password = input('请输入密码(6~12位):')
        if not 6 <= len(password) <= 12:
            print('密码长度要求6~12位,请重新输入:')
        else:
            break

    # 将用户名密码写入到字典中,再将字典写入到teacher.json文件中
    # teacher[account] = password
    # print(teacher)
    # file_manager.write_file('teacher.json.txt',teacher)

    # 将用户名密码写入到对象中,再将对象写入到teacher.json文件中
    t = model.Teacher(account,password)
    teacher[t.account] = t.password
    file_manager.write_file('teacher.json',teacher)




def start():
    content = file_manager.read_file('welcome.txt')
    while True:
        operater = input(content + '请选择(1-3):')
        if operater == '1':
            login()
        elif operater == '2':
            register()
        elif operater == '3':
            print('退出')
            break # 把死循环停止
            # exit(0) # 退出整个程序
            # sys.exit(0) # 退出整个程序
        else:
            print('输入有误')



if __name__ == '__main__':
    start()

model.py

from 学生管理系统 import tool


class Teacher(object):
    def __init__(self,account,password):
        self.account = account
        self.password = tool.encrypt_password(password)

student_manage.py

from 学生管理系统 import file_manager

account = ''
def show_manage():
    content = file_manager.read_file('student_page.txt') % account
    while True:
        # print(content)
        # input('请选择(1~5):')
        input(content+'请选择(1~5):')

tool.py

import hashlib


def encrypt_password(password, x='moreencrypt'):
    h = hashlib.sha256()
    h.update(password.encode('utf8'))
    h.update(x.encode('utf8'))
    return h.hexdigest()

file_manager.py

base_dir = './file/'
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,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

student_page.txt

==============================================
欢迎%s进入学生管理页面

            ❤ 1.  添加学生
            ❤ 2.  查看学生
            ❤ 3.  修改学生信息
            ❤ 4.  删除学生
            ❤ 5.  返回

==============================================

teacher.json

{
    
    "qqq": "81a7c1e99a3a617ff703b957d66d83c030f797d4a3f4163c1444acdec479c298", "11111": "db275e07a8b8bd56204b68c69e0ff58cd3bcdc5dfc9f2acf7659ee6d8266c138", "lianhong": "5552a84bf6c0039ff15afc6930db24dd8f4c11cfdf6b88d2618ee9355d2a7ad3", "hello": "0996a30a8053a8db51a0fd118e6aa1b0a88223d7ab30a0826f355a9bde14c7a3", "ninini": "504d89e7be72400d89afd4d7524c7346c2406543430dd6e5257a6337938d4484", "lll": "2c801224c99732600ee049538cef10307c428527972b6f0cfe38f5848d29a619", "li9": "81a7c1e99a3a617ff703b957d66d83c030f797d4a3f4163c1444acdec479c298", "333": "57b0f94e7f2ad6fee54337f550968438e51fc9b67501ed4e4a7cb40e0213a26a", "123": "8d22a1bc40a79555c87e3786604ba8e6000845029e692c9cb761d56704bf9e1f", "456": "0fae0b647866dda792b15dcfcedc723fd736dc16eca4dfad0699f91d97d5a4c6", "iii": "504d89e7be72400d89afd4d7524c7346c2406543430dd6e5257a6337938d4484", "xiaoli": "e0a03e11ab5f841f7bf6cf8d997d22b31b0f16917976e3d5d5a9a0db2cd96755", "qqqq": "ac1b18813a30a62b6ed9c0b8f5996840d70b5432372aef0df903e18393c2c00a"}

welcome.txt

==============================================
      ** 欢迎来到学生管理系统 **

         ♦️ 1. 登    陆
         ♦️ 2. 注    册
         ♦️ 3. 退    出

==============================================

猜你喜欢

转载自blog.csdn.net/weixin_42161670/article/details/114002052