python 学生管理系统 (课堂阶段作业)(附代码)

        老师发布的python作业,还有很多不是那么让人舒服的地方,但随便用用还是行的,代码可以直接运行。

代码部分:

print('-' * 55)
print('\033[1;31m该系统没有记忆功能,一旦退出系统,所有录入学生信息将会被清除!!!\033[0m')
print('-' * 55)


# 定义菜单
def menu():
    print(
        '*' * 20 + '\n'
        '1.添加学生信息\n'
        '2.查询学生信息\n'
        '3.删除学生信息\n'
        '4.修改学生信息\n'
        '5.列出所有学生信息\n'
        '6.退出系统'
    )
    print('*' * 20)


# 定义学生列表
listStudent = []


# 使的系统能循环执行
while True:
    # 列出菜单
    menu()

    # 用户选择执行功能
    key = input('请输入要执行的功能:')

    # 执行添加功能
    if key == '1':
        # 用户输入学生信息
        name = input('请输入学生姓名:')
        num = input('请输入学生的学号:')
        gender = input('请输入学生性别:')
        # 判断学号是否重复
        for check in listStudent:
            while check['num'] == num:
                num = input('学号已被添加,请再次输入:')
                continue
            else:
                break
        # 对数据进行存储
        student = {'name': name, 'num': num, 'gender': gender}
        listStudent.append(student)
        print('\033[1;34m成功添加\033[0m')

    # 执行查询功能
    elif key == '2':
        # 用户输入学号
        check_num = input('请输入要查询的学生的学号:')
        # 提取要求学号学生信息
        i = 0
        check = []
        for check in listStudent:
            if check['num'] == check_num:
                i = 1
                break
        if i == 1:
            print('\033[1;34m姓名:%s\n学号:%s\n性别:%s\n\033[0m' % (check['name'], check['num'], check['gender']))
        elif i == 0:
            print('\033[1;31m没有找到该学生\033[0m')

    # 执行删除功能
    elif key == '3':
        # 用户输入学号
        check_num = input('请输入要删除的学生的学号:')
        # 查找所选学生
        i = 0
        j = 0
        for check in listStudent:
            if check['num'] == check_num:
                j = 1
                print('\033[1;34m删除成功!\033[0m')
                break
            else:
                i = i + 1
        # 删除要求学号学生信息
        if j == 1:
            del listStudent[i]
        else:
            print('\033[1;31m未找到该学生\033[0m')

    # 执行修改功能
    elif key == '4':
        # 用户输入学生学号和要修改的信息
        check_who = input('请输入要修改的学生学号:')
        check_what = input('请输入要修改的信息:\n1.姓名\n2.学号\n3.性别\n')
        # 修改姓名
        if check_what == '1':
            i = 0
            check = []
            for check in listStudent:
                if check['num'] == check_who:
                    i = 1
            if i == 1:
                check['name'] = input('请输入修改后的姓名:')
                print('\033[1;34m修改成功\033[0m')
            else:
                print('\033[1;31m没有找到该学生\033[0m')

        # 修改学号
        elif check_what == '2':
            i = 0
            check = 0
            for check in listStudent:
                if check['num'] == check_who:
                    i = 1
            if i == 1:
                check_num = input('请输入修改后的学号:')
                # 判断学号是否重复
                j = 0
                for temp in listStudent:
                    if temp['num'] == check_num:
                        j = 1
                    else:
                        check['num'] = check_num
                        print('\033[1;34m修改成功!\033[0m')
                if j == 1:
                    print('\033[1;31m学号重复,修改失败\033[0m')
            else:
                print('\033[1;31m未找到学号!\033[0m')

        # 修改性别
        elif check_what == '3':
            i = 0
            check = []
            for check in listStudent:
                if check['num'] == check_who:
                    i = 1
            if i == 1:
                check['gender'] = input('请输入修改后的性别:')
                print('\033[1;34m修改成功\033[0m')
            else:
                print('\033[1;31m没有找到该学生\033[0m')

    # 执行列出学生信息功能
    elif key == '5':
        print('\033[1;34m姓名\t 学号\t 性别\t\033[0m')
        # 遍历所有学生信息并打印
        for check in listStudent:
            print('%s\t %s\t %s\t' % (check['name'], check['num'], check['gender']))

    # 退出程序
    elif key == '6':
        print('\033[1;34m成功退出!\033[0m')
        break

    else:
        print('*' * 20)
        print('\033[1;31m请输入正确指令!\033[0m')
        print('*' * 20)

