【Python基础教程】制作一个宿舍管理系统,数据库宿舍管理系统代码!(完整版,附源码)

在这里插入图片描述

今天我们一起学习一个新的小案例——宿舍管理系统。主要涉及列表、字典的初始化、增加、删除、修改和查询操作,以及函数的定义和调用。

一、需求:

    1. 有操作指引界面,显示操作号
    1. 能添加一个新的入住学生信息,包括学生姓名、宿舍号+床位号(如313-3)、班级、入住情况(在校or请假)
    1. 能删除一个学生的住宿信息,输入名字查询,存在则删除并提示已删除,假如不存在则提示,系统不存在该学生的信息。
    1. 能修改一个学生的住宿信息,输入名字查询,存在则让用户重新输入修改信息,并提示已修改,假如不存在则提示,系统不存在该学生的信息。
    1. 能查询一个学生的住宿信息,输入名字查询,存在则给出该学生的住宿信息,假如不存在则提示,系统不存在该学生的信息。
    1. 能显示所有学生的住宿信息
    1. 能显示所有请假学生的住宿信息
    1. 能退出系统
      在这里插入图片描述

二、代码编写

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

  • 2.定义软件提示界面函数
def Directory():
#学生宿舍管理系统 V1.0
# 1打印功能提示
print('=' * 50)
print('学生宿舍管理系统 V1.0')
print('1:添加一个新的入住学生信息')
print('2:删除一个学生的住宿信息')
print('3:修改一个学生的住宿信息')
print('4:查询一个学生的住宿信息')
print('5:显示所有的学生的住宿信息')
print('6.显示所有请假学生的信息')
print('7:退出系统')
print('=' * 50)

  • 3.定义添加一个学生住宿信息函数
#添加学生信息函数
def  Add_infor():

  • 定义一个新的字典,用来存储一个新的学生信息
new_infor = {}
new_infor['student_name'] = input('请输入新入住的学生名字:')
new_infor['D_num'] = input('请输入宿舍号+床位号(如313-3):')
new_infor['Class_num'] = input('请输入班级:')
new_infor['status'] = input('请输入入住情况(在校or请假):')

  • 将一个字典,添加到列表中
student_infors.append(new_infor)

  • 4.定义删除一个学生住宿信息的函数
#删除学生信息函数
def Delete_infor():
del_name = input("请输入要删除的退宿学生名字:")
find_flag = False
for line in student_infors:
if line['student_name'] == del_name:
find_flag = True
student_infors.remove(line)
break
if find_flag:
print("已删除!")
else:
print("系统不存在该学生的信息!")

  • 5.定义一个修改一个学生的住宿信息函数
# 修改某个学生的信息
def Update_one_infor():
old_name = input('请输入要修改的学生姓名:')
flag = 0
for line in student_infors:
if line['student_name'] == old_name:
line['student_name'] = input('请输入需要修改的学生名字:')
line['D_num'] = input('请输入需要修改的宿舍号+床位号(如313-3):')
line['Class_num'] = input('请输入需要修改的班级:')
line['status'] = input('请输入需要修改的入住情况(在校or请假):')
flag = True
break
if flag:
print("已修改!")
else:
print('系统不存在该学生的信息!')

  • 6.定义一个查询某个学生的住宿信息函数
# 查找某个学生的信息
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('系统不存在该学生的信息')

  • 7.定义一个显示所有学生住宿信息函数
#查找所有入住学生信息
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']))

  • 8.定义一个显示所有请假学生住宿信息函数
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('系统不存在请假学生')

  • 9.定义一个主函数,根据软件流程要求组织调用功能函数,实现整个系统的功能。
def main():
Directory()
while True:
# 2获取用户选择
num = input('请输入操作序号:')
if num.isdigit():
num = int(num)
if num == 1:
print('1:添加一个新的入住学生信息')
Add_infor()
elif num == 2:
print('2:删除一个学生住宿信息')
Delete_infor()
elif num == 3:
print('3:修改一个学生住宿信息')
Update_one_infor()
elif num == 4:
print('4:查询一个学生住宿信息')
Find_one_infor()
elif num == 5:
print('5:显示所有的学生住宿信息')
print()
Find_all_infor()
elif num == 6:
print('6:显示所有请假学生信息')
Find_leave()
elif num == 7:
print("已退出系统!")
break
else:
print('输入有误!目前只有1-7项功能哦')
continue
print('')
else:
print("输入错误,请重新输入!1-7")

  • 10.顶格调用主函数,启动软件
