Python实现学生信息管理系统(详解版)

news2025/1/10 20:37:18

Python实现学生信息管理系统-详解版

  • 个人简介
  • 实验名称:学生信息管理系统
  • 系统功能
  • 实验步骤详讲
      • 添加入住学生信息
      • 删除学生的住宿信息
      • 修改学生的住宿信息
      • 查询学生的住宿信息
      • 显示所有学生住宿信息
      • 显示所有请假学生的信息
  • 运行截图展示
      • 1.主界面
      • 2.添加新的入住学生信息
      • 3.显示所有的学生住宿信息
      • 4.删除学生信息
      • 5.修改一个学生住宿信息
      • 6.查询一个学生住宿信息
      • 7.显示所有请假学生信息
      • 8.退出系统
  • 源代码
  • 结尾

个人简介

🏘️🏘️个人简介:以山河作礼。
🎖️🎖️:Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主,新星计划导师,数据分析师。
💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

实验环境:PyCharm Community Edition 2023.2.5

在这里插入图片描述

实验名称:学生信息管理系统

在这里插入图片描述

系统功能

1: 添加入住学生信息
2: 删除学生的住宿信息
3: 修改学生的住宿信息
4: 查询学生的住宿信息
5: 显示所有学生住宿信息
6: 显示所有请假学生的信息
7: 退出系统

实验步骤详讲

定义一个全局变量 student_infors,它是一个空列表,用于存储所有学生的信息。

# 1.定义一个全局变量列表存放所有学生信息
# 全局变量用来存储所有学生信息
student_infors = []

添加入住学生信息

def Add_infor():
    # 定义一个新的字典,用来存储一个新的学生信息
    new_infor = {}
    
    # 通过input函数获取用户输入的学生名字,并将其存储在字典的'student_name'键中
    new_infor['student_name'] = input('请输入新入住的学生名字:')
    
    # 通过input函数获取用户输入的宿舍号+床位号,并将其存储在字典的'D_num'键中
    new_infor['D_num'] = input('请输入宿舍号+床位号(如123-1):')
    
    # 通过input函数获取用户输入的班级,并将其存储在字典的'Class_num'键中
    new_infor['Class_num'] = input('请输入班级:')
    
    # 通过input函数获取用户输入的入住情况,并将其存储在字典的'status'键中
    new_infor['status'] = input('请输入入住情况(在校or请假):')
    
    # 将新的学生信息字典添加到全局变量student_infors列表中
    student_infors.append(new_infor)

该函数的作用是创建一个空的字典new_infor,然后通过input()函数获取用户输入的学生信息,并将这些信息存储在字典的相应键中。最后,将这个字典添加到全局变量student_infors列表中,以便后续使用。

删除学生的住宿信息

# 定义删除一个学生住宿信息的函数
def Delete_infor():
    # 获取用户输入的要删除的学生名字
    del_name = input("请输入要删除的退宿学生名字:")
    # 初始化一个标志变量,用于判断是否找到了要删除的学生信息
    find_flag = False
    # 遍历学生信息列表
    for line in student_infors:
        # 如果当前学生的名字与要删除的学生名字相同
        if line['student_name'] == del_name:
            # 将标志变量设为True,表示找到了要删除的学生信息
            find_flag = True
            # 从学生信息列表中删除当前学生的信息
            student_infors.remove(line)
            # 跳出循环,不再继续查找
            break
    # 如果找到了要删除的学生信息
    if find_flag:
        # 输出提示信息,表示已删除该学生信息
        print("已删除!")
    # 如果没有找到要删除的学生信息
    else:
        # 输出提示信息,表示系统不存在该学生的信息
        print("系统不存在该学生的信息!")

这段代码实现了一个删除学生住宿信息的函数。用户输入要删除的学生名字后,程序会在全局变量student_infors列表中查找匹配的学生信息,如果找到了就将其删除,并打印提示信息;如果没有找到,则打印错误信息。

修改学生的住宿信息

