Python-Studentenleistungsmanagementsystem (mit Quellcode)

Produktionsideen:

Die insgesamt vier Codedateien lauten wie folgt:

Dateimanipulation (file_manger)

Studentenschnittstelle (Student)

Datenverschlüsselung (Tools)

Hauptschnittstelle (Index)

Spezifische Dokumente finden Sie am Ende des Artikels


Zeige Ergebnisse:


Hauptfunktion:

Funktion im Index:

        Funktion zum Registrieren des Kontopassworts

def register():
    global teacher
    while True:
        teacher_name = input('请输入账号(3-6位):')
        if len(teacher_name) > 6 or len(teacher_name) < 3:
            print('账号不符合要求,请重新输入')
        else:
            break
    while True:
        password = input('请输入密码(6-12位)')
        if not 6 <= len(password) <= 12:
            print('密码不符合要求,请重新输入')
        else:
            break
    # 用户名密码账号密码都输入正确
    password = tools.encrypt_password(password)
    teacher[teacher_name] = password
    file_manger.write_json('data.json', teacher)

        Login-Funktion für Studenten-Login:


def login():
    m = file_manger.load_json('data.json')
    n = input('请输入需要登入的账号:')
    for i in m.keys():
        if n == i:
            y = input('请输入密码')
            y = tools.encrypt_password(y)
            if y == m[i]:
                print('登陆成功')
                while True:
                    showmenu()
                    x = input('请选择你需要操作的序号:')
                    if x == '1':
                        inserts()
                    elif x == '2':
                        removestu()
                    elif x == '3':
                        modstu()
                    elif x == '4':
                        chaxun()
                    elif x == '5':
                        showstu()
                    elif x == '6':
                        bao()
                    elif x == '7':
                        print('6.退出系统')
                        print('欢迎下次使用该系统')
                        break
                    else:
                        print('输入序号有误,请重新输入')
                        continue
                    input('....回车键继续操作....')
                sys.exit(0)
            else:
                print('密码输入错误')
                break
    else:
        print('账号输入错误')

        

     Hauptschnittstellenfunktion starten:


def start():
    content = file_manger.read_files('welcome.txt')
    while True:
        operator = input(content + '\n请选择(1-3):')
        if operator == '1':
            print('登陆')
            login()
        elif operator == '2':
            print('注册')
            register()
        elif operator == '3':
            print('退出')
            # break 退出死循环
            # exit(0) 退出整个程序
            sys.exit(0)
        else:
            print('输入有误')
        input('请输入任意字符继续')

Vollständiger Code:

index.py


import file_manger

import tools

from student import *

teacher = {}


def register():
    global teacher
    while True:
        teacher_name = input('请输入账号(3-6位):')
        if len(teacher_name) > 6 or len(teacher_name) < 3:
            print('账号不符合要求,请重新输入')
        else:
            break
    while True:
        password = input('请输入密码(6-12位)')
        if not 6 <= len(password) <= 12:
            print('密码不符合要求,请重新输入')
        else:
            break
    # 用户名密码账号密码都输入正确
    password = tools.encrypt_password(password)
    teacher[teacher_name] = password
    file_manger.write_json('data.json', teacher)


def login():
    m = file_manger.load_json('data.json')
    n = input('请输入需要登入的账号:')
    for i in m.keys():
        if n == i:
            y = input('请输入密码')
            y = tools.encrypt_password(y)
            if y == m[i]:
                print('登陆成功')
                while True:
                    showmenu()
                    x = input('请选择你需要操作的序号:')
                    if x == '1':
                        inserts()
                    elif x == '2':
                        removestu()
                    elif x == '3':
                        modstu()
                    elif x == '4':
                        chaxun()
                    elif x == '5':
                        showstu()
                    elif x == '6':
                        bao()
                    elif x == '7':
                        print('6.退出系统')
                        print('欢迎下次使用该系统')
                        break
                    else:
                        print('输入序号有误,请重新输入')
                        continue
                    input('....回车键继续操作....')
                sys.exit(0)
            else:
                print('密码输入错误')
                break
    else:
        print('账号输入错误')


