Python可以保存读取的学生管理系统

这几天闲着没事干给朋友写了个学生管理系统,这个管理系统是用基本的字典和列表做成的,功能有

1.        学生基本信息录入
2.        学生基本信息显示
3.        学生基本信息保存
4.        学生基本信息删除
5.        学生基本信息修改
6.        学生基本信息查询
0.        -退出系统并保存-

废话不多说,上效果图

功能1:学生基本信息录入

功能2:学生基本信息显示

功能3:学生基本信息保存,这会保存到与文件同级目录的txt文件

功能4:学生基本信息删除

功能5:学生基本信息修改

功能6:学生基本信息查询

功能0:保存并退出,这会保存到与文件同级目录的txt文件

下面是代码

import random
#=============================全局变量=============================================#
total_student = []
chance = 5
passw = random.randint(0,99999)
#=============================全局变量=============================================#
def pwd():
    global chance
    global passw
    print(passw)
    while True:
        try:
            password = int(input('请输入秘密:'))
            if password == passw:
                print('密码正确')
                print('-' * 30)
                action()
                break
            if chance ==1:
                print('无剩余次数,密码更换!')
                passw = random.randint(0,99999)
                print(passw)
                chance +=4
                print('-' * 30)
            else:
                chance-=1
                print(f'密码错误,剩余次数{chance}')
                print('-'*30)
        except:
            print('请输入有效字符!')
            print('-' * 30)
def add_student():
    student_name = input('请输入需要添加学生的名字:')
    student_number = input('请输入需要添加学生的学号:')
    student_sex = input('请输入需要添加学生的性别:')
    student_age = input('请输入需要添加学生的年龄:')
    if len(student_name)>=1 and len(student_number)>=1 and len(student_sex)>=1 and len(student_age)>=1 and not ' ' in student_name and not ' ' in student_number and not ' ' in student_sex and not ' ' in student_age:
        addstudent = {'name':student_name,'number':student_number,'sex':student_sex,'age':student_age}
        total_student.append(addstudent)
        print(f'{student_name}的信息已添加!')
        print('------目前有这些学生------' + '\n姓名:\t学号:\t性别:\t年龄:')
        for student in total_student:
            if len(student['name']) == 2:
                print(f"{student['name']}\t\t{student['number']}\t{student['age']}\t\t{student['sex']}")
            elif len(student['name']) == 3:
                print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
            elif len(student['name']) == 4:
                print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
        print('-'*30)
    else:
        print('-------请输入正确信息!-------')
def show_student():
    print('--------目前有这些学生-----------' + '\n姓名:\t学号:\t性别:\t年龄:')
    try:
        for student in total_student:
            if len(student['name']) ==2:
                print(f"{student['name']}\t\t{student['number']}\t{student['age']}\t\t{student['sex']}")
            elif len(student['name']) ==3:
                print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
            elif len(student['name']) ==4:
                print(f"{student['name']}\t{student['number']}\t{student['age']}\t\t{student['sex']}")
        print('-' * 30)
    except:
        print('')
