python---函数(2)- 学员管理系统

一、应用:学员管理系统

1.1 系统简介

需求:进入学生显示系统功能界面,功能如下:
1.添加学员
2.删除学员
3.修改学员信息
4.查询学员信息
5.显示所有学员信息
6.退出系统
系统共6 个功能,用户根据自己的需求选取

1.2 步骤分析

1.显示功能界面
2.用户输入功能序号
3.根据用户驶入的功能序号,执行不同的功能(函数)
3.1定义函数
3.2调用函数

1.3 需求实现

1.3.1 显示功能界面

定义函数print_info ,负责显示系统功能

# 定义功能界面函数
def print_info():
    print('请选择功能------------')
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员信息')
    print('4.查询学员信息')
    print('5.显示所有学员信息')
    print(' 6.退出系统')
#1.显示功能界面
print_info()

1.3.2 用户输入功能序号

user_num=int(input('请输入功能序号:'))

1.3.3 按照用户输入的功能序号,执行不同的功能(函数)

    if user_num ==1:
        print('添加')
    elif user_num ==2:
        print('删除')
    elif user_num ==3:
        print('修改')
    elif user_num ==4:
        print('查询')
    elif user_num ==5:
        print('显示所有')
    elif user_num ==6:
        print('退出系统')

实际工作进行调优代码:
1.用户选择系统功能的代码需要循环使用,直到用户主动退出系统
2.如果用户输入1-6以外的数字,需要提示用户

while True:
    #1.显示功能界面
    print_info()
    #2.用户输入功能序号
    user_num=int(input('请输入功能序号:'))
    #3.按照用户输入的功能序号,执行不同的功能(函数)
    #如果用户输入1.执行添加,用户输入2.执行删除 .......多重判断
    if user_num ==1:
        print('添加')
    elif user_num ==2:
        print('删除')
    elif user_num ==3:
        print('修改')
    elif user_num ==4:
        print('查询')
    elif user_num ==5:
        print('显示所有')
    elif user_num ==6:
        print('退出系统')
    else:
        print('输入的功能序号有误,请重新输入')

1.3.4 定义不同功能的函数

所有功能函数都按时操作学员信息,所有存储所有学员信息应该是一个全局变量,数据类型是列表

info[]
1.3.4.1 添加学员
  • 需求分析
  1. 接受用户输入学员信息,并保存

  2. 判断是否添加学员信息
    2.1 如果学员姓名已经存在,则报错显示
    2.2 如果学员姓名不存在,则准备空字典,将用户输入的数据追加到字典,再列表追加字典数据

  3. 对应的if条件成立的位置调用该函数

  • 代码实现
# 等待存储所有学员信息
info= []  # 全局变量
# 1.3.4 添加学员
#1.3.4.1添加学员信息的函数
def add_info():
    """添加学员函数"""
    #1.接受用户输入的学员信息
    new_id = input('请输入学号:')
    new_name = input('请输入名字:')
    new_tel = input('请输入手机号:')
    #2.判断是否添加学员信息
    global info   # 修改全局变量
    #2.1 不允许姓名重名,判断输入的姓名、学号、手机号码
    for i in info:
        if new_name == i['name']:
            print('此用户已经存在')
            return    # return退出当前函数,导致return下方的所有代码(函数体内部)不执行
   
    #2.2 如果输入的姓名不存在,添加数据,准备空字典,字典添加数据,列表追加字典
    info_dict= {}
    #字典新增数据
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    #列表追加字典
    info.append(info_dict)
    print(info)

在这里插入图片描述

1.3.4.2 删除学员
  • 需求分析 按用户输入的学员姓名进行删除
    1.用户输入目标学员姓名
    2.检查这个学员是否存在
    2.1 如果存在,则列表删除这个数据
    2.2 如果不存在,则提示“该用户不存在
  1. 对应的if条件成立的位置调用该函数
  • 代码实现
#1.3.4.2 删除学员
def del_info():
    """"删除学员"""
    #1.用户输入删除学员的姓名
    del_name = input('请输入需要删除学员的姓名:')
    global info
    #2. 判断学员是否存在,如果输入的姓名存在则删除,否则报错显示
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
        else:
            print('该学员不存在')
    print(info)

在这里插入图片描述

1.3.4.3 修改学员信息
  • 需求分析
  1. 用户输入目标学员姓名
  2. 检查这个学员是否存在
    2.1 如果存在,则修改这个学员的信息,例如手机号
    2.2 如果不存在,则报错
    3.对应的if条件成立位置调用该函数
  • 代码实现
#1.3.4.3 修改学员信息
# 修改函数
def modify_info():
    """修改函数"""
    #1.用户输入需要修改的学员姓名
    modify_name = input('请输入需要修改的学员姓名:')
    global info
    #2.判断学员是否存在,如果输入的学员存在则修改手机号,否则报错显示
    for i in info:
        if modify_name == i['name']:
            i['tel'] = input('请输入修改后的电话号码')
            break
        else:
            print('该学员不存在')
    print(info)

