简易学生信息管理系统(Python版)

2023-11-05

一、系统简介

实现一个学生信息的管理系统:主要功能有:

  • 添加学生信息

  • 删除学生信息

  • 修改学生信息

  • 查询学生信息

  • 显示学生信息

  • 退出当前系统

二、步骤分析

  • 显示功能界面

  • 用户输入功能序号

  • 对不同序号的功能实现具体函数(3.1 定义函数、3.2 调用函数)

三、需求实现

  • 显示功能界面info_print()

  • 用户输入功能序号 user_num = eval(input('请输入功能序号:'))

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

  • 添加学生信息add_info()

  • 删除学生信息del_info()

  • 修改学生信息modify_info()

  • 查询学生信息search_info()

  • 显示学生信息print_all()

四、具体实现

系统功能需要循环使用,直到用户输入6,才退出系统 功能界面部分:

# 定义一个函数
def info_print():
    print('--------请选择功能-----')
    print('1、添加学生')
    print('2、删除学生')
    print('3、修改学生')
    print('4、查询学生')
    print('5、显示所有学生')
    print('6、退出系统')
    print('-' * 20)

# 等待存储所有学生的信息
info = []

主要部分代码:

while True:
    # 1、显示功能界面
    info_print()
    
    # 2、用户输入功能序号
    user_num = eval(input('请输入功能序号:'))

    # 3、按照用户输入的功能序号,执行不同的功能(函数)
    # 如果用户输入1,就执行添加学生的功能
    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:
        exit_flag = input("确定要退出吗?yes/no?")
        if exit_flag == 'yes':
            break
        # print('退出系统')
    else:
        print('输入的功能序号有误!')

那么根据上面的代码,需要实现具体的功能函数,主要代码部分如下:

while True:
    # 1、显示功能界面
    info_print()

    # 2、用户输入功能序号
    user_num = eval(input('请输入功能序号:'))

    # 3、按照用户输入的功能序号,执行不同的功能(函数)
    # 如果用户输入1,就执行添加学生的功能
    if user_num == 1:
        add_info()
        # print('添加学生')
    elif user_num == 2:
        del_info()
        # print('删除学生')
    elif user_num == 3:
        modify_info()
        # print('修改学生')
    elif user_num == 4:
        search_info()
        # print('查询学生')
    elif user_num == 5:
        print_all()
        # print('显示所有学生')
    elif user_num == 6:
        exit_flag = input("确定要退出吗?yes/no?")
        if exit_flag == 'yes':
            break
        # print('退出系统')
    else:
        print('输入的功能序号有误!')

4.1 添加学生信息的函数

def add_info():
    """添加学生函数"""
    # 接受用户输入学生信息
    # 1、用户输入:学号、姓名、手机号
    new_id = input("输入学号:")
    new_name = input("输入姓名:")
    new_tel = input("输入手机号:")

    # 2、判断是否添加这个学生,如果学生姓名已经存在报错提示,如果不存在则添加数据
    global info
    # 2.1 不允许姓名重复:判断用户输入的姓名如果和列表里面字典的name值是相等的,则提示姓名重复
    for i in info:
        if new_name == i['name']:
            print("此用户已经存在,请勿重复添加")
            # return 退出当前函数,后面添加信息的代码不执行
            return
    # 如果用户输入的姓名不存在,则添加该学生信息
    info_dict = {<!-- -->'id': new_id, 'name': new_name, 'tel': new_tel}
    # 将用户输入的数据追加到字典

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

4.2 删除学生信息的函数

def del_info():
    """删除学生"""
    # 1、用户输入要删除的学生的姓名
    del_name = input("请输入要删除的学生的姓名:")

    global info
    # 2、判断学生是否存在
    # 2.1 声明info是全局变量
    # 2.2 遍历列表
    # 2.3 判断学生是否存在,存在则执行删除信息,break:不允许重名,那么删除了一个,后面的不需要再遍历;不存在则提示
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
    else:
        print('该学生不存在!')

    print(info)

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)

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("该学生不存在!")

4.5 显示所有学生信息

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

五、运行效果

添加和删除学生信息:

修改和查询学生信息:

显示所有学生信息和退出系统

六、完整代码

# 定义一个函数
def info_print():
    print('--------请选择功能-----')
    print('1、添加学生')
    print('2、删除学生')
    print('3、修改学生')
    print('4、查询学生')
    print('5、显示所有学生')
    print('6、退出系统')
    print('-' * 20)