def start():
    content = file_manger.read_files('welcome.txt')
    while True:
        operator = input(content + '\n请选择(1-3):')
        if operator == '1':
            print('登陆')
            login()
        elif operator == '2':
            print('注册')
            register()
        elif operator == '3':
            print('退出')
            # break 退出死循环
            # exit(0) 退出整个程序
            sys.exit(0)
        else:
            print('输入有误')
        input('请输入任意字符继续')


if __name__ == '__main__':
    start()

file_manger.py

import json


def read_files(file_name):
    try:
        with open(file_name, 'r', encoding='utf-8') as f:
            content = f.read()
            return content
    except FileExistsError:
        print('文件未找到')


def write_json(file_name, data):
    with open(file_name, 'w', encoding='utf-8') as f:
        json.dump(data, f)


def load_json(file_name):
    with open(file_name, 'r', encoding='utf-8') as f:
        return json.load(f)

tools.py

import hashlib


# 进行加密
def encrypt_password(x):
    sha256 = hashlib.sha256(x.encode('utf-8'))
    x = sha256.hexdigest()
    return x

student.py

import json
import sys

stulist = []


def showmenu():
    print('♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥')
    print('---------------学生成绩管理系统--------------')
    print('---------------1.添加学生--------------------')
    print('---------------2.删除学生--------------------')
    print('---------------3.修改单个学生信息------------')
    print('---------------4.查询单个学生信息------------')
    print('---------------5.查询所有的学生信息----------')
    print('---------------6.保存所有的学生信息----------')
    print('---------------7.退出系统--------------------')
    print('♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥')


def inserts():  # 添加学生信息
    name = input('请输入学生姓名:')
    for stu in stulist:
        if stu['name'] == name:
            print('学生信息存在')
            return
    age = input('请输入学生年龄:')
    sex = input('请输入学生性别:')
    stu = {'name': name, 'age': int(age), 'sex': sex}
    stulist.append(stu)
    print('学生信息添加完成')


def showstu():  # 查询所有学生信息
    if len(stulist):
        for stu in stulist:
            print(f"性别:{stu['name']} 年龄:{stu['age']} 性别:{stu['sex']}")
    else:
        print('目前无学生信息')


def removestu():  # 删除学生信息
    name = input('请输入学生姓名:')
    for stu in stulist:
        if stu['name'] == name:
            stulist.remove(stu)
            break
    else:
        print('学生信息不存在,无法删除')


def modstu():  # 更改学生年龄
    name = input('请输入学生姓名:')
    for stu in stulist:
        if stu['name'] == name:
            stu['age'] = int(input('请输入新的年龄:'))
            break
    else:
        print('学生信息不存在,无法修改')


def chaxun():  # 查看个人学生信息
    name = input('请输入需要查询的名字')
    for stu in stulist:
        if stu['name'] == name:
            print(f"性别:{stu['name']} 年龄:{stu['age']} 性别:{stu['sex']}")
            break
    else:
        print('目前无学生信息')


def bao():
    with open(r'studentxinxi.json', 'w') as f:
        json.dump(stulist, f)


if __name__ == '__main__':
    while True:
        showmenu()
        x = input('请选择你需要操作的序号:')
        if x == '1':
            inserts()
        elif x == '2':
            removestu()
        elif x == '3':
            modstu()
        elif x == '4':
            chaxun()
        elif x == '5':
            showstu()
        elif x == '6':
            bao()
        elif x == '7':
            print('7.退出系统')
            print('欢迎下次使用该系统')
            sys.exit(0)
        else:
            print('输入序号有误,请重新输入')
            continue
        input('....回车键继续操作....')

Gesamtordnerformat:


Zusammenfassen:

Durch die Kombination von JSON-Dateien zum Speichern von Schülerinformationen und Kennwörtern für Lehrerkonten sowie zwei Ports, zwei Anmeldeports für Lehrer und Schüler, wird die herkömmliche Initialisierung unterbrochen und direkt in das System eingegeben. Außerdem verfügt es über eine Registrierungsfunktion, mit der sich mehrere Personen bequem anmelden können und verwalten.

Supongo que te gusta

Origin blog.csdn.net/m0_64238843/article/details/128403258
Recomendado
Clasificación