效果图:

         这次代码基本都有解释,能够一目了然,这是第一次写这种比较小的程序,所以在做之前还是有参照的,参照文章链接python学生管理系统


改进后的代码:

print('-' * 55)
print('\033[1;31m该系统没有记忆功能,一旦退出系统,所有录入学生信息将会被清除!!!\033[0m')
print('-' * 55)


# 定义菜单
def menu():
    print(
        '*' * 20 + '\n'
                   '1.添加学生信息\n'
                   '2.查询学生信息\n'
                   '3.删除学生信息\n'
                   '4.修改学生信息\n'
                   '5.列出所有学生信息\n'
                   '6.学生成绩排序\n'
                   '7.退出系统'
    )
    print('*' * 20)


# 定义学生列表
listStudent = [
    {'name': '花火', 'num': '123456789', 'gender': '男', 'chinese': 60, 'math': 60, 'english': 60, 'total': 120},
    {'name': '火花', 'num': '987654321', 'gender': '男', 'chinese': 100, 'math': 100, 'english': 100, 'total': 300}
]


# 添加函数
def add_student():
    name = input('请输入学生姓名:')
    num = input('请输入学生的学号:')
    gender = input('请输入学生性别:')
    chinese = int(input('请输入学生语文成绩:'))
    math = int(input('请输入学生数学成绩:'))
    english = int(input('请输入学生英语成绩:'))
    total = chinese + math + english
    # 判断学号是否重复
    for check in listStudent:
        while check['num'] == num:
            num = input('学号已被添加,请再次输入:')
            continue
        else:
            break
    # 对数据进行存储
    student = {'name': name, 'num': num, 'gender': gender, 'chinese': chinese, 'math': math, 'english': english, 'total': total}
    listStudent.append(student)
    print('\033[1;34m成功添加\033[0m')