main()

一个宿舍管理系统就写好啦!

拓展:大家可以尝试用tinker给软件做界面。也可以考虑使用利用pandas操作Excel文件实现数据的读写和存储。或者使用数据库连接。

看完案例的小伙伴们点个在看,顺便扫码帮忙关注一下呗,你的支持是我继续推新案例的动力。

最后这里免费分享给大家一份Python学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

编程资料、学习路线图、源代码、软件安装包等!

看下方图片哦(掉落)↓↓↓

Python所有方向的学习路线图,清楚各个方向要学什么东西
100多节Python课程视频,涵盖必备基础、爬虫和数据分析
100多个Python实战案例,学习不再是只会理论
华为出品独家Python漫画教程,手机也能学习
历年互联网企业Python面试真题,复习时非常方便******在这里插入图片描述**

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯14小白月赛题解

直接输出pi/ti,for遍历 #include <iostream> using namespace std; #define int long long int a,b,c ; double t1.00; signed main() {cin>>a;int an0;for(int i1;i<a;i){cin>>b>>c;if(t>c*1.00/b){tc*1.00/b;ani;} }cout<<an<<e…

搭建hadoop+spark完全分布式集群环境

目录 一、集群规划 二、更改主机名 三、建立主机名和ip的映射 四、关闭防火墙(master,slave1,slave2) 五、配置ssh免密码登录 六、安装JDK 七、hadoop之hdfs安装与配置 1)解压Hadoop 2)修改hadoop-env.sh 3)修改 core-site.xml 4)修改hdfs-site.xml 5) 修改s…

使用GPT3.5,LangChain,FAISS和python构建一个本地知识库

引言 介绍本地知识库的概念和用途 在现代信息时代&#xff0c;我们面临着海量的数据和信息&#xff0c;如何有效地管理和利用这些信息成为一项重要的任务。本地知识库是一种基于本地存储的知识管理系统&#xff0c;旨在帮助用户收集、组织和检索大量的知识和信息。它允许用户…

深度学习驱动智能超材料设计与应用

在深度学习与超材料融合的背景下&#xff0c;不仅提高了设计的效率和质量&#xff0c;还为实现定制化和精准化的治疗提供了可能&#xff0c;展现了在材料科学领域的巨大潜力。深度学习可以帮助实现超材料结构参数的优化、电磁响应的预测、拓扑结构的自动设计、相位的预测及结构…

软件测试——非功能测试

工作职责&#xff1a; 1.负责产品系统测试&#xff0c;包括功能测试、性能测试、稳定性测试、用户场景测试、可靠性测试等。 2.负责测试相关文档的编写&#xff0c;包括测试计划、测试用例、测试报告等。 3.负责自动化测试框架、用例的维护。 岗位要求&#xff1a; 1.熟练…

数据可视化在智慧医疗中的重要应用

在现代智慧医疗的推动下&#xff0c;数据可视化技术正日益成为医疗领域的重要工具。通过将复杂的医疗数据转换为直观的图表和图形&#xff0c;数据可视化不仅提升了医疗服务的效率&#xff0c;还极大地改善了患者的就医体验。 在智慧医疗中&#xff0c;数据可视化首先在电子病历…

知识图谱和 LLM:利用Neo4j驾驭大型语言模型(探索真实用例)

这是关于 Neo4j 的 NaLLM 项目的一篇博客文章。这个项目是为了探索、开发和展示这些 LLM 与 Neo4j 结合的实际用途。 2023 年,ChatGPT 等大型语言模型 (LLM) 因其理解和生成类似人类的文本的能力而风靡全球。它们能够适应不同的对话环境、回答各种主题的问题,甚至模拟创意写…

实时系统Preempt RT与Xenomai之争!谁更主流,谁更实时

版权声明&#xff1a;本文主要内容基于“北京盟通科技有限公司”授权提供的文件&#xff0c;由“创龙科技”进行整理得出。感谢“盟通科技”的慷慨支持&#xff0c;让更多人了解Linux系统的“实时拓展”选择知识。 选择争论一直存在 大家知道EtherCAT是实时现场总线技术&…

Java中使用加密盐

