zoukankan      html  css  js  c++  java
  • 学生信息系统(json模块解决数据持久化)

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

    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秒后自动返回主菜单
    
    
    ')
        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('输入有误')
  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/ilovepython/p/10794890.html
Copyright © 2011-2022 走看看