Python 基于字典、列表的学生信息管理系统

def see_stu():  # 显示所有名片信息,包括 姓名、年龄、qq、qq邮箱、电话
    index = 0  # 从第一个开始显示
    if student_list:
        print("信息如下:")
        while index < len(student_list):
            print(
                '序号:%s 姓名:%s 年龄:%s QQ:%s QQ邮箱:%s 电话:%s' % (
                    index + 1, student_list[index]['name'], student_list[index][
                        'age'], student_list[index]['qq'], student_list[index]['qq_email'],
                    student_list[index]['phone']))
            index += 1
    else:
        print("信息为空!")


def check_ste():  # 查询操作
    if len(student_list) == 0:
        print('没有学生信息,无法进行查询操作!')
        return
    name = input("请输入学生姓名:")
    while 1:
        rs = 0
        for student in student_list:
            if student['name'] == name:
                index = student_list.index(student, 0, len(student_list))  # 查询该学生在 student_list 中的序号,因为有可能存在同名
                print(
                    '序号:%s  姓名:%s  年龄:%s  QQ:%s  QQ邮箱:%s  电话:%s' % (
                        index + 1, student_list[index]['name'], student_list[index][
                            'age'], student_list[index]['qq'], student_list[index]['qq_email'],
                        student_list[index]['phone']))
                rs = 1
        if rs == 0:
            name = input('没有找到该学生,请重新输入:')
        else:
            break


