python控制台学生管理系统设计(已更新完善,待优化)

控制台学生管理系统设计

import json


def login_info():
    print('='*50)
    print(' '*2, '** ','欢迎来到学生管理系统',' **')
    print()
    print()
    print(" " * 10, '1.登陆')
    print(" " * 10, '2.注册')
    print(" " * 10, '3.退出')
    print("=" * 50)
    xuanze()

def xuanze():
    a = int(input("请选择1-3:"))
    if a == 1:
        login1()
    elif a == 2:
        zhuce1()
    elif a == 3:
        print("结束退出")
        exit()
    else:
        print("输入有误将返回")
        login_info()


def zhuce1():
    f1 = open(r'E:\shujuchijiu\students\zhanghao.txt', 'r', encoding='utf-8')
    all_zhanghao = json.loads(f1.read())
    f2 = open(r'E:\shujuchijiu\students\mima.txt', 'r', encoding='utf-8')
    all_mima = json.loads(f2.read())
    zhanghao = input("请输入账号(3-6位):")
    if not 3 <= len(zhanghao) <=6:
        print("用户名格式错误")
        zhuce1()
    mima = input("请输入密码(6-12位)")
    if not 6 <= len(mima) <=12:
        print("密码格式错误")
        zhuce1()
    if zhanghao in all_zhanghao:
        print("注册失败,该账号已经注册过!")
        login_info()
        f1.close()
        f2.close()
    else:
        all_zhanghao.append(zhanghao)
        all_mima.append(mima)
        f1 = open(r'E:\shujuchijiu\students\zhanghao.txt', 'w', encoding='utf-8')
        f1.write(json.dumps(all_zhanghao))
        f2 = open(r'E:\shujuchijiu\students\mima.txt', 'w', encoding='utf-8')
        f2.write(json.dumps(all_mima))
        f1.close()
        f2.close()
        print("注册成功")
        login_info()

zhanghao = ''

def login1():
    global zhanghao
    f1 = open(r'E:\shujuchijiu\students\zhanghao.txt', 'r', encoding='utf-8')
    all_zhanghao = json.loads(f1.read())
    f2 = open(r'E:\shujuchijiu\students\mima.txt', 'r', encoding='utf-8')
    all_mima = json.loads(f2.read())
    zhanghao = input("请输入账号:")
    mima = input("请输入密码:")
    if zhanghao not in all_zhanghao:
        print("该账号未注册")
        f1.close()
        f2.close()
        login_info()
    elif mima not in all_mima:
        print("登陆失败,密码错误")
        f1.close()
        f2.close()
        login_info()
    else:
        if mima != all_mima[all_zhanghao.index(zhanghao)]:
            print("登陆失败,密码错误")
            f1.close()
            f2.close()
            login_info()
        else:
            print("登陆成功")
            f1.close()
            f2.close()
            info()


def info():
    print(f"欢迎{zhanghao}: ")
    print()
    print(" " * 5, '1.添加学生')
    print(" " * 5, '2.查看学生')
    print(" " * 5, '3.修改学生信息')
    print(" " * 5, '4.删除学生')
    print(" " * 5, '5.返回注册登陆界面')
    print(" " * 5, '6.退出')
    print("=" * 20)
    xuanze1()


def xuanze1():
    global zhanghao
    try:
        f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'x', encoding='utf-8')
        f3.write(str([]))
        f3.close()
    except:
        pass
    f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
    aa = json.loads(f4.read())
    a = int(input("请选择1-6:"))
    if a == 1:
        add()
    elif a == 2:
        if len(aa) == 0:
            print(f"该账号({zhanghao})没有可管理的学生,请先添加学生")
            info()
        else:
            print(aa)
            f4.close()
            info()
    elif a == 3:
        update()
        info()
    elif a == 4:
        delete()
        info()
    elif a == 5:
        login_info()
    elif a == 6:
        print("结束退出")
        exit()
    else:
        print("输入有误将返回")
        info()


def add():
    f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
    aa = json.loads(f3.read())
    f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'w', encoding='utf-8')
    bb = {}
    name = input("请输入姓名:")
    age = input("请输入年龄:")
    tel = input("请输入电话:")
    bb['name'] = name
    bb['age'] = age
    bb['tel'] = tel
    aa.append(bb)
    f4.write(json.dumps(aa))
    f3.close()
    f4.close()
    print("添加成功")
    print("1.继续")
    print("2.返回")
    b = int(input("请选择(1-2):"))
    if b == 1:
        add()
    else:
        info()


def update():
    global zhanghao
    f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
    aa = json.loads(f3.read())
    f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'w', encoding='utf-8')
    b = input("请输入要修改的学生姓名:")
    for item in aa:
        if item['name'] == b:
            i = aa.index(item)
            c = input("请选择修改(name,age,tel):")
            aa[i][c] = input("请输入更改后的值:")
            f4.write(json.dumps(aa))
            f3.close()
            f4.close()
            print("修改成功")
            break
    else:
        print("该学生不存在")


def delete():
    global zhanghao
    f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
    aa = json.loads(f3.read())
    f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'w', encoding='utf-8')
    d = input("请输入要删除的学生姓名:")
    for item in aa:
        if item['name'] == d:
            e = input("请确定是否要删除(y/n):")
            if e == 'y':
                aa.remove(item)
                f4.write(json.dumps(aa))
                f3.close()
                f4.close()
                print("删除成功")
                break
            else:
                info()
                break
    else:
        print("该学生不存在")

login_info()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azured_xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值