# 等待存储所有学生的信息
info = []


# 1、添加学生信息的函数
def add_info():
    """添加学生函数"""
    # 接受用户输入学生信息
    # 1、用户输入:学号、姓名、手机号
    new_id = input("输入学号:")
    new_name = input("输入姓名:")
    new_tel = input("输入手机号:")

    # 2、判断是否添加这个学生,如果学生姓名已经存在报错提示,如果不存在则添加数据
    global info
    # 2.1 不允许姓名重复:判断用户输入的姓名如果和列表里面字典的name值是相等的,则提示姓名重复
    for i in info:
        if new_name == i['name']:
            print("此用户已经存在,请勿重复添加")
            # return 退出当前函数,后面添加信息的代码不执行
            return
    # 如果用户输入的姓名不存在,则添加该学生信息
    info_dict = {<!-- -->'id': new_id, 'name': new_name, 'tel': new_tel}
    # 将用户输入的数据追加到字典

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


# 2、删除学生的信息
def del_info():
    """删除学生"""
    # 1、用户输入要删除的学生的姓名
    del_name = input("请输入要删除的学生的姓名:")

    global info
    # 2、判断学生是否存在
    # 2.1 声明info是全局变量
    # 2.2 遍历列表
    # 2.3 判断学生是否存在,存在则执行删除信息,break:不允许重名,那么删除了一个,后面的不需要再遍历;不存在则提示
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
    else:
        print('该学生不存在!')

    print(info)


# 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)


# 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("该学生不存在!")


# 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、显示功能界面
    info_print()

    # 2、用户输入功能序号
    user_num = eval(input('请输入功能序号:'))

    # 3、按照用户输入的功能序号,执行不同的功能(函数)
    # 如果用户输入1,就执行添加学生的功能
    if user_num == 1:
        add_info()
        # print('添加学生')
    elif user_num == 2:
        del_info()
        # print('删除学生')
    elif user_num == 3:
        modify_info()
        # print('修改学生')
    elif user_num == 4:
        search_info()
        # print('查询学生')
    elif user_num == 5:
        print_all()
        # print('显示所有学生')
    elif user_num == 6:
        exit_flag = input("确定要退出吗?yes/no?")
        if exit_flag == 'yes':
            break
        # print('退出系统')
    else:
        print('输入的功能序号有误!')

-END-

扫码添加请备注:python,进群与宋老师面对面交流:517745409

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简易学生信息管理系统(Python版) 的相关文章