def operation_stu():  # 对学生信息进行增删查改
    while True:
        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:
            name = input("请输入姓名:")
            age = input("     年龄:")
            qq = input("      QQ:")
            qq_email = input("   QQ邮箱:")
            phone = input("     电话:")
            student = {'name': name, 'age': age, 'qq': qq, 'qq_email': qq_email, 'phone': phone}
            student_list.append(student)  # 向 student_list[] 列表中添加一个 student字典
            print("添加成功!")

        # 查询学生,按名字查询
        elif Num == 2:
            check_ste()

        # 修改学生信息,按名字修改
        elif Num == 3:
            if len(student_list) == 0:
                print('没有学生信息,无法进行修改操作!')
                break
            name = input("请输入要修改的学生姓名:")
            more_name_list = []  # 判断是否有重名,大于2表示有重名
            more_nameIndex_list = []  # 存 重名的姓名在 student_list 中的位置序号
            while 1:
                rs = 0
                for student in student_list:  # 给 more_name_list[] 、 mare_nameIndex_list[] 注入信息
                    if student['name'] == name:
                        index = int(student_list.index(student, 0, len(student_list)))
                        more_name_list.append(name)
                        more_nameIndex_list.append(index)

                if int(len(more_name_list)) == 1:
                    rs = 1
                    student = student_list[more_nameIndex_list[0]]
                    print("----修改系统-----")
                    print("----1.姓名 -----")
                    print("----2.年龄------")
                    print("----3.QQ-------")
                    print("----4.QQ邮箱----")
                    print("----5.电话------")
                    revise = int(input("请选择要修改的信息:"))
                    if revise == 1:
                        student['name'] = input("请输入修改后的姓名:")
                        print('修改成功!')
                    if revise == 2:
                        student['age'] = input("请输入修改后的年龄:")
                        print('修改成功!')
                    if revise == 3:
                        student['qq'] = input("请输入修改后的QQ:")
                        print('修改成功!')
                    if revise == 4:
                        student['qq_email'] = input("请输入修改后的QQ邮箱:")
                        print('修改成功!')
                    if revise == 5:
                        student['phone'] = input("请输入修改后的手机号:")
                        print('修改成功!')

                elif int(len(more_name_list)) >= 2:
                    rs = 1
                    i = 0
                    for student in student_list:
                        if student['name'] == name:
                            index = more_nameIndex_list[i]  # 查询该学生在 student_list 中的序号,因为有可能存在同名
                            print(
                                '序号:%s  姓名:%s  年龄:%s  QQ:%s  QQ邮箱:%s  电话:%s' % (
                                    i + 1, student_list[index]['name'], student_list[index][
                                        'age'], student_list[index]['qq'], student_list[index]['qq_email'],
                                    student_list[index]['phone']))
                            i += 1
                    check_number = int(input("请选择要修改的序号:"))
                    check_number = int(more_nameIndex_list[check_number - 1])
                    student = student_list[check_number]
                    print("----修改系统-----")
                    print("----1.姓名 -----")
                    print("----2.年龄------")
                    print("----3.QQ-------")
                    print("----4.QQ邮箱----")
                    print("----5.电话------")
                    revise = int(input("请选择要修改的信息:"))
                    if revise == 1:
                        student['name'] = input("请输入修改后的姓名:")
                        print('修改成功!')
                    if revise == 2:
                        student['age'] = input("请输入修改后的年龄:")
                        print('修改成功!')
                    if revise == 3:
                        student['qq'] = input("请输入修改后的QQ:")
                        print('修改成功!')
                    if revise == 4:
                        student['qq_email'] = input("请输入修改后的QQ邮箱:")
                        print('修改成功!')
                    if revise == 5:
                        student['phone'] = input("请输入修改后的手机号:")
                        print('修改成功!')
                if rs == 0:
                    name = input('没有找到该学生,请重新输入:')
                else:
                    break

        # 删除学生,按名字删除
        elif Num == 4:
            if len(student_list) == 0:
                print('没有学生信息,无法进行删除操作!')
                break
            name = input("请输入要删除的学生姓名:")
            more_name_list = []  # 判断是否有重名,大于2表示有重名
            more_nameIndex_list = []  # 存 重名的姓名在 student_list 中的位置序号
            while 1:
                rs = 0
                for student in student_list:  # 给 more_name_list[] 、 mare_nameIndex_list[] 注入信息
                    if student['name'] == name:
                        index = int(student_list.index(student, 0, len(student_list)))
                        more_name_list.append(name)
                        more_nameIndex_list.append(index)   # more-index_list[] 中存放 有该 ‘名字’ 在 student_list[] 中 的序号

                if int(len(more_name_list)) == 1:  # 当输入的名字没有重名,则执行此操作
                    index = more_nameIndex_list[0]
                    del student_list[index]
                    print('删除成功!')
                    rs = 1
                elif int(len(more_name_list)) >= 2:  # 当输入的名字存在重名时,则执行此操作
                    i = 0
                    for student in student_list:
                        if student['name'] == name:
                            index = more_nameIndex_list[i]  # 查询该学生在 student_list 中的序号,因为有可能存在同名
                            print(
                                '序号:%s  姓名:%s  年龄:%s  QQ:%s  QQ邮箱:%s  电话:%s' % (
                                    i + 1, student_list[index]['name'], student_list[index][
                                        'age'], student_list[index]['qq'], student_list[index]['qq_email'],
                                    student_list[index]['phone']))
                            i += 1
                    del_number = int(input("请选择要删除的序号:"))
                    del_number = int(more_nameIndex_list[del_number - 1])
                    del student_list[del_number]
                    print("删除成功!")
                    rs = 1
                if rs == 0:
                    name = input('没有找到该学生,请重新输入:')
                else:
                    break

        # 退出当前页面
        else:
            print("退出成功!")
            break


student_list = []  # 声明一个大列表,存放学生信息
while True:
    print("----------名片管理系统---------")
    print("          1.查看名片          ")
    print("          2.信息管理          ")
    print("          0.退出程序          ")
    print("-----------------------------")

    num = input("请选择你的操作:")
    num = int(num)
    while num not in range(0, 3):
        num = int(input("您选择的选项不存在,请重选:"))
    if num == 1:
        # 查看功能,并进行相关操作(增删查改)
        see_stu()

    elif num == 2:
        # 显示全部的名片信息
        operation_stu()
    else:
        # 退出程序
        print("已成功退出程序!")
        break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA小徐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值