python(基于字典的学生管理系统)

在列表的基础上修改,采用字典的存储方法

具体代码如下:

#添加
def add_stu():
    print('*********添加学员**********')
    name = input('请输入学员姓名:')
    age = input('请输入学员的年龄:')
    sex = input('请输入学员性别(男/女):')
    phone = input('请输入手机号:')
    student = {'name':name,'age':age,'sex':sex,'phone':phone}
    student_list.append(student)
#查询
def query_stu(type):
    print('*************%s学员**************'%type)
    print('1.查询所有学员')
    print('2.输入学员姓名查询 ')
    num = int(input('选择操作:'))
    if num == 1:
        for x in range(0, len(student_list)):
            student = student_list[x]
            name = student['name']
            age = student['age']
            sex = student['sex']
            phone = student['phone']
            print('序号:%s 姓名:%s 年龄:%s 性别:%s 手机号:%s' % (x, name,age,sex,phone))
            print(student_list)

    else:
        name = input('请输入学员姓名:')
        while 1:
            rs = False
            for student in student_list:
                if student['name'] == name:
                    index = student_list.index(student,0,len(student_list))
                    print('序号:%s 姓名:%s 年龄:%s 性别:%s 手机号:%s' % (index,student_list[index]['name'],student_list[index][
                        'age'],student_list[index]['sex'],student_list[index]['phone']))
                    rs = True
            if rs == False:
                name = input('未找到学员,请重输:')
            else:
                break
def select_num(type):
    index = input('请选择要%s的学员序号:'%type)
    index = int(index)
    while index not in range(0, len(student_list)):
        index = int(input('选择的学员不存在,请重选:'))
    #返回选择的序号
    return index
#修改
def alter_stu():
    if len(student_list) == 0:
        print('没有学员信息,无法进行修改操作!')
        #强制结束函数的执行,return下面的代码都不会再执行
        return
    query_stu('修改')
    index = int(select_num('修改'))
    student = student_list[index]
    student['name'] = input('请输入修改后的姓名(%s):'%student['name'])
    student['age'] = input('请输入修改后的年龄(%s):'%student['age'])
    student['sex'] = input('请输入修改后的性别(%s):'%student['sex'])
    student['phone'] = input('请输入修改后的手机号(%s):'%student['phone'])
    print('修改学员成功')
#删除
def dele_stu():
    print('1.通过序号删除学员')
    print('2.删除全部学员')
    print('3.根据学员姓名删除')
    num = input('请选择操作:')
    num = int(num)
    while num not in range(1, 4):
        num = int(input('所输选项不存在,请重输:'))
    if num == 1:
        query_stu('删除')
        index = select_num('删除')
        rs = input('是否真的删除(y/n):')
        if rs == 'y':
            student_list.pop(index)
            print('删除成功')
        else:
            print('删除数据操作已取消!')
    elif num == 2:
        rs = input('是否真的删除(y/n):')
        if rs == 'y':
            student_list.clear()
            print('删除成功')
        else:
            print('删除数据操作已取消!')
    else:
        name = input('请输入想要删除学员的姓名:')
        rs = input('是否真的删除(y/n):')
        if rs == 'y':
            while 1:
                #创建一个空列表存放不符合情况的信息
                list = []
                for student in student_list:
                    #判断姓名是否存在列表中
                    if student['name'] != name:
                        #取出不符合情况的学员的索引
                        index = student_list.index(student)
                        #将不符合情况的学员添加到list[]
                        list.append(student_list[index])
                #将学员列表总长度与list的长度比较,

                if len(student_list) == len(list):
                    #若相等,则没有符合的姓名
                    name = input('序号不存在,请重新输入:')
                else:
                    # 若不相等,说明有符合情况的,则清除大列表,
                    student_list.clear()
                    #再把list中所有不符合的学员添加到大列表中
                    for dict in list:
                        student_list.append(dict)
                    break
            print('删除成功!')
        else:
            print('删除数据操作已取消!')

#声明一个大列表,存放学员姓名
student_list = []
while 1:
    print('****************学员管理系统*****************')
    print('*****************1.添加学员*****************')
    print('*****************2.修改学员*****************')
    print('*****************3.查询学员*****************')
    print('*****************4.删除学员*****************')
    print('*****************0.退出程序*****************')
    num = input('请选择你的操作:')
    num = int(num)
    while num not in range(0,5):
        num =int(input('您选择的选项不存在,请重选:'))
    if num == 1:
        #添加学员
        add_stu()
    elif num == 2:
        #修改学员
        alter_stu()
    elif num == 3:
        #查询学员
        query_stu('查询')
    elif num == 4:
        #删除学员
        dele_stu()
    else:
        print('退出程序')
        break


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值