热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python实现学员管理系统(增删改查)

1.1系统简介需求:进⼊系统显示系统功能界⾯,功能如下:1、添加学员2、删除学员3、修改学员信息4、查询学员信息5、显示所有学员信息6、退

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('-' * 20)print('欢迎登录学员管理系统')print('1: 添加学员')print('2: 删除学员')print('3: 修改学员信息')print('4: 查询学员信息')print('5: 显示所有学员信息')print('6: 退出系统')print('-' * 20)print_info()

1.3.2 ⽤户输⼊序号,选择功能



user_num = 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 = 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('输⼊错误,请重新输⼊!!!')

1.3.4 定义不同功能的函数

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


info = []

1.3.4.1 添加学员

需求分析
1. 接收⽤户输⼊学员信息,并保存
2. 判断是否添加学员信息

        2.1 如果学员姓名已经存在,则报错提示

        2.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_idinfo_dict['name'] = new_nameinfo_dict['tel'] = new_tel# 将这个学员的字典数据追加到列表info.append(info_dict)print(info)

1.3.4.2 删除学员

需求分析
按⽤户输⼊的学员姓名进⾏删除
1. ⽤户输⼊⽬标学员姓名
2. 检查这个学员是否存在

        2.1 如果存在,则列表删除这个数据

        2.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)breakelse:print('该学员不存在')print(info)

1.3.4.3 修改学员信息



需求分析
1. ⽤户输⼊⽬标学员姓名
2. 检查这个学员是否存在

        2.1 如果存在,则修改这位学员的信息,例如⼿机号

        2.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('请输⼊新的⼿机号:')breakelse:print('该学员不存在')print(info)

1.3.4.4 查询学员信息

需求分析
1. ⽤户输⼊⽬标学员姓名
2. 检查学员是否存在

        2.1 如果存在,则显示这个学员的信息

        2.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']}")breakelse: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"]}')

1.3.4.6 退出系统

        在⽤户输⼊功能序号 6 的时候要退出系统,代码如下:


......elif user_num == '6':exit_flag = input('确定要退出吗?yes or no')if exit_flag == 'yes':break


推荐阅读
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • PyCharm调试技巧:开发者的实用指南
    PyCharm调试技巧:开发者的实用指南 ... [详细]
  • Python内置模块详解:正则表达式re模块的应用与解析
    正则表达式是一种强大的文本处理工具,通过特定的字符序列来定义搜索模式。本文详细介绍了Python内置的`re`模块,探讨了其在字符串匹配、验证和提取中的应用。例如,可以通过正则表达式验证电子邮件地址、电话号码、QQ号、密码、URL和IP地址等。此外,文章还深入解析了`re`模块的各种函数和方法,提供了丰富的示例代码,帮助读者更好地理解和使用这一工具。 ... [详细]
  • Python进阶笔记:深入理解装饰器、生成器与迭代器的应用
    本文深入探讨了Python中的装饰器、生成器和迭代器的应用。装饰器本质上是一个函数,用于在不修改原函数代码和调用方式的前提下为其添加额外功能。实现装饰器需要掌握闭包、高阶函数等基础知识。生成器通过 `yield` 语句提供了一种高效生成和处理大量数据的方法,而迭代器则是一种可以逐个访问集合中元素的对象。文章详细解析了这些概念的原理和实际应用案例,帮助读者更好地理解和使用这些高级特性。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文探讨了利用Python实现高效语音识别技术的方法。通过使用先进的语音处理库和算法,本文详细介绍了如何构建一个准确且高效的语音识别系统。提供的代码示例和实验结果展示了该方法在实际应用中的优越性能。相关文件可从以下链接下载:链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ,提取码:p57s。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • Python 编程技巧:实现字符串中字符大小写的转换 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 深入解析 Python 中的 NumPy 加法函数 numpy.add() ... [详细]
  • TensorFlow Lite在移动设备上的部署实践与优化笔记
    近期在探索如何将服务器端的模型迁移到移动设备上,并记录了一些关键问题和解决方案。本文假设读者具备以下基础知识:了解TensorFlow的计算图(Graph)、图定义(GraphDef)和元图定义(MetaGraphDef)。此外,文中还详细介绍了模型转换、性能优化和资源管理等方面的实践经验,为开发者提供有价值的参考。 ... [详细]
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 每年,意甲、德甲、英超和西甲等各大足球联赛的赛程表都是球迷们关注的焦点。本文通过 Python 编程实现了一种生成赛程表的方法,该方法基于蛇形环算法。具体而言,将所有球队排列成两列的环形结构,左侧球队对阵右侧球队,首支队伍固定不动,其余队伍按顺时针方向循环移动,从而确保每场比赛不重复。此算法不仅高效,而且易于实现,为赛程安排提供了可靠的解决方案。 ... [详细]
author-avatar
白云朵朵12
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有