# 定义一个修改一个学生的住宿信息函数v
def Update_one_infor():
    # 提示用户输入要修改的学生姓名
    old_name = input('请输入要修改的学生姓名:')
    # 初始化标志变量为0,表示未找到学生信息
    flag = 0
    # 遍历学生信息列表
    for line in student_infors:
        # 如果当前学生姓名与输入的旧姓名相同
        if line['student_name'] == old_name:
            # 提示用户输入需要修改的学生名字
            line['student_name'] = input('请输入需要修改的学生名字:')
            # 提示用户输入需要修改的宿舍号+床位号(如123-1)
            line['D_num'] = input('请输入需要修改的宿舍号+床位号(如123-1):')
            # 提示用户输入需要修改的班级
            line['Class_num'] = input('请输入需要修改的班级:')
            # 提示用户输入需要修改的入住情况(在校or请假)
            line['status'] = input('请输入需要修改的入住情况(在校or请假):')
            # 将标志变量设为1,表示已找到学生信息并进行了修改
            flag = 1
            # 跳出循环,不再继续查找
            break
    # 如果标志变量为1,表示找到了学生信息并进行了修改
    if flag:
        # 输出提示信息,表示已修改
        print("已修改!")
    # 如果标志变量仍为0,表示未找到学生信息
    else:
        # 输出提示信息,表示系统不存在该学生的信息
        print('系统不存在该学生的信息!')

这段代码通过循环遍历学生信息列表,根据输入的旧姓名找到对应的学生信息,然后依次提示用户输入新的学生名字、宿舍号+床位号、班级和入住情况,并将这些信息更新到学生信息中。如果成功找到并修改了学生信息,则输出"已修改!“;如果未找到学生信息,则输出"系统不存在该学生的信息!”。

查询学生的住宿信息

# 查找某个学生的信息
def Find_one_infor():
    find_nmae = input("请输入要查找的学生姓名:")  # 提示用户输入要查找的学生姓名
    find_flag = 0  # 默认表示没有找到学生信息
    for temp in student_infors:  # 遍历学生信息列表
        if find_nmae == temp['student_name']:  # 如果找到了匹配的学生姓名
            print('学生名字\t宿舍号+床位号\t班级\t\t入住情况')  # 打印表头
            print('%s\t\t%s\t\t%s\t\t%s' % (temp['student_name'], temp['D_num'], temp['Class_num'], temp['status']))  # 打印学生信息
            find_flag = 1  # 表示找到了学生信息
            break  # 跳出循环
    # 判断是否找到学生信息
    if find_flag == 0:
        print('系统不存在该学生的信息')  # 如果没有找到学生信息,则输出提示信息

  • 这段首先通过input函数获取用户输入的学生姓名,并将其赋值给变量find_nmae。然后,它初始化一个标志变量find_flag为0,表示默认情况下没有找到学生信息。
  • 使用for循环遍历学生信息列表student_infors。在每次循环中,它检查当前学生信息的姓名是否与用户输入的姓名相匹配。如果找到了匹配的学生姓名,它将打印出表头和学生信息,并将find_flag设置为1,表示找到了学生信息。然后,使用break语句跳出循环。
  • 使用条件语句判断find_flag的值。如果find_flag等于0,表示没有找到学生信息,因此输出提示信息"系统不存在该学生的信息"。

显示所有学生住宿信息

def Find_all_infor():
    print('学生名字\t宿舍号+床位号\t班级\t\t入住情况')
    for temp in student_infors:
        print('%s\t\t%s\t\t%s\t\t%s' % (temp['student_name'], temp['D_num'], temp['Class_num'], temp['status']))

这段代码的作用是定义一个函数Find_all_infor,用于显示所有学生住宿信息。在函数内部,首先打印表头,然后遍历学生信息列表,逐个打印每个学生的姓名、宿舍号+床位号、班级和入住情况。

显示所有请假学生的信息

