文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

学生信息系统(json模块解决数据持久化

2023-01-31 00:36

关注

将学生管理的案例,学生信息由原来的只有姓名,拓展为包含,姓名,年龄,两个属性;完成对应的增、删、查、改,操作

import json,os,time,sys
student_list = []
File_path = 'name.txt'
#从文件中读取之前存储的数据(考虑是否有对应文件的问题,要做文件是否存在的判断),然后将读取到的数据存储到列表
def dataRead(filepath):
    # 判断filepath这个路径对应的文件是否存在:
    if os.path.exists(filepath):
        print('找到提取文件')
        f1 = open(filepath,'r',encoding='utf-8')
        global student_list
        student_list = json.load(f1)
        print('学生信息',student_list)
        f1.close()
        print('读取数据成功')
    else:
        print('文件不存在')

def addStudent():

    name = input('请输入学生姓名:')
    age = int(input('请输入学生年龄:'))
    stu_dict = {
        'name':name,
        'age':age
    }
    student_list.append(stu_dict)
    print('学生信息添加成功,1秒后自动返回主菜单\n\n\n')
    time.sleep(1)

def delStudent():
    name = input('请输入要删除的学生姓名:')
    for stu in student_list:
        if name == stu['name']:
            student_list.remove(stu)
            print('删除成功')
        else:
            print('该学生信息不存在')

def updateStudent():
    name = input("请输入要修改的学生姓名:")
    for stu in student_list:
        if name == stu['name']:
            new_name = input("请输入修改后的姓名:")
            new_age = eval(input("请输入修改后的年龄:"))
            stu['name'] = new_name
            stu['age'] = new_age
            print('修改成功')
            break
    else:
        print('该学生信息不存在')
    # name = input('请输入要修改的学生姓名:')
    # age = int(input('请输入修改学生的年龄:'))
    # new_dict = {'name':name,'age':age}
    # if new_dict in student_list :
    #     index = student_list.index(new_dict)
    #
    #     new_name = input('请输入修改后的学生姓名:')
    #     new_age = int(input('请输入修改后的学生年龄:'))
    #
    #
    #     student_list[index]['name'] = new_name
    #     student_list[index]['age'] = new_age
    #     print('修改成功')
    # else:
    #
    #     print('该学生信息不存在')

def queryStudent():
    name = input('请输入要查询的学生姓名:')
    for stu in student_list:
        if name == stu['name']:
            print('学生信息:',stu)
            break
    else:

        print('该学生信息不存在')

def showAll():
    print('所有学生信息如下:')
    for stu in student_list:
        print('姓名:{},年龄:{}'.format(stu.get('name'),stu.get('age')))

def systemExit():
    dataWrite(File_path)
    print('谢谢使用')
    sys.exit()

#将列表中的数据写入文件
def dataWrite(filepath):
    f = open(filepath,'w',encoding='utf-8')
    json.dump(student_list,f)
    f.close()
    print('数据写入成功')
#从文件中加载数据
dataRead(File_path)
while True:
    print('1.添加学生')
    print('2.删除学生')
    print('3.修改学生')
    print('4.查询学生')
    print('5.展示所有')
    print('6.退出系统')
    num = input('请输入1-6的数字进入相应功能:')
    print('------'*6)
    if num == '1':
        addStudent()
    elif num == '2':
        delStudent()
    elif num == '3':
        updateStudent()
    elif num == '4':
        queryStudent()
    elif num == '5':
        showAll()
    elif num == '6':
        systemExit()
    else:
        print('输入有误')

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