Python基础(十八):学员管理系统应用

news2024/12/23 18:03:58

文章目录

学员管理系统应用

一、系统简介

二、步骤分析

三、需求实现

1、显示功能界面

2、用户输入序号,选择功能

3、根据用户选择,执行不同的功能

4、定义不同功能的函数


学员管理系统应用

一、系统简介

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

二、步骤分析

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

三、需求实现

1、显示功能界面

定义函数 print_info ,负责显示系统功能。
def print_info():
    print('-' * 20)
    print('欢迎登录学员管理系统')
    print('1: 添加学员')
    print('2: 删除学员')
    print('3: 修改学员信息')
    print('4: 查询学员信息')
    print('5: 显示所有学员信息')
    print('6: 退出系统')
    print('-' * 20)


print_info()

2、用户输入序号,选择功能

user_num = input('请选择您需要的功能序号:') 

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 = input('请选择您需要的功能序号:')
    # 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('退出系统')
    else:
        print('输⼊错误,请重新输⼊!!!')

4、定义不同功能的函数

所有功能函数都是操作学员信息,所有存储所有学员信息应该是⼀个 全局变量 ,数据类型为 列表
info = [] 

4.1、添加学员

需求分析
1、 接收用户输入学员信息,并保存
2、 判断是否添加学员信息
  • 如果学员姓名已经存在,则报错提示
  • 如果学员姓名不存在,则准备空字典,将用户输入的数据追加到字典,再列表追加字典数据
3、 对应的 if 条件成立的位置调用该函数
代码实现
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
            # 如果⽤户输⼊的姓名不存在,则添加该学员信息
            info_dict = {}

            # 将⽤户输⼊的数据追加到字典
            info_dict['id'] = new_id
            info_dict['name'] = new_name
            info_dict['tel'] = new_tel

            # 将这个学员的字典数据追加到列表
            info.append(info_dict)

            print(info)

4.2、删除学员

需求分析
按用户输入的学员姓名进行删除
1、 用户输入目标学员姓名
2、 检查这个学员是否存在
  • 如果存在,则列表删除这个数据
  • 如果不存在,则提示该用户不存在
3、 对应的 if 条件成立的位置调用该函数
代码实现
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)

4.3、修改学员信息

需求分析
1、 用户输入目标学员姓名
2、 检查这个学员是否存在
  • 如果存在,则修改这位学员的信息,例如⼿机号
  • 如果不存在,则报错
3、 对应的 if 条件成立的位置调用该函数
代码实现
# 修改函数
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)

4.4、查询学员信息

需求分析
1、 用户输入目标学员姓名
2、 检查学员是否存在
  • 如果存在,则显示这个学员的信息
  • 如果不存在,则报错提示
3、 对应的 if 条件成立的位置调用该函数
代码实现
# 查询学员
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('该学员不存在')

4.5、显示所有学员信息

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

4.6、退出系统
在用户输入功能序号 6 的时候要退出系统,代码如下:
    ......
    elif user_num == '6':
        exit_flag = input('确定要退出吗?yes or no')
        if exit_flag == 'yes':
            break

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车租赁小程序源码 上门取车

小程序端: 首页、订单、我的 上门取送:仅限上门取送范围、到店取还:为您推荐最近的门店 套餐1、领优惠券、签到积分、限时活动、车型推荐 订单:订单中心、短租订单、长租订单 个人中心:我的优惠、租车券、优惠券、…

Android入门第55天-在Android里使用OKHttp组件访问网络资源

简介 今天的课程开始进入高级课程类了,我们要开始接触网络协议、设备等领域编程了。在今天的课程里我们会使用OKHttp组件来访问网络资源而不是使用Android自带的URLConnection。一个是OKHttp组件更方便二个是OKHttp组件本身就带有异步回调功能。 下面就进入课程。…

《北京市数字经济促进条例》图解来了

《北京市数字经济促进条例》 2023/1/1 二十大对建设数字经济作出重要部署。党的二十大报告中指出,“加快建设网络强国、数字中国”、“加快发展数字经济,促进数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群”。习总书记强调…

【算法】P1 算法简介

算法什么是算法正确与错误的算法算法可以解决什么问题本专栏有哪些算法什么是算法 算法 (Algorithm) 取某个值或集合作为 输入,并产生某个值或集合作为 输出。算法就是把输入转换为输出的计算,描述这个计算的过程来实现输入与输出的关系。 正确与错误的…

学习Elasticsearch这一篇就够了(2)

DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试…

12_SpringMVC_拦截器

在之前学习JAVAWEB 的时候,我们学习了过滤器的知识。过滤器的作用是保护请求的服务器资源,在请求资源被执行之前,如果请求地址符合拦截范围,则会先执行过滤器。过滤器的执行时机,是在Servlet之前执行的。但是在使用了S…

Vue 3 技术揭秘

作者介绍 muwoo,前端技术专家。曾就职于蚂蚁集团,之前对 Vue 2.x 源码有过深层次的研究和探索,并在 Github 上开源了相关的技术文章:Vue 2.x 技术揭秘,目前已有超过 2k star 。 自 Vue 3 诞生以来,就一直关…

30 岁转行做程序员,晚了吗?

