【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面试真题,复习时非常方便******在这里插入图片描述**

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

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

相关文章

如何让员工在培训后持续应用六西格玛工具?

要让员工在培训后持续应用六西格玛工具,首先需要明确六西格玛的核心价值及其在企业中的应用意义。六西格玛是一种数据驱动的管理方法论,旨在通过减少变异和浪费,提高流程效率和质量,进而提升企业的竞争力。然而,仅仅通…

JRebelXRebel在线激活(亲测可用)

包含所有新旧版本,包括2023.4.2、2023.4.1、2023.4.0、2023.3.2、2023.3.1、2023.3.0、2023.2.2、2023.2.1、2023.2.0、2023.1.2、2023.1.1 等以及所有2022版本 JRebel&XRebel激活服务器地址 激活服务器地址(路线1,推荐),可…

走进NoSql

一、引入 1.1什么是NoSql NoSQL(Not Only SQL)是一组非关系型数据库(或称为非SQL数据库)的统称,它们提供了与传统的关系型数据库不同的数据存储和检索方式。NoSQL数据库通常用于处理大量的、分布式的、非结构化或半结…

数据精度丢失

js数据精度丢失 最近看面试题想到了之前在开发钟遇到过的问题,现总结一下 在开发过程中,发现从后台返回的数据结构中的id字段在前端显示为不正确的值。经过排查,怀疑是JavaScript中Number类型精度丢失的问题。通过将id字段的类型从Number改为…

快手开源LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star

近日,快手可灵大模型团队开源了名为LivePortrait的可控人像视频生成框架,能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上,生成极具表现力的视频结果。如下动图所示: 来自网友测试LivePortrait 来自网友测试Li…

2.I/O口

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

<Rust>egui部件学习:如何在窗口及部件显示中文字符?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析&#xff0c;主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;egui、eframe 概述 本文是本专栏的第一篇博…

应用实践之基于MobileNetv2的垃圾分类

MobileNetv2模型原理介绍 前言 MobileNet是2017年由Google团队提出的轻量级CNN网络&#xff0c;专注于移动端、嵌入式或IoT设备。它使用深度可分离卷积的思想来减小模型参数与运算量&#xff0c;同时引入宽度系数和分辨率系数以满足不同应用场景的需求。MobileNetV2则采用倒残…

STM32智能交通灯系统教程

目录 引言环境准备智能交通灯系统基础代码实现&#xff1a;实现智能交通灯系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;交通管理与优化问题解决方案与优化收尾与总结 1. 引言 智能交通灯系统通过STM…

Hadoop3:HDFS-存储优化之纠删码

一、集群环境 集群一共5个节点&#xff0c;102/103/104/105/106 二、纠删码原理 1、简介 HDFS默认情况下&#xff0c;一个文件有3个副本&#xff0c;这样提高了数据的可靠性&#xff0c;但也带来了2倍的冗余开销。Hadoop3.x引入了纠删码&#xff0c;采用计算的方式&#x…

【Python实战因果推断】37_双重差分8

目录 Diff-in-Diff with Covariates Diff-in-Diff with Covariates 您需要学习的 DID 的另一个变量是如何在模型中包含干预前协变量。这在您怀疑平行趋势不成立&#xff0c;但条件平行趋势成立的情况下非常有用&#xff1a; 考虑这种情况&#xff1a;您拥有与之前相同的营销数…

c语言唯一一个三目运算符

条件表达式由两个符号&#xff08;&#xff1f;和&#xff1a;&#xff09;组成&#xff0c;必须一起使用。要求有三个操作对象&#xff0c;称为三目运算符。 一般形式为 表达式1&#xff1f;表达式2&#xff1a;表达式3 理解如下&#xff1a; a>b?(maxa):(maxb); //相当…

Apache trino的ldap认证开启

作者&#xff1a;櫰木 1、背景 由于trino 默认没有开启用户认证体系&#xff0c;需要ldap用户进行认证。开启tls和ldap用户认证&#xff0c;提高安全性。 2、配置 前置条件。 trino 集群已经部署完成 ldap 服务 openjdk 版本大于11.0.17 生成证书 keytool -genkeypair…

【动态规划1】斐波那契数列模型篇

文章目录 声明动态规划介绍1137.第N个泰波那契数题目描述分析代码 面试题 08.01. 三步问题题目描述分析代码 746.使用最小花费爬楼梯题目描述分析代码 91.解码⽅法题目描述分析代码 声明 本篇博客为动态规的基础篇&#xff0c;从零开始学习动态规划&#xff0c;如有错误&#…

AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理

AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理 目录 AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理 一、简单介绍 二、构建问答系统 三、评估并改进问答pipeline 1…

[k8s源码]4.informer

Informer 是 client-go 库中的一个核心组件,它提供了一种高效的方式来监视 Kubernetes 集群中资源的变化。Informer 通过 Watch 机制与 API Server 建立长连接&#xff0c;初次同步时会获取资源的完整列表&#xff0c;之后只接收增量更新,大大减少了网络流量。 使用informer可…

Java常用排序算法

算法复杂度 详解Java常用排序算法&#xff08;10种&#xff0c;含演示动画&#xff09; 冒泡排序&#xff08;Bubble Sort&#xff09; arr[0] 与 arr[1]比较&#xff0c;如果前面元素大就交换&#xff0c;如果后边元素大就不交换。然后依次arr[1]与arr[2]比较&#xff0c;第…

可视化工具选择指南:助力企业数字化转型和新质生产力发展

随着信息技术的快速发展和新质生产力概念的兴起&#xff0c;可视化工具在各个行业中的作用日益凸显。这些工具不仅能够帮助用户更直观地理解和分析数据&#xff0c;还能提升团队的协作效率和决策质量。 在当今数字化转型迅速发展的背景下&#xff0c;新质生产力的概念正在成为…

SpringBoot使用开发环境的application.properties

在Spring Boot项目中&#xff0c;application.properties 或 application.yml 文件是用于配置应用程序外部属性的重要文件。这些文件允许定制你的应用&#xff0c;而无需更改代码。根据不同的运行环境&#xff0c;可以通过创建以application-{profile}.properties格式命名的文件…

python-区间内的真素数(赛氪OJ)

[题目描述] 找出正整数 M 和 N 之间&#xff08;N 不小于 M&#xff09;的所有真素数。真素数的定义&#xff1a;如果一个正整数 P 为素数&#xff0c;且其反序也为素数&#xff0c;那么 P 就为真素数。 例如&#xff0c;11&#xff0c;13 均为真素数&#xff0c;因为 11 的反序…