# 定义一个显示所有请假学生住宿信息函数
def Find_leave():
    leave_flag = 0  # 默认表示没有找到
    print('学生名字\t宿舍号+床位号\t班级\t\t入住情况')  # 打印表头
    for temp in student_infors:  # 遍历学生信息列表
        if temp['status'] == '请假':  # 如果学生状态为请假
            print('%s\t\t%s\t\t%s\t\t%s' % (temp['student_name'], temp['D_num'], temp['Class_num'], temp['status']))  # 打印学生信息
            leave_flag = 1  # 表示找到了请假学生
    # 判断是否找到请假学生
    if leave_flag == 0:
        print('系统不存在请假学生')  # 如果没有找到请假学生,打印提示信息

这段代码的功能是遍历学生信息列表,查找并打印出所有请假学生的姓名、宿舍号、班级和入住情况。如果没有找到任何请假学生,则输出相应的提示信息。

运行截图展示

1.主界面

在这里插入图片描述

2.添加新的入住学生信息

在这里插入图片描述

在这里插入图片描述

3.显示所有的学生住宿信息

在这里插入图片描述

4.删除学生信息

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

5.修改一个学生住宿信息

在这里插入图片描述

6.查询一个学生住宿信息

在这里插入图片描述

7.显示所有请假学生信息

在这里插入图片描述

8.退出系统

在这里插入图片描述

源代码

需要源代码请扫描下方二维码,加群后免费赠送。
在这里插入图片描述

结尾

在这里插入图片描述
“过去的33年里,我每天早上看着镜子问自己:“今天是我生命的最后一天吗?我是否要去做今天该做的事?”一天一天太多次是“不是”,我知道这需要改变…所有的事情——所有身外的期望,所有的骄傲,所有的对困难和失败的恐惧——这些东西在死亡面前立刻消失的无影无踪,只剩下真正重要的东西。想着自己即将死去,这是让我避免落入担心失去什么的陷阱里的最好的方法。”
—— Steve Jobs

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

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

相关文章

Java LeetCode篇-深入了解关于单链表的经典解法

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 移除链表元素 1.1 使用双指针方法 2.0 反转链表 2.1 递归法 2.2 头插法 3.0 链表中倒数第 k 个节点 3.1 递归法 3.2 快慢指针 4.0 合并两个有序链表 4.1 递归法 …

java科学计数法表示数值

Background 大多数计算器及计算机程序用科学记数法显示非常大和非常小的结果;但很多时候,我们需要做一个统一,要么全部以科学计数法输出,要么就全部显示为普通计数。注意:这里对大于等于1的数据做了特殊处理&#xff0…

RocketMQ源码剖析之createUniqID方法

目录 版本信息: 写在前面: 源码剖析: 总计: 版本信息: RocketMQ-5.1.3 源码地址:https://github.com/apache/rocketmq 写在前面: 首先,笔者先吐槽一下RocketMQ的官方&#xff0…

用代码评论代替代码注释

在一个软件项目中,某些逻辑部分可能非常复杂,容易让人困惑。为了确保其他开发人员能够理解这些代码,同时也为了自己回顾时能够快速上手,我们通常会编写相关文档或添加大量注释来对这些复杂的逻辑进行解释。这样做的好处是能够提高…

1.自动化运维工具Ansible的安装

1.物料准备 四台服务器,其中一个是主控机,三个为host 2.安装 在主控机上安装ansible 2.1 设置EPEL仓库 Ansible仓库默认不在yum仓库中,因此我们需要使用下面的命令启用epel仓库。 yum install epel-release -y2.2 执行安装命令 yum i…

香港人均gdp世界排名,和内地相比怎么样?

香港人均gdp世界排名,和内地相比怎么样? 香港作为世界贸易港口,也是中国最发达的城市之一。其经济相比于北上广深而言,都要发达。香港人均收入世界排名第18,人均收入为4.2万美元,在世界各国人均收入排名中处…

八个优秀开源内网穿透工具

内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网络地址转为内部网络地址,从而实现通过英特网可以访问局…

dbeaver连接amabri-hbase

