python学生管理系统文件版,增删改查功能齐全

内容不是很完善,多多见谅。
基础功能测试没有问题
在这里插入图片描述

import os
name_table = []  # 空列表 临时存储数据


# 添加学生函数
def add_student():
    load_student()
    user_id = input("请输入学生学号:")
    user_name = input("请输入学生姓名:")
    user_tel = input("请输入手机号:")
    global name_table  # 声明全局变量
    for i in name_table:
        if user_id == i['id']:
            print('不允许学号重复')
            return  # 退出函数
    student_dict = {'id': user_id, 'name': user_name, 'tel': user_tel}  # 创建字典
    name_table.append(student_dict)  # addend结尾追加数据
    # 新增成功保存数据
    access_student()


# 删除学生函数
def del_student():
    while True:
        global name_table
        del_id = input("请输入要删除的学号:")
        if del_id == "wq":
            break
        else:
            for i in name_table:
                if del_id == i["id"]:
                    name_table.remove(i)
                    # 删除成功保存数据
                    access_student()
                    print(f"学号{i}删除成功\n ****数字wq退出****")
                    break
            else:
                print(f'学号{del_id}不存在重新输入!\n ****数字wq退出****')


# 修改学生函数
def modify_student():
    modify_id = input("请输入要修改的学号:")
    global name_table
    while True:
        if modify_id == "wq":
            break
        else:
            for i in name_table:
                if modify_id == i["id"]:
                    i['id'] = input("请输入新学号")
                    i['name'] = input("请输入新姓名")
                    i['tel'] = input("请输入新手机号")
                    print(f"学{modify_id}修改成功,新数据是:{i['id']}已更新到文件库")
                    # 修改成功保存数据
                    access_student()
                    break
            else:
                print(f'学号{modify_id}不存在重新输入!\n ****数字wq退出****')
                break
        break


# 查找学生函数
def query_student():
    global name_table
    query_id = input("请输入要查询的学号")
    global name_table
    for i in name_table:
        if query_id == i["id"]:
            print(f"学号:{i['id']} 姓名:{i['name']} 手机号:{i['tel']}")
            break
    else:
        print(f'学号{query_id}不存在重新输入!\n ****数字wq退出****')


# 显示学生函数
def table_student():
    print("学号\t姓名\t手机号")
    # 变量学生信息列表
    for i in name_table:
        print(f"{i['id']} \t {i['name']} \t{i['tel']}")


# 保存数据到文件
def access_student():
    # w+模式不存在创建文件
    student_f = open("student.txt", 'w+', encoding="utf-8")
    # write 写入数据
    student_f.write(str(name_table))
    # 关闭文件
    student_f.close()


# 读取student.txt文件,不存在创建
def load_student():
    # 判断student.txt文件是否存在
    if os.path.exists("student.txt"):
        student_data_f = open('student.txt', 'r', encoding='utf-8')
        # 读取数据
        aa = student_data_f.read()
        # 声明全局变量
        global name_table
        # 复制并转换数据类型
        name_table = eval(aa)
        # 关闭文件
        student_data_f.close()
    else:
        # 创建student文件
        student_data_f = open('student.txt', 'w', encoding='utf-8')
        # 插入[]防止数据为空调用报错
        aa = student_data_f.write("[]")
        student_data_f.close()


load_student()
while True:
    print("1:添加学生\n2:删除学生\n3:修改学生\n4:查询学生\n5:显示所有学生\n6:退出系统\n7:保存数据")
    a = int(input("编号:"))
    if a == 1:
        add_student()
    elif a == 2:
        del_student()
    elif a == 3:
        modify_student()
    elif a == 4:
        query_student()
    elif a == 5:
        table_student()
    elif a == 6:
        print("退出管理系统")
        break
    elif a == 7:
        access_student()
    else:
        print("指令错误!!!")
        break
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值