0 前言 众所周知&#xff0c;密码肯定不能用明文存储。 之前一直使用MD5进行加密&#xff0c;现在才知道有彩虹表这回事。所以记录一下对应的处理方式&#xff1a;加密盐。 1 彩虹表 例如用MD5加密&#xff0c;随便没法破解&#xff0c;但是有些常用的字符被收集到彩虹表里…

OSU!题解(概率dp)

题目&#xff1a;OSU! - 洛谷 思路&#xff1a; 设E()表示截止到i所获得的分数&#xff1b; 对于到i点的每一个l&#xff0c;如果第i1点为1&#xff0c;那么会新增分数3*l^23*l1; 就有递推公式方程&#xff1a; E()E()p[i1]p*(3*l^23*l1);(p代表截止到i获得长度l的概率)&a…

关于mybatis中语法的错误记录

大家注意再写mybatis时候的逗号&#xff0c;虽然不起眼&#xff0c;但是会一直报错&#xff0c;最后一个字段不需要逗号&#xff0c;其余字段全部需要逗号。

【个人笔记】685. 冗余连接 II 的解释(并查集)

一棵树有n个点和n条边&#xff0c;返回一条能删除的边&#xff0c;使得剩下的图是有 n 个节点的有根树。 解释&#xff1a; 注意不冗余的有根树的特性&#xff01;**根节点入度为0&#xff0c;其余结点只有一个入度&#xff01;**所以冗余的两种情况如下&#xff1a; &#xff…

Vue3项目基于Axios封装request请求

在 Vue 3 的项目开发中&#xff0c;使用 Axios 进行 HTTP 请求是非常常见的作法&#xff0c;为了更方便开发者更高效的进行代码编写和项目的维护&#xff0c;可以通过再次封装 Axios 来实现。 在本文中&#xff0c;博主将详细指导你如何在自己的 Vue 3 项目中使用 Axios 二次封…

Vue学习---vue cli 项目创建

使用的编辑工具webStorm 创建例子: hello vue create hello 选择 vue3 进行创建 运行 npm run serve 测试访问&#xff1a;http://localhost:8080 改动内容重新编译&#xff1a; npm run build dist 目录就是编译后的可运行内容

客流统计系统优化景区服务流程,增强游客满意度

在当今旅游业蓬勃发展的时代&#xff0c;景区面临着越来越多的挑战和机遇。如何提供更优质、更高效的服务&#xff0c;满足游客日益增长的需求&#xff0c;成为了景区管理者们关注的焦点。客流统计系统作为一种创新的技术手段&#xff0c;正逐渐成为优化景区服务流程、增强游客…

windows 打包pyd文件

1.新建一个py文件&#xff0c;myunit.py&#xff0c;里面的代码是: class Adder: def __init__(self, a, b): self.a a self.b b def add(self): return self.a self.b 2.新建一个py文件&#xff0c;setup.py&#xff0c;里面的代码是: from setuptools import setup fro…

巧用通义灵码助力护网面试

前言 前几年护网还算是一个比较敏感的话题&#xff0c;但是随着近段时间的常态化开始&#xff0c;护网行动也是逐渐走进了大众的视野&#xff0c;成为了社会各界共同关注的安全盛事。本篇也是受通义灵码备战求职季活动的启发&#xff0c;结合近期要开始的护网行动&#xff0c…

持续集成06--Jenkins构建触发器

前言 在持续集成&#xff08;CI&#xff09;的实践中&#xff0c;构建触发器是自动化流程中不可或缺的一环。它决定了何时启动构建过程&#xff0c;从而确保代码变更能够及时地得到验证和反馈。Jenkins&#xff0c;作为业界领先的CI/CD工具&#xff0c;提供了多种构建触发器选项…

2.I/O口

I/O输出(点灯) 分析电路 看电路图&#xff0c;元器件形成电压差&#xff0c;即可点亮LED灯 代码编写 使用不同操作进行LED控制 #include "reg52.h" //51单片机头文件 #include <intrins.h> sbit LED1 P1^0; //引脚初始化&#xff1a;P1^0&#xff1a;对应引脚…

RocketMQ~架构与工作流程了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统&#xff0c;由阿里巴巴团队开发&#xff0c;在 2016 年底贡献给 Apache&#xff0c;成为了 Apache 的一个顶级项目。 在阿里内部&#xff0c;RocketMQ 很好地服务了集…