def del_student():
    student_name = input('请输入需要删除学生的名字:')
    student_number = input('请输入需要删除学生的学号:')
    for student in total_student:
        if student_name == student['name'] and student_number == student['number']:
            print(f'{"-" * 30}\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
            print('-' * 30)
            confirm = input('是否删除:')
            if confirm =='是':
                print(f'----{student["name"]}的信息已删除!----')
                total_student.remove(student)
                print('-' * 30)
                break
            elif confirm =='否':
                print('-' * 30)
                break
            else:
                print('-------请确认-------')
                print('-' * 30)
                break
    else:
        print('-------没找到该学生的信息------')
def search_student():
    student_name = input('请输入需要查询学生的名字:')
    student_number = input('请输入需要查询学生的学号:')
    for search in total_student:
        if student_name == search['name'] and student_number ==search['number']:
            if len(search['name']) == 2:
                print('------该学生的信息为:------' + '\n姓名:\t学号:\t性别:\t年龄:')
                print(f"{search['name']}\t\t{search['number']}\t{search['age']}\t\t{search['sex']}")
            elif len(search['name']) == 3:
                print('------该学生的信息为:------' + '\n姓名:\t学号:\t性别:\t年龄:')
                print(f"{search['name']}\t{search['number']}\t{search['age']}\t\t{search['sex']}")
            elif len(search['name']) == 4:
                print('--------该学生的信息为:-------' + '\n姓名:\t学号:\t性别:\t年龄:')
                print(f"{search['name']}\t{search['number']}\t{search['age']}\t\t{search['sex']}")
            print('-' * 30)
            break
    else:
        print('----该学生的信息不存在----')
        print('-' * 30)
def replace_student():
    student_name = input('请输入需要修改学生的名字:')
    student_number = input('请输入需要修改学生的学号:')
    try:
        for student in total_student:
            if student_name == student['name'] and student_number == student['number']:
                print('-'*30)
                new_name = input('请输入需要修改成学生的名字:')
                new_number = input('请输入需要修改成学生的学号:')
                new_sex = input('请输入需要修改成学生的性别:')
                new_age = input('请输入需要修改成学生的年龄:')
                if len(new_name) >= 1 and len(new_number) >= 1 and len(new_sex) >= 1 and len(new_age) >= 1 and not ' ' in new_name and not ' ' in new_number and not ' ' in new_sex and not ' ' in new_age:
                    if len(student_name) == 2 and len(new_name) ==2:
                        print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
                        print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
                    elif len(student_name) == 2 and len(new_name) ==3:
                        print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
                        print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
                    elif len(student_name) ==3and len(new_name) ==3:
                        print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
                        print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
                    elif len(student_name) ==4:
                        print(f'---------修改前--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{student["name"]}\t{student["number"]}\t{student["sex"]}\t\t{student["age"]}')
                        print(f'---------修改后--------\n该学生的信息为:\n姓名:\t学号:\t性别:\t年龄:\n{new_name}\t\t{new_number}\t{new_sex}\t\t{new_age}\n---------------------')
                    confirm = input('是否修改:')
                    if confirm =='是':
                        student['name'] = new_name
                        student['number'] = new_number
                        student['sex'] = new_sex
                        student['age'] = new_age
                        print('--------修改成功--------')
                    elif confirm =='否':
                        print('-' * 30)
                        continue
                    else:
                        print('-------请确认是否修改-------')
                        print('-' * 30)
                    break
                else:
                    print('-------请输入正确信息!-------')
                    break
        else:
            print('-------该学生信息不在记录中!-------')
            print('-' * 30)
    except:
        print('-------该学生信息不在记录中!-------')
        print('-' * 30)
def action():
    load_info()
    while True:
        action_list = ['-------请选择需要执行的操作-------', '1.\t\t学生基本信息录入', '2.\t\t学生基本信息显示', '3.\t\t学生基本信息保存', '4.\t\t学生基本信息删除',
                       '5.\t\t学生基本信息修改', '6.\t\t学生基本信息查询', '0.\t\t-退出系统并保存-']
        for action in action_list:
            print(action,end='\n')
        print('-'*30)
        action_input = input('请选择:')
        if action_input =='1':
            print('-' * 30)
            add_student()
        elif action_input == '2':
            print('-' * 30)
            show_student()
        elif action_input == '3':
            print('-' * 30)
            save_info()
        elif action_input == '4':
            print('-' * 30)
            del_student()
        elif action_input == '5':
            print('-' * 30)
            replace_student()
        elif action_input == '6':
            print('-' * 30)
            search_student()
        elif action_input == '0':
            print('-' * 30)
            save_info()
            break
        else:
            print('------请选择你需要进行的操作------')
def save_info():
    try:
        with open('student_info.txt', 'w', encoding='utf-8') as f:
            f.write(str(total_student))
        print('==========数据保存成功===========')
    except:
        print('==========数据保存失败===========')
def load_info():
    students = []
    try:
        with open('student_info.txt', 'r', encoding='utf-8') as w:
            students.append(eval(w.read()))
            for i in students:
                for x in i:
                    total_student.append(x)
        print('==========读取数据成功===========')
    except:
        print('==========读取数据失败==========')
if __name__ == '__main__':
    pwd()

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值