2019年,我从某大型国有企业正式辞职,告别了工作了6年的北锤小城。这时候,鄙人年芳30,曾经一批来这里奋斗的同事们,要么走上管理岗位、要么成家立业买房买车,他们是打算把一生奉献给这里的,然而也…

【Javascript基础】--零基础--超详细且简洁的Javascript笔记--Javascript基础知识(02)

Hello, world! 首先&#xff0c;让我们看看如何将脚本添加到网页上。 对于服务器端环境&#xff08;如 Node.js&#xff09;&#xff0c;你只需要使用诸如 "node my.js" 的命令行来执行它。 “script” 标签 比如&#xff1a; <!DOCTYPE HTML> <html>…

搭建Seata分布事务(基于Nacos注册+Mysql配置)

文章目录一&#xff1a;拉取Seata镜像二&#xff1a;运行Seata容器2.1. 容器内目录拷贝到宿主机2.2. 编辑 registry.conf 和 file.conf2. 2.1. 编辑注册中心相关文件2.2.2. 编辑Seata存储数据的相关配置文件2.3. 宿主机文件拷贝至容器内部三&#xff1a;Nacos注册中心相关配置操…

TikTok发布What‘s Next趋势报告,2023年有哪些增长机会?

获悉&#xff0c;近日TikTok for Business发布了《Whats Next 2023 TikTok 全球流行趋势报告》&#xff0c;帮助营销人员了解消费者的需求在来年将如何变化&#xff0c;以及这对他们在TikTok内外的策略将产生怎样的影响。这份报告将有趣与实用相结合&#xff0c;重点剖析了品牌…

阿里巴巴新产“Java架构核心宝典”,全是流行技术,限时开放

导言 什么是架构师&#xff1f;对于程序员来说&#xff0c;聊架构是一个永不过时的话题。实际上&#xff0c;每一家公司都有自己对架构师不同的定位&#xff0c;因为不同的公司&#xff0c;所处的阶段、业务模式以及应用场景都不一样&#xff0c;因此对架构师的要求不一样&…

直播带货不再独揽大旗,货架电商神秘崛起,链动2+1模式助力引流

​“WXG&#xff08;微信事业群&#xff09;最亮眼的业务是视频号&#xff0c;基本上是全场&#xff08;全公司&#xff09;的希望。”12月22日&#xff0c;在线上召开内部员工大会时&#xff0c;腾讯CEO马化腾再度把视频号推至C位。这句话昨天也一度冲上热搜。 马化腾在内部员…

后台Service限制

每次在后台运行时&#xff0c;应用都会消耗一部分有限的设备资源&#xff0c;例如 RAM。 这可能会影响用户体验&#xff0c;如果用户正在使用占用大量资源的应用&#xff08;例如玩游戏或观看视频&#xff09;&#xff0c;影响会尤为明显。 为了提升用户体验&#xff0c;Androi…

ESP8266-C开发-3串口下载固件失败方案

一、串口下载固件失败 以下是报错信息。 …………………………[2022-12-23 09:01:17,338][ESP8266Loader_spi[1]][espDownloader.pyo][line:351][ERROR]: Chip sync error: Failed to connect to ESP8266: Timed out waiting for packet header [2022-12-23 09:01:17,338][ESP…

Zookeeper 4 Zookeeper JavaAPI 操作 4.1 Curator 介绍 4.2 Curator API 常用操作【建立连接】

Zookeeper 【黑马程序员Zookeeper视频教程&#xff0c;快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.1 Curator 介绍4.1.1 Curator 介绍4.2 Curator API 常用操作4.2.1 Curator API 常用操作4.2.2 建立连接4 Zookeeper JavaAPI 操作 4.1 Curator 介绍…

使用形态学处理相关算法对芯片电路图焊接锡点缺陷进行检测

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 当前我国信息科技的发展&#xff0c; 产业界自动化生产水平越来越高。 具体在电子产品行业&#xff0c; 随着精细化和自动化的发展&#xff0c; 电子产品的焊点质量的好坏&#xff0c; 深刻地影响着产品成品的质…

Unity下如何实现RTMP或RTSP流播放和录制

技术背景 在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前&#xff0c;我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程&#xff1a; 通过Native RTSP或RTSP直播播放SDK回调RGB/YUV420/NV12等其中的一种未压缩的图像格式&#xff1b;Unity下创建相应的RGB/YU…

工作几年后想转行学编程,如何操作才靠谱?

30岁转行来得及么&#xff1f;继结婚、生子、就业、买房后&#xff0c;又一个对30岁的灵魂拷问来了。 在一档综艺节目里&#xff0c;有位年过30的“实习生”为了能让孩子有更好的生活条件、也为了自己的事业与发展&#xff0c;她选择在而立之年放下自己曾经所擅长的&#xff0c…

微信键盘终于正式发布,张小龙说:其目的并不是为了抢夺输入法市场

自从2021年1月份&#xff0c;张小龙在微信公开课透露&#xff1a;微信将上线属于自己的专属输入法&#xff0c;到现在已经快2年过了。 今天终于正式发布了&#xff0c;下面我们一起来体验下。 1、安装 打开App Store&#xff0c;输入“微信键盘”&#xff0c;点击获取就可以…