# 查找函数
def query_student():
    # 用户输入学号
    check_num = input('请输入要查询的学生的学号:')
    # 提取要求学号学生信息
    i = 0
    check = []
    for check in listStudent:
        if check['num'] == check_num:
            i = 1
            break
    if i == 1:
        print('\033[1;34m姓名:%s\n学号:%s\n性别:%s\n语文成绩:%d\n数学成绩:%d\n英语成绩:%d\n总成绩:%d\n\033[0m' % (
        check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
    elif i == 0:
        print('\033[1;31m没有找到该学生\033[0m')

# 删除函数
def delete_student():
    # 用户输入学号
    check_num = input('请输入要删除的学生的学号:')
    # 查找所选学生
    i = 0
    j = 0
    for check in listStudent:
        if check['num'] == check_num:
            j = 1
            print('\033[1;34m删除成功!\033[0m')
            break
        else:
            i = i + 1
    # 删除要求学号学生信息
    if j == 1:
        del listStudent[i]
    else:
        print('\033[1;31m未找到该学生\033[0m')

# 修改函数
def revise_student():
    # 用户输入学生学号和要修改的信息
    check_who = input('请输入要修改的学生学号:')
    check_what = input('请输入要修改的信息:\n1.姓名 2.学号 3.性别\n4.语文 5.数学 6.英语\n')
    # 修改姓名
    if check_what == '1':
        i = 0
        check = []
        for check in listStudent:
            if check['num'] == check_who:
                i = 1
                break
        if i == 1:
            check['name'] = input('请输入修改后的姓名:')
            print('\033[1;34m修改成功\033[0m')
        else:
            print('\033[1;31m没有找到该学生\033[0m')

    # 修改学号
    elif check_what == '2':
        i = 0
        check = 0
        for check in listStudent:
            if check['num'] == check_who:
                i = 1
                break
        if i == 1:
            check_num = input('请输入修改后的学号:')
            # 判断学号是否重复
            j = 0
            for temp in listStudent:
                if temp['num'] == check_num:
                    j = 1
                else:
                    check['num'] = check_num
                    print('\033[1;34m修改成功!\033[0m')
            if j == 1:
                print('\033[1;31m学号重复,修改失败\033[0m')
        else:
            print('\033[1;31m未找到学号!\033[0m')

    # 修改性别
    elif check_what == '3':
        i = 0
        check = []
        for check in listStudent:
            if check['num'] == check_who:
                i = 1
                break
        if i == 1:
            check['gender'] = input('请输入修改后的性别:')
            print('\033[1;34m修改成功\033[0m')
        else:
            print('\033[1;31m没有找到该学生\033[0m')

    # 修改语文分数
    elif check_what == '4':
        i = 0
        check = []
        for check in listStudent:
            if check['num'] == check_who:
                i = 1
                break
        if i == 1:
            check['chinese'] = int(input('请输入修改后的语文分数:'))
            check['total'] = check['chinese'] + check['math'] + check['english']
            print('\033[1;34m修改成功\033[0m')
        else:
            print('\033[1;31m没有找到该学生\033[0m')

    # 修改数学分数
    elif check_what == '5':
        i = 0
        check = []
        for check in listStudent:
            if check['num'] == check_who:
                i = 1
                break
        if i == 1:
            check['math'] = int(input('请输入修改后的数学分数:'))
            check['total'] = check['chinese'] + check['math'] + check['english']
            print('\033[1;34m修改成功\033[0m')
        else:
            print('\033[1;31m没有找到该学生\033[0m')

    # 修改英语分数
    elif check_what == '6':
        i = 0
        check = []
        for check in listStudent:
            if check['num'] == check_who:
                i = 1
                break
        if i == 1:
            check['english'] = int(input('请输入修改后的英语分数:'))
            check['total'] = check['chinese'] + check['math'] + check['english']
            print('\033[1;34m修改成功\033[0m')
        else:
            print('\033[1;31m没有找到该学生\033[0m')

# 列出函数
def all_student():
    print('\033[1;34m姓名\t  学号\t\t\t 性别\t 语文成绩\t 数学成绩\t 英语成绩\t 总成绩\t\033[0m')
    # 遍历所有学生信息并打印
    for check in listStudent:
        str(check['chinese'])
        if check['chinese'] < 100:
            print('%s\t %s\t %s\t\t %s\t\t\t %s\t\t\t %s\t\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
        elif check['chinese'] == 100:
            print('%s\t %s\t %s\t\t %s\t\t %s\t\t %s\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))

# 排序函数
def sort_student():
    # 对学生总成绩从大到小排序
    sortedlist = sorted(listStudent, key=lambda s: s['total'], reverse=True)
    print('\033[1;34m姓名\t  学号\t\t\t 性别\t 语文成绩\t 数学成绩\t 英语成绩\t 总成绩\t\033[0m')
    for check in sortedlist:
        str(check['chinese'])
        if check['chinese'] < 100:
            print('%s\t %s\t %s\t\t %s\t\t\t %s\t\t\t %s\t\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))
        elif check['chinese'] == 100:
            print('%s\t %s\t %s\t\t %s\t\t %s\t\t %s\t\t %s' % (check['name'], check['num'], check['gender'], check['chinese'], check['math'], check['english'], check['total']))


while True:
    # 列出菜单
    menu()

    # 用户选择执行功能
    key = input('请输入要执行的功能:')

    # 执行添加功能
    if key == '1':
        add_student()

    # 执行查询功能
    elif key == '2':
        query_student()

    # 执行删除功能
    elif key == '3':
        delete_student()

    # 执行修改功能
    elif key == '4':
        revise_student()

    # 执行列出学生信息功能
    elif key == '5':
        all_student()

    # 执行排序功能
    elif key == '6':
        sort_student()

    # 退出程序
    elif key == '7':
        print('\033[1;34m成功退出!\033[0m')
        break

    # 菜单输入错误提示
    else:
        print('*' * 20)
        print('\033[1;31m请输入正确指令!\033[0m')
        print('*' * 20)

增加了学生语文,数学和英语分数,还有加上了根据学生成绩进行排序的功能。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值