随机推荐

  • windows的磁盘操作之二——初始化磁盘

    转载自 windows的磁盘操作之二 初始化磁盘 bunny技术坊的技术博客 51CTO博客 原文如下 上一节中我们介绍了一些基本概念和主要的API 本节开始我们将列举并分析一些实例 本文中的所有代码我都在vs2008下测试过 读者只需要替
  • Flutter使用C++

    总体 flutter通过dart语言和C 交互 dart的ffi包完成交互 ffi封装了c 的基本数据类型 包括结构体 和一些基本方法 我们可以直接在dart中访问c 的内存数据等 相对于jni更加直接 基本步骤 官方步骤 https do
  • 数据挖掘七种常用的方法汇总

    数据挖掘 Data Mining 就是从大量的 不完全的 有噪声的 模糊的 随机的实际应用数据中 提取隐含在其中的 人们事先不知道的 但又是潜在有用的信息和知识的过程 这个定义包括几层含义 数据源必须是真实的 大量的 含噪声的 发现的是用户
  • 将本地jar 批量发布到 Nexus 私服

    前言 在日常开发过程中 我们有遇到将项目依赖通过 mvn deploy 发布到自己的公司的私服 以便其他人 环境统一下载入口 但是也有一些特殊情况 比如只能拿到第三方 或甲方 的依赖jar 并拿不到源码 所以只能将jar 通过 mvn de
  • 有限域GF(2^8)内乘法代码实现以及原理

    在密码学中经常用到有限域的乘法 一般在AES中用到的是GF 2 8 有限域内乘法 什么是有限域呢 有限域通俗的讲就是函数的运算结果全都包含在一个域中 不同于实数域 有限域有一个最大值 所有超过这个最大值的数都会经过一定的方法使他回到这个域中
  • 主成份分析(PCA)详解

    主成分分析法 Principal Component Analysis 大多在数据维度比较高的时候 用来减少数据维度 因而加快模型训练速度 另外也有些用途 比如图片压缩 主要是用SVD 也可以用PCA来做 因子分析等 具体怎么用 看个人需求
  • Docker基础(1)—— Docker基本概念

    Docker基础 1 Docker基本概念 Docker基础 2 Docker安装及基础操作 关于docker是什么以及docker的教程网上有很多资料 GitBook上的Docker教程是比较官方和全面的 以下我结合手册的学习及在慕课网上
  • mini2440按键中断

    ARM中断控制系统 按键驱动程序设计 一 Arm中断控制系统 1 查询方式 程序不断地查询设备的状态 并做出相应的反应 该方式实现比较简单 常用在比较单一的系统中 比如 一个温控系统中可以实用查询的方式不断检测温度变化 特点 实现简单 但C
  • 操作系统——LRU算法以及置换次数、缺页数、缺页率计算

    目录 一 LRU是什么 二 LRU算法的规则 三 缺页 换页 四 计算页面置换次数 缺页数 一 LRU是什么 LRU 全称是Least Recently Used 即最近最少使用页面置换算法 从字面意思上可以看出 选择最近最久未使用的页面予
  • python猜硬币正反面_python 编写猜硬币小游戏

    猜硬币解法1 import random guess while guess not in 0 1 print 猜硬币游戏 print 猜一猜硬币是正面还是反面 guess int input 正面 请输入0 反面 请输入1 注意要用int
  • 【STM32】

    失败了也挺可爱 成功了就超帅 文章目录 前言 1 JTAG SWD引脚 2 禁用JTAG功能 2 1 标准库 2 2 HAL库 3 禁用SWD JTAG功能 3 1 标准库 3 2 HAL库 总结 前言 最近在画板子耍 我LED灯选用的 P
  • 当测试人员遇上CodeReview:揭秘代码审查绝招

    引言 测试人员的业务流程理解程度 直接影响测试用例的准确性和全面性 为了提高测试用例编写水平和测试效率 有两个关键方面需要注意 首先 通过仔细阅读需求文档并与产品经理进行充分沟通的方式可以达到这一目标 其次 通过进行代码审查来提高代码质量
  • matlab实现离散傅里叶变换及低通滤波

    如图传感器无滤波状态下FZ数据为下列 导入matlab使用工具箱分析图如下 将数据导入matlab代码 clear clc close all load data nofliter Fs 100 采集频率 T 1 Fs 采集时间间隔 信号长
  • c++对象模型探索-王健伟-专题视频课程

    c 对象模型探索 120人已学习 课程介绍 c 对象模型知识久负盛名 在c 界具有很高的美誉度 这方面知识的学习 更是被诸多颇具开发实力的行业前辈倾力推荐 本门课程内容将涉及到很多不被常人所知的 c 对象内部工作原理 底层的一些具体实现机制
  • 面试 -为啥react函数式组件无this?

    为什么函数式组件的this不指向window 因为这是经过Babel翻译的结果 Babel要将jsx语法翻译成js Babel是严格模式 use strict 下进行的 不允许函数里的this指向window 所以这里指向undefined
  • 飞浆AI studio人工智能课程学习(2)-Prompt优化思路

    文章目录 优化思路 上节课的例子 问题分析 思路解析 Prompt优化技巧 Prompt优化原理 十个技巧高效优化Prompt 迭代法 Trick法 工具法 通用技巧 定基础 通用技巧 做强调 需求强调怎么做 通用技巧 提预设 Trick法
  • 认知迭代:Tomcat性能提升的实战操作,提升60倍以上tomcat性能

    经常听到不少人说一句话 tomcat性能差 不如去用weblogic websphere jboss 我想说 用什么东西得根据实际情况来吧 如果给一个小公司的外包开发一个普通的项目 给她用Oracle Weblogic 在高速公路上 拖拉机
  • QT定制帮助文档

    先给个教程链接 https www cnblogs com Braveliu p 5055387 html
  • Win8下用DOSBox编写汇编语言

    Win8下用DOSBox编写汇编语言 DOSBox 是一个 DOS模拟程序 可以很方便的移植到其他的平台 因此可以使用它在Win8系统中编写汇编语言 下面提供相关下载链接 DOSBox下载 http pan baidu com s 1qWw
  • 简易学生信息管理系统(Python版)

    一 系统简介 实现一个学生信息的管理系统 主要功能有 添加学生信息 删除学生信息 修改学生信息 查询学生信息 显示学生信息 退出当前系统 二 步骤分析 显示功能界面 用户输入功能序号 对不同序号的功能实现具体函数 3 1 定义函数 3 2