在这里插入图片描述
在这里插入图片描述

1.3.4.4 查询学员信息
  • 需求分析
    1.用户输入目标学员姓名
    2.检查学员是否存在
    2.1 如果存在,则显示这个学员信息
    2.2 如果不存在,则报错显示
    3.对应的if条件成立位置调用该函数
  • 代码实现
# 1.3.4.4 查询学员信息
def search_info():
    """" 查询学员"""
    #1.输入要查找的学员姓名
    search_name = input('请输入需要查询的学员姓名:')
    global info
    #2.检查学员是否存在,如果存在,则显示这个学员信息,否则报错显示
    for i in info:
        if search_name == i['name']:
            print('查询的学员信息如下:--------')
            print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")
            break # 存在则打印信息退出循环
        else:
            print('该学员不存在')

在这里插入图片描述

1.3.4.5 显示所有学员信息
  • 需求分析 打印所有学员信息
  • 代码实现
# 1.3.4.5 显示所有学员信息
def print_all():
    """显示所有学员信息"""
    print('学员\t姓名\t手机号')  # 数据对齐
    for i in info:
        print(f"{i['id']}\t{i['name']}\t{i['tel']}")

在这里插入图片描述
在这里插入图片描述

1.3.4.6 退出系统

在用户输入功能序号6的时候要退出系统

 elif user_num ==6:
        #程序要退出,推迟终止while True ----- break
        exit_flag = input('确定要退出吗?yes or no:')
        if exit_flag == 'yes':
            break

在这里插入图片描述

1.4 完整代码

# 定义功能界面函数
def print_info():
    print('请选择功能------------')
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员信息')
    print('4.查询学员信息')
    print('5.显示所有学员信息')
    print(' 6.退出系统')
    print('-' *15)
# 等待存储所有学员信息
info= []  # 全局变量
# 1.3.4 添加学员
#1.3.4.1添加学员信息的函数
def add_info():
    """添加学员函数"""
    #1.接受用户输入的学员信息
    new_id = input('请输入学号:')
    new_name = input('请输入名字:')
    new_tel = input('请输入手机号:')
    #2.判断是否添加学员信息
    global info
    #2.1 不允许姓名重名,判断输入的姓名、学号、手机号码
    for i in info:
        if new_name == i['name']:
            print('此用户已经存在')
            return

    #2.2 如果输入的姓名不存在,添加数据,准备空字典,字典添加数据,列表追加字典

    info_dict= {}
    #字典新增数据
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    #列表追加字典
    info.append(info_dict)
    print(info)
#1.3.4.2 删除学员
def del_info():
    """"删除学员"""
    #1.用户输入删除学员的姓名
    del_name = input('请输入需要删除学员的姓名:')
    global info
    #2. 判断学员是否存在,如果输入的姓名存在则删除,否则报错显示
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
        else:
            print('该学员不存在')
    print(info)
#1.3.4.3 修改学员信息
# 修改函数
def modify_info():
    """修改函数"""
    #1.用户输入需要修改的学员姓名
    modify_name = input('请输入需要修改的学员姓名:')
    global info
    #2.判断学员是否存在,如果输入的学员存在则修改手机号,否则报错显示
    for i in info:
        if modify_name == i['name']:
            i['tel'] = input('请输入修改后的电话号码')
            break
        else:
            print('该学员不存在')
    print(info)
# 1.3.4.4 查询学员信息
def search_info():
    """" 查询学员"""
    #1.输入要查找的学员姓名
    search_name = input('请输入需要查询的学员姓名:')
    global info
    #2.检查学员是否存在,如果存在,则显示这个学员信息,否则报错显示
    for i in info:
        if search_name == i['name']:
            print('查询的学员信息如下:--------')
            print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")
            break # 存在则打印信息退出循环
        else:
            print('该学员不存在')

# 1.3.4.5 显示所有学员信息
def print_all():
    """显示所有学员信息"""
    print('学员\t姓名\t手机号')  # 数据对齐
    for i in info:
        print(f"{i['id']}\t{i['name']}\t{i['tel']}")


#系统功能需要循环使用,直到用户输入6,才退出系统
while True:
    #1.3.1显示功能界面
    print_info()
    #1.3.2.用户输入功能序号
    user_num=int(input('请输入功能序号:'))
    #1.3.3.按照用户输入的功能序号,执行不同的功能(函数)
    #如果用户输入1.执行添加,用户输入2.执行删除 .......多重判断
    if user_num ==1:
        print('添加')
        add_info()
    elif user_num ==2:
        print('删除')
        del_info()
    elif user_num ==3:
        print('修改')
        modify_info()
    elif user_num ==4:
        print('查询')
        search_info()
    elif user_num ==5:
        print('显示所有')
        print_all()
    elif user_num ==6:
        #程序要退出,推迟终止while True ----- break
        exit_flag = input('确定要退出吗?yes or no:')
        if exit_flag == 'yes':
            break
    else:
        print('输入的功能序号有误,请重新输入')



在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值