栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

学员管理系统

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学员管理系统

大家在学习编程语言的时候,有时候会遇到让编程一个简单的系统等的问题。比如我在学习python的时候,就让编程如下一样的一个学员管理信息的系统:

 一个可以添加学员信息,删除学员信息,修改学员信息,查询学员信息,显示所有学员信息和退出这个学员管理系统的多个功能组合的系统。代码如下:

# 函数加强过程:递归+lambda表达式+高阶函数三者的综合应用
# 系统规定的就是不允许重名
# 定义功能函数界面

def info_print():
    print('请选择功能------')
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员')
    print('4.查询学员')
    print('5.显示所有学员')
    print('6.退出系统')
    print('-' * 20)

# 准备空列表接收学员信息
info = []

# 添加
def add_info():
    # 先用户输入信息
    new_id = input('请输入学号')
    new_name = input('请输入名字')
    new_tel = input('请输入手机号')
    # 声明全局变量info,因为数据是用字典存入这个空列表
    global info
    # 再判断是否已经有输入的学员姓名信息,有就提示用户,不再执行下面的代码
    for i in info:
        if new_name == i['name']:
            print('此用户信息已经存在')
            # 加return退出当前的函数,后面的代码就不执行了
            return
    # 先准备空字典用于输入信息
    info_dict = {}
    # 然后字典新增数据
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    # 列表追加字典数据
    info.append(info_dict)
    print(info)

# 删除
def del_info():
    del_name = input('请输入要删除的学员的姓名:')
    global info
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            # 系统不允许重名,删除了一个之后后面的就不需要再遍历了,所以要break退出循环
            break
    else:
        print('该学员不存在')
    print(info)

# 修改
def alter_info():
    alter_name = input('请输入要修改的学员的姓名:')
    global info
    for i in info:
        if alter_name == i['name']:
            # 学员存在就修改手机号码,不存在就无法执行修改
            i['tel'] = input('请输入新的手机号:')
            # 找到要修改的就不用再遍历了,停止循环
            break
    else:
        print('该学员不存在')
    print(info)

# 查询
def search_info():
    search_name = input('请输入要查询的学员的姓名:')
    global info
    for i in  info:
        if search_name == i['name']:
            print('查找到学员信息如下:.......')
            # 引号嵌套必须区分开,不然会出现错误
            print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")
            break
    else:
        print('该学员不存在')
    print(info)

# 显示所有
def print_all():
    # 加制表符t就是为了对齐隔开分别打印的信息,使得更美观
    print('学号t姓名t手机号')
    for i in info:
        # 因为这里就是全部打印,就不需要声明全局变量了
        print(f'{i["id"]}t{i["name"]}t{i["tel"]}')

# 系统功能因为需要循环使用,直到用户输入6才退出系统
while True:
    # 1.显示功能界面;上面定义函数,下面调用
    info_print()

    # 2.用户输入功能序号;因为上面接收到的数据类型是字符串,而这里用int就是改变数据类型为整型
    user_num = int(input('请输入功能序号:'))

    # 3.按照用户输入的功能序号去执行不同功能(函数);用到多重判断,因为不同序号执行不同功能;所有存储学员信息是全局变量
    if user_num == 1:
        add_info()
    elif user_num == 2:
        del_info()
    elif user_num == 3:
        alter_info()
    elif user_num == 4:
        search_info()
    elif user_num == 5:
        print_all()
    elif user_num == 6:
        # 因为现在全部的函数调用都在while True循环内,所以要退出系统就是要终止while True循环 -- break
        exit_flag = input('确定要退出吗?yes or no')
        if exit_flag == 'yes':
            # break终止的就是就近的,也就是while True循环,所以不去封装退出函数,否则会出现不必要的问题
            break
    # 但是如果输入了1-6以外的数字呢是无法继续执行功能的,所以要写明特殊情况
    else:
        print('输入的功能序号有误')
 

如上就是我所编写的关于这个普通版学员管理系统的代码,根据不同的序号执行不同的功能来对学员信息进行处理。以后还会写面向对象版的学员管理系统,是另外一种版本。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号