基于python的学生管理系统

  • 实现了利用txt充当数据库,并可以进行账号的登录和注册
  • 登录成功后进入系统,可以实现学生的增删改查
#注册页面
myfile = open(r'C:\Users\Administrator\Desktop\user.txt', 'a+')
b=0#标记位注册成功进入登录页面
print('--------------注册页面------------------')
while True:
    account = input('注册-账户:')
    a = 1  # 设置标记位,如果用户没被注册,a=1,注册了a=0,继续循环输入注册账户
    myfile.seek(0,0)#每次都保证从文件开头读
    for file_account in myfile:
        if account == file_account.split(':')[0]:# 将文件中储存的形式按:分割开,并取出第一个
            print('重新注册-账户:')
            a=0
            break#只能结束for的循环
    if a == 1:
        password1 = input('注册-密码:')
        password2 = input('注册-确认密码:')
        if password1 == password2:
            print('注册成功!')
            b=1
            buf = '%s:%s\n' % (account, password1)  # 将密码和账号储存为: account-password1
            myfile.write(buf)
            break
        else:
            print('!!密码不相同,请重新注册!!')
            continue
myfile.close()


#登录页面
if b==1:
    print('--------------登录页面------------------')
    myfile = open(r'C:\Users\Administrator\Desktop\user.txt', 'r')  # 只进行读文件
    i = 1  # 只允许用户输入三级账户密码
    islogin = 0  # 如果等于0,我没是没有登录的,用于跳出大循环
    a = 0  # 标记位,如果登录成功为1,登录失败还是0
    while True:
        if islogin == 0:
            if i > 3:
                print('三次均输入错误,再见!')
                break
            print('开始你的第%d次机会,如果错了你还有%d次机会' % (i, 3 - i))
            account = input('请输入你的账户:')
            pwd = input('请输入你的密码:')
            #       数据库中以(  账户:密码\n  )形式储存
            myfile.seek(0, 0)
            for buf in myfile:  # 遍历数据库中的每行数据,但是注意每行都有一个\n
                account_buf = buf.split(':')[0]  # 取到了账户
                pwd_buf = buf.split(':')[1]  # 取到了密码
                pwd_buf = pwd_buf.strip()  # 去掉密码后的\n
                if account == account_buf and pwd_buf == pwd:
                    print(account, ',欢迎进入系统')
                    islogin = 1  # 修改标记位,退出大循环
                    a = 1
                    break  # 只能跳出for循环,就是读取文件的for循环
            i += 1
            continue
        else:
            break
    myfile.close()


#系统页面
if a==1:
    print('--------------------------------')
    print('==欢迎进入学生管理系统==')
    print('====1.添加学生信息====')
    print('====2.删除学生信息====')
    print('====3.修改学生信息====')
    print('====4.查找学生信息====')
    print('====5.显示所有信息====')
    print('=====0.退出系统======')
    all_student = []  # 储存所有添加的学生信息
    while True:
        num = input('请输入你要进行的操作\n>>>')  # 用字符串来接受用户的操作
        if num == '1':  # 添加学生信息
            student = {}  # 将每个学员的信息储存为{'name':name,'age':age,'sex':sex}的形式
            name = input('请输入学生姓名:')
            age = input('请输入%s的年龄:' % name)
            sex = input('请输入%s的性别:' % name)
            student['name'] = name
            student['age'] = age
            student['sex'] = sex
            print('你输入的信息为:姓名:%s 年龄:%s 性别:%s' % (name, age, sex))
            print('===添加成功===')
            all_student.append(student)
            continue
        elif num == '2':  # 删除学生信息
            while True:
                del_name = input('请输入你要删除学生的名字:')
                count1 = 0  # 计数,记录下边for循环查找到列表中的第几个
                f = 0  # 计数负责让操作退出while循环
                for name_1 in all_student:
                    if name_1['name'] == del_name:
                        del all_student[count1]
                        print('==删除成功==')
                        f = 1
                        break
                    count1 += 1
                if f == 1:
                    break
                if f == 0:
                    print('没有找到!请重新输入:')
                    continue
        elif num == '3':  # 修改学生信息
            while True:
                m = 0  # 记录循环次数,索引号=m-1
                for modify_name1 in all_student:
                    modify_name = input('请输入你要修改的姓名:')
                    m += 1
                    if modify_name == modify_name1['name']:
                        break
                    else:
                        print('输入有误!')
                        continue
                while True:
                    num2 = input('请输入你要修改的内容:1.姓名 2.年龄 3.性别')  # 记录修改操作选项
                    if num2 == '1':
                        all_student[m - 1]['name'] = input('请输入修改后的姓名:')
                        break
                    elif num2 == '2':
                        all_student[m - 1]['age'] = input('请输入修改后的年龄')
                        break
                    elif num2 == '3':
                        all_student[m - 1]['sex'] = input('请输入修改后的性别:')
                        break
                    else:
                        print('输入有误,请重新输入:')
                        continue
                break
        elif num == '4':  # 查找单个学生信息
            while True:
                count2 = 0  # 负责计数,来退出循环
                find_name = input('输入你要查找的学生姓名:')
                for find_name1 in all_student:
                    if find_name == find_name1['name']:
                        print('该学生信息为:姓名:%s 年龄:%s 性别:%s' % (find_name1['name'], find_name1['age'], find_name1['sex']))
                        count2 = 1
                        break
                if count2 == 1:
                    break
                if count2 == 0:
                    print('没有查找到你要的姓名,请重新输入:')
                    continue
        elif num == '5':  # 显示所有学生信息
            print('姓名    年龄    性别')
            for display_name in all_student:
                print('%s      %s      %s' % (display_name['name'], display_name['age'], display_name['sex']))
            continue
        elif num == '0':  # 退出系统
            break
        else:
            print('输入有误,请重新输入!')
            continue

1.运行程序,进入注册页面
在这里插入图片描述
2.注册成功会会在桌面上创建一个user.txt的文件,做账号的数据库,创建成功后,进行登录,会逐行进行账号校验
在这里插入图片描述在这里插入图片描述
3.登录成功,进入系统,可以进行:增,删,改,查,显示全部的信息和退出功能
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张烫麻辣亮。

谢谢老板支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值