python简单的学生信息管理系统-文件版

python简单的学生信息管理系统-文件版

  • 功能如下
  • 主函数部分
  • 增加学生信息
  • 修改学生信息
  • 删除学生信息
  • 查询学生
  • 显示所有学生的信息
  • 将数据录入文件
  • 读取文件数据

学习文件模块后,将之前做的学生信息管理系统添加文件模块。

功能如下

  1. 新增学生信息;
  2. 修改学生信息;
  3. 删除学生信息;
  4. 查询学生信息;
  5. 显示学生信息;
  6. 将数据录入文件;
  7. 读取文件数据;
  8. 退出系统。
    python简单的学生信息管理系统-文件版_第1张图片

主函数部分

这里定义一个列表L,用来存储学生信息。
python简单的学生信息管理系统-文件版_第2张图片

增加学生信息

将学生信息保存为字典添加到列表里。

def add():
    dict1 = {}
    sName = input("请输入学生姓名:")
    sAge = eval(input("请输入学生年龄:"))
    sNumber = eval(input("请输入学生学号:"))
    tele_num = eval(input("请输入手机号码:"))
    dict1["name"] = sName
    dict1["age"] = sAge
    dict1["sNumber"] = sNumber
    dict1["tele_num"] = tele_num
    L.append(dict1)
    print("增加成功")
    input("按任意键返回菜单")

在这里插入图片描述

修改学生信息

这里以学号为索引值,如果学号不在学生库里则提示无此学生。

def modify():
    num = eval(input("请输入学生学号:"))
    index1 = -1
    for i,dict in enumerate(L):
        if dict.get("sNumber") == num:
            index1 = i
            break
    if index1 != -1:
        L[index1]['name'] = input("请输入新的姓名:")
        L[index1]['age'] = eval(input("请输入新的年龄:"))
        L[index1]['sNumber'] = eval(input("请输入新的学号:"))
        L[index1]['tele_num'] = eval(input("请输入新的手机号:"))
        print("修改成功")
    else:
        print("无此学生")
    input("按任意键返回菜单")

删除学生信息

删除学生也是以学号为索引值,如果学号不在学生库里则提示无此学生。

def delete():
    num = eval(input("请输入要删除学生的学号:"))
    index1 = -1
    for i, dict in enumerate(L):
        if dict.get("sNumber") == num:
            index1 = i
            break
    if index1 != -1:
        del L[index1]
        print("删除成功")
    else:
        print("无此学生")
    input("按任意键返回菜单")

查询学生

查询成功此显示学生信息,否则提示无此学生。

def search():
    num = eval(input("请输入要查询学生的学号:"))
    index1 = -1
    for i, dict in enumerate(L):
        if dict.get("sNumber") == num:
            index1 = i
            break
    if index1 != -1:
        print("姓名:%s 年龄:%d 学号:%d 手机号码:%d" % (L[index1]["name"], L[index1]["age"], \
                                       L[index1]["sNumber"], L[index1]["tele_num"]))
    else:
        print("无此学生")
    input("按任意键返回菜单")

显示所有学生的信息

def prin():
    if len(L) == 0:
        print("无成员")
    else:
        for dict1 in L:
            print("姓名:%s 年龄:%d 学号:%d 手机号码:%d"%(dict1["name"], dict1["age"],\
                                       dict1["sNumber"], dict1["tele_num"]))
    input("按任意键返回菜单")

将数据录入文件

因为每个学生的信息是字典类型,所以录入之前先转化为字符串。

def write_file():
    file = open("student_list.data", 'w', encoding='utf-8')
    for i in L:
        file.write(str(i) + '\n')
    file.close()
    input("录入成功,按任意键返回菜单!")

读取文件数据

读取到的信息是字符串,可以使用eval()函数将信息变为原来的字典类型,再添加到列表里。

def read_file():
    try:
        file = open("student_list.data", 'r', encoding='utf-8')
        content = file.readlines()
        for i in content:
            L.append(eval(i))
        file.close()
        input("读取完成,按任意键返回菜单!")
    except:
        print("文件不存在")

你可能感兴趣的:(python简单的学生信息管理系统-文件版)