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

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.hqwc.cn/news/231505.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络通信与TCP.IP协议

网络通信与TCP.IP协议 URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联网上所处的位置)。可见 URL 是 URI 的子集 URL (Uniform Resource Locator),统一资源定位符 ,用于描述一个网络上的资源 DNS: &#…

TableAgent:首个国产可私有部署的企业级Code Interpreter

TableAgent公测地址:https://tableagent.DataCanvas.com 数字化时代,数据分析的重要性犹如空气般无处不在。商业数据分析是数字化管理、智能决策的基础,同时数据分析又是一个专业性极强的工作,描述性分析、诊断性分析、预测性分…

版本控制系统Git学习笔记-Git基本知识介绍

目录 前言一、版本控制系统1.1 什么是版本控制系统1.2 本地版本控制系统1.3 集中化的版本控制系统1.3 分布式版本控制系统 二、Git简介2.1 数据处理方式2.2 几个特点2.2.1 几乎所有操作都是本地执行2.2.2 Git保证完整性2.2.3 Git一般只添加数据 2.3 Git中文件状态2.3.1 三种文件…

排序算法基本原理及实现2

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 🌤️冒泡排序 &#x1…

AI伪原创软件-AI伪原创工具下载

在当今数字化时代,创作者们在追求独特创意的同时,也面临着时间和灵感的双重挑战。AI伪原创技术应运而生,为创作者提供了一种快捷而便利的解决方案。本文将专心分享两款备受瞩目的AI伪原创工具,147SEO伪原创、百度文心一言伪原创&a…

数据结构-02-链表

相比数组,链表是一种稍微复杂一点的数据结构。掌握起来也要比数组稍难一些。这两个非常基础、非常常用的数据结构。 1-链表结构 数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个20MB大小的数组,当内存中没有连续的、…

串口理解小结(UART)

串口作为单片机的必备外设,主要用于单片机与其它模块的信息通讯、程序烧录和升级作用。 UART全称为通用异步收发器。 可分为: 一、串行和并行 串行指数据位只能一位一位地发送 并行之多个数据位同时发送 二、同步和异步 同步和异步是相当于时钟而…

【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

文章目录 行为型模式1、模板方法模式(1)概述(2)结构(3)案例实现(4)优缺点(5)适用场景(6)JDK源码解析(7)模板方…

用customize-cra+react-app-rewired配置less+css module

1. 安装 npm i less less-loader -D npm i customize-cra-less-loader -D2.添加配置项 //config-overrides.js const { override } require(customize-cra); const addLessLoader require("customize-cra-less-loader");module.exports {webpack: override(addL…

爬虫学习 逆向爬虫(六)

多任务异步协程 协程:更高效的利用CPU import timedef func():print("黎明")time.sleep(3)print("还是黎明")func() 等待时机长 sleep时CPU不再工作 IO操作(费时不费力)->阻塞 线程运行阻塞后 移出主线程 移动到下一个 4个任务一个线程 …

通用plantuml模板头

通用plantuml文件 startuml participant Admin order 0 #87CEFA // 参与者、顺序、颜色 participant Student order 1 #87CEFA participant Teacher order 2 #87CEFA participant TestPlayer order 3 #87CEFA participant Class order 4 #87CEFA participant Subject order …

微服务API网关Spring Cloud Gateway实战

概述 微服务网关是为了给不同的微服务提供统一的前置功能;网关服务可以配置集群,以承载更多的流量;负载均衡与网关互相成就,一般使用负载均衡(例如 nginx)作为总入口,然后将流量分发到多个网关…