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.mzph.cn/news/183493.shtml

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

相关文章

Django路由分发

首先明白一点,Django的每一个应用下都可以有自己的templates文件夹,urls.py文件夹,static文件夹,基于这个特点,Django能够很好的做到分组开发(每个人只写自己的app),作为老大&#x…

如何自定义spring-boot-starter

1. 创建自定义starter 1.1 生成Maven工程 mvn archetype:generate -DarchetypeGroupIdorg.apache.maven.archetypes -DarchetypeArtifactIdmaven-archetype-quickstart -DarchetypeVersion1.4交互式输入groupId、artificatId、version,生成Maven工程后用IDEA打开 …

element ui 表格合计项合并

如图所示&#xff1a; 代码&#xff1a; <el-table height"400px" :data"tableData " borderstyle"width: 100%"stripe show-summaryref"table"id"table"> </el-table>监听表格 watch: { //监听table这个对象…

【华为数通HCIP | 网络工程师】821刷题日记-IS-IS(2)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

【面试】typescript

目录 为什么用TypeScript&#xff1f; TS和JS的区别 控制类成员可见性的访问关键字&#xff1f; public protected&#xff09;&#xff0c;该类及其子类都可以访问它们。 但是该类的实例无法访问。 私有&#xff08;private&#xff09;&#xff0c;只有类的成员可以访问…

Apache Flink(三):Flink核心特性及应用场景

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

三次握手和四次挥手

TCP 协议简述 TCP 提供面向有连接的通信传输&#xff0c;面向有连接是指在传送数据之前必须先建立连接&#xff0c;数据传送完成后要释放连接。 无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接…

com.mongodb.MongoSocketOpenException: Exception opening socket

估计mongodb数据库没开启&#xff0c;或者链接错误了&#xff0c;谁又改了&#xff0c;唉 2023-11-29 16:19:45.818 INFO 39552 --- [127.0.0.1:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server 127.0.0.1:27017…

Intellij idea 内存不够用了,怎么处理?

目录 如何判断内存不够用了 下面演示一下如何开启内存指示器&#xff08;Memory Indicator&#xff09; 解决方案 第一种&#xff1a;双击"内存指示器(Mempory Indicator)" 第二种&#xff1a;增大Intellij Idea 最大可使用内存 如何判断内存不够用了 运行项目后…

(一)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介&#xff1a; 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献&#xff1a; [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…

Linux 基本语句_13_消息队列

概念&#xff1a; 不同进程能通过消息队列来进行通信&#xff0c;不同进程也能获取或发送特定类型的消息&#xff0c;即选择性的收发消息。 一般一个程序采取子进程发消息&#xff0c;父进程收消息的模式 常用函数功能&#xff1a; fork(); // 创建子进程 struct msgbuf{ …

(C++)移动零--双指针法

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://le…

Web安全漏洞分析-XSS(下)

随着互联网的迅猛发展&#xff0c;Web应用的普及程度也愈发广泛。然而&#xff0c;随之而来的是各种安全威胁的不断涌现&#xff0c;其中最为常见而危险的之一就是跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称XSS&#xff09;。XSS攻击一直以来都是Web安全领…

ntopng如何将漏洞扫描与流量监控相结合,以提高网络安全性

来源&#xff1a;艾特保IT 虹科干货 | ntopng如何将漏洞扫描与流量监控相结合&#xff0c;以提高网络安全性 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; ntopng为人所知的“身份”是被动流量监控。然而&#xff0c;如今的ntopng6.0也进化出主动监控功能来&#xf…

人工智能原理复习--知识表示(二)

文章目录 上一篇产生式表示法推理方式 结构化表示语义网络语义网络表示知识的方法和步骤应用题目 框架表示法下一篇 上一篇 人工智能原理复习–知识表示&#xff08;一&#xff09; 产生式表示法 把推理和行为的过程用产生式规则表示&#xff0c;所以又称基于规则的系统。 产…

支持向量机,硬间隔,软间隔,核技巧,超参数设置,分类与回归

SVM&#xff08;Support Vector Machine&#xff0c;支持向量机&#xff09;是一种非常常用并且有效的监督学习算法&#xff0c;在许多领域都有广泛应用。它可以用于二分类问题和多分类问题&#xff0c;并且在处理高维数据和特征选择方面非常强大。SVM算法的核心思想是通过找到…

在PyCharm中运行OpenCV

一、安装Anaconda配置python环境 这里选用清华大学开源软件镜像站&#xff1a;anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载的速度更快。 点击下载链接&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsin…

统信桌面版arm系统安装火狐浏览器和浏览器驱动

一、系统信息 二、下载浏览器和驱动 1、浏览器 https://security.debian.org/debian-security/pool/updates/main/f/firefox-esr/firefox-esr_115.5.0esr-1~deb10u1_arm64.deb 2、驱动 https://github.com/mozilla/geckodriver/releases geckodriver-v0.33.0-linux-aarch6…

鸿蒙【HarmonyOS】开发初体验

官方开发文档 依照官方开发文档进行配置&#xff0c;官方的文档很详细&#xff08;虽然有些粗糙&#xff09;。 其实只要下载了deveco studio&#xff0c;其他就按照next来就行了。配置都很清楚。 顺便提一下&#xff0c;deveco是基于intellij 的&#xff0c;体验很不错&…

什么是供应链攻击?

随着企业越来越依赖技术、连接性和第三方&#xff0c;供应链攻击变得越来越普遍。这些攻击旨在通过供应商和业务合作伙伴损害公司。 供应链攻击可能对企业和组织构成重大威胁&#xff0c;损害其安全以及向客户提供的产品和服务的安全。 在本文中&#xff0c;我们将探讨供应链…