目录 尝试过程 解决之道 总结 尝试过程 注意此章节为记录试错过程,无需跟随操作,仅作试错记录。真正操作方法请看“解决之道”章节 环境ambari安装的hbase2.1.6 使用apche phoenix默认驱动配置 备注:Apache Phoenix 是一个开源的、基于…

软件设计师——法律法规(一)

📑前言 本文主要是【法律法规】——软件设计师法律法规的题目,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日…

7 种 JVM 垃圾收集器详解

一、概述 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用…

国内外四款SAST工具约登指数

开放Web应用程序安全项目(OWASP),是一个非营利性基金会,致力于提高软件的安全性。OWASP Benchmark是一个免费和开放的测试套件。主要是通过Java语言基准测试案例对SAST工具进行评价。通过Yonden Index(约登指数)进行计算。约登指数…

量子力学应用:探索科技前沿的奇幻之旅

量子力学应用:探索科技前沿的奇幻之旅 引言 量子力学,这门探讨微观世界规律的学科,自其诞生以来就充满了神秘与奇幻。随着科学技术的不断进步,量子力学已经从纯理论研究走向了实际应用领域,为我们打开了一个全新的科技世界。在本文中,我们将深入探讨量子力学的应用方面,…

从 Elasticsearch 到 SelectDB,观测云实现日志存储与分析的 10 倍性价比提升

作者:观测云 CEO 蒋烁淼 & 飞轮科技技术团队 在云计算逐渐成熟的当下,越来越多的企业开始将业务迁移到云端,传统的监控和故障排查方法已经无法满足企业的需求。在可观测理念逐渐深入人心的当下,人们越来越意识到通过多层次、…

深入了解HMAC加密技术:原理、应用与实践

一、引言 在网络安全领域,消息认证码(MAC)是一种重要的技术手段。Hash-based Message Authentication Code(HMAC)作为其中的一种,凭借其简单、高效、安全的特性,广泛应用于各种网络通信场景。本…

数据结构与算法--特殊的完全二叉树--堆,堆排序,利用堆解决topk的问题

目录 前言 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用(表示文件系统的目录树结构) 2.二叉树概念及结构 2.1概念 2.2现实中的二叉树: 2.3 特殊的二叉树: 2.4 二叉树的性质 …

网络篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、如何实现跨域?二、TCP 为什么要三次握手,两次不行吗?为什么?三、说一下 TCP 粘包是怎么产生的?怎么解决粘包问题的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

解码 SQL:深入探索 Antlr4 语法解析器背后的奥秘

探寻SQL的背后机制 前言 在数据领域,SQL(Structured Query Language)是一门广泛使用的语言,用于查询和处理数据。你可能已经使用过诸如MySQL、Hive、ClickHouse、Doris、Spark和Flink等工具来编写SQL查询。 每一种框架都提供了…

ASEM工控机维修工业电脑控制器维修PB3400

ASEM工控机维修asem工业电脑维修常见型号:PB3400;PB2000;PB3200;PB3600;BM2200等。 ASEM工控机维修常见故障有:开不了机、黑屏、不能启动、电路板故障、主板、开机没反应、显示器没反应、主板故障、蓝屏、卡机、显示器信号灯一直闪、系统不能…

PlantUML语法(全)及使用教程-用例图

目录 1. 用例图1.1、什么是用例图1.2、用例图的构成1.3、参与者1.4、用例1.4.1、用例基本概念1.4.2、用例的识别1.4.3、用例的要点1.4.3、用例的命名1.4.4、用例的粒度 1.5、应用示例1.5.1、用例1.5.2、角色1.5.3、改变角色的样式1.5.4、用例描述1.5.5、改变箭头方向1.5.6、使用…

“通识+产业”大模型,“Alaya元识”的赋能路径

2023年11月,国家工业信息安全发展研究中心、工信部电子知识产权中心发布的《中国AI大模型创新和专利技术分析报告》显示,我国大模型专利申请总数已突破4万余件,大模型相关领域的创新日益活跃。 相对于“能做诗会画画”的针对to C市场的大模型…