Python综合应用——宿舍管理系统
Python综合应用——宿舍管理系统
- 通过对 python 的函数,变量的应用,编写简单的关系系统
实现功能:- 1.新增学生
- 2.显示全部学生信息
- 3.搜索学生
可按照学生姓名,班级,学号,宿舍号标准进行查询- 4.修改信息(按照用户名进行检索标准)
备注
:修改了代码到python3.x版本
代码包目录结构如下
程序代码如下:
1 主函数,整体系统的框架(main.py)
from student_management import tools_apartment # 调用工具函数
# 无限循环,由用户主动决定什么时候退出
while True:# TODO注释,用于标记需要去做的工作tools_apartment.show_menu()action_str = input("请选择希望执行的操作: ")print("你选择的操作是 %s" % action_str)# 1,2,3针对名片的操作if action_str in ["1", "2", "3", "4"]:if action_str == "1":tools_apartment.new_card() # 调用功能为增添的函数elif action_str == "2":tools_apartment.show_all() # 调用功能为显示全部的函数elif action_str == "3":tools_apartment.search_card() # 调用功能为指定信息查找的函数elif action_str == "4":tools_apartment.search_name() # 调用功能为修改的函数# 0退出系统elif action_str == "0":print("欢迎再次使用【宿舍管理系统】:")break# 如果在开发程序时,不希望立刻编写分支内部的代码# 可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确# 运行程序时,pass关键字不会执行任何操作else:print("输入错误,请重新输入:")
2 工具函数,系统功能的存放处(tools_apartment.py)
def show_menu(): # 主菜单函数"""显示菜单"""print('*' * 50)print('欢迎使用【宿舍管理系统】')print('')print('1.新增学生')print('2.显示全部')print('3.搜索学生')print('4.修改信息')print('0.退出系统')print('*' * 50)card_list = []def new_card(): # 增加学生信息的函数"""新增名片"""print('-' * 50)print('新增学生')# 1.提示用户输入名片的详细信息name_str = input('请输入姓名:')class_str = input('请输入班级:')ID_str = input('请输入学号:')room_str = input('请输入宿舍号:')# 2.使用用户输入的信息建立一个名片字典card_dict = {'name_str': name_str,'class_str': class_str,'ID_str': ID_str,'room_str': room_str}# 3.将名片字典添加到列表中card_list.append(card_dict) # 把一个字典追加到一个列表中# print(card_list)# 4.提示用户添加成功print('添加 %s 的信息成功' % name_str)def show_all(): # 显示全部信息"""显示所有学生信息"""print('-' * 50)print('显示所有学生信息')# 判断是否存在学生记录,如果没有,提示用户并且返回if len(card_list) == 0:print('没有当前学生信息,请确认输入或者进行添加')# return 可以返回一个函数的执行结果# 下方的代码不会被执行# 如果return后面没有任何的内容,表示会返回到调用函数的位置# 并且不返回任何结果return# 打印表头for name in ["姓名", "班级", "学号", "宿舍号"]:print(name, end="\t")print('')# 打印分隔线print('=' * 50)# 遍历名片列表依次输出字典信息for card_dict in card_list:# print card_dictprint('%s\t\t%s\t\t%s\t\t%s' % (card_dict['name_str'],card_dict['class_str'],card_dict['ID_str'],card_dict['room_str']))def search_card(): # 指定信息查找的函数"""搜索名片"""print('-' * 50)print('【搜索学生信息】')print('1.按姓名搜索')print('2.按班级搜索')print('3.按学号搜索')print('4.按宿舍搜索')print('0.返回主菜单')action_str = input("请选择希望执行的操作: ")print("你选择的操作是 %s" % action_str)# 1,2,3针对名片的操作if action_str in ["1", "2", "3", "4", "0"]:if action_str == "1":find_name = input('请输入要搜索的姓名:')for card_dict in card_list:if card_dict['name_str'] == find_name:print('姓名 班级 学号 宿舍号')print('=' * 50)print('%s %s %s %s' % (card_dict['name_str'],card_dict['class_str'],card_dict['ID_str'],card_dict['room_str']))# TODO 针对找到的名片记录执行修改和删除的操作# 在我们的日常编写程序中,如果一个函数的代码太多,阅读和编写都是一件困难的事情,# 而在开发中,可以针对一个具体独立的功能来封装一个函数,由这个函数来处理具体的# 操作,这样就能保证每个函数中的代码清晰明了,功能明确breakelse:print('抱歉,没有找到学生:%s' % find_name)elif action_str == "2":find_class = input('请输入要搜索的班级:')for card_dict in card_list:if card_dict['class_str'] == find_class:print('姓名 班级 学号 宿舍号')print('=' * 50)print('%s %s %s %s' % (card_dict['name_str'],card_dict['class_str'],card_dict['ID_str'],card_dict['room_str']))else:print('抱歉,没有找到班级:%s' % find_class)elif action_str == "3":find_ID = input('请输入要搜索的学号:')for card_dict in card_list:if card_dict['ID_str'] == find_ID:print('姓名 班级 学号 宿舍号')print('=' * 50)print('%s %s %s %s' % (card_dict['name_str'],card_dict['class_str'],card_dict['ID_str'],card_dict['room_str']))breakelse:print('抱歉,没有找到学号:%s' % find_ID)elif action_str == "4":find_room = input('请输入要搜索的宿舍:')for card_dict in card_list:if card_dict['room_str'] == find_room:print('姓名 班级 学号 宿舍号')print('=' * 50)print('%s %s %s %s' % (card_dict['name_str'],card_dict['class_str'],card_dict['ID_str'],card_dict['room_str']))else:print('抱歉,没有找到宿舍:%s' % find_room)elif action_str == "0":passdef search_name(): # 信息修改前进行查找的函数"""修改信息"""print('-' * 50)print('进行学生信息的修改')# 1.提示用户输入要搜索的姓名find_name = input('请输入要修改的姓名:')# 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户for card_dict in card_list:if card_dict['name_str'] == find_name:print('姓名 班级 学号 宿舍号')print('=' * 50)print('%s %s %s %s' % (card_dict['name_str'],card_dict['class_str'],card_dict['ID_str'],card_dict['room_str']))deal_card(card_dict)break# else:# print('抱歉,没有找到:%s' % find_name)def deal_card(find_dict): # 进行信息修改的函数# print(find_dict)print("=" * 50)action_str = input('请选择要执行的操作 ''[1] 修改 [2] 删除 :')# 替换已经存在的键值对if action_str == '1':find_dict['name_str'] = input_card_info(find_dict['name_str'], '姓名:')find_dict['class_str'] = input_card_info(find_dict['class_str'], '班级:')find_dict['ID_str'] = input_card_info(find_dict['ID_str'], '学号:')find_dict['room_str'] = input_card_info(find_dict['room_str'], '学号:')print('修改学生信息成功!!!')elif action_str == '2':card_list.remove(find_dict)print('删除学生信息成功!!!')def input_card_info(dict_value, tip_message):""":param dict_value:字典中原有的值:param tip_message:输入的提示文字:return:如果用户输入了内容,就返回内容,负责返回字典中原有的值"""# 1.提示用户输入内容result_str = input(tip_message)# 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果if len(result_str) > 0:return result_str# 3.如果用户没有输入内容,返回‘字典中原有的值’else:return dict_value
3 程序运行截图
用户信息添加
显示所有用户信息
检索学生信息
按姓名搜索
按班级搜索
按学号搜索
按宿舍搜索
修改学生信息
进行修改
查看修改后的信息
Python综合应用——宿舍管理系统相关推荐
- python代码案例详解-Python综合应用名片管理系统案例详解
本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...
- Python 综合应用 —— 名片管理系统
综合应用 -- 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...
- 基于Python的简易宿舍管理系统(课程作业附课程小论文)
本文所有基础知识可通过此链接进行训练点我开练 本次为三个月学校学习的课程作业,仅用到Python入门知识,简旦易懂. 涉及到的主要有:列表,字典,函数定义调用,循环结构等入门知识 可满足大部分学校此课 ...
- python综合应用名片管理系统_综合应用——名片管理系统
目的: 综合应用已经学过的 变量 流程控制 函数 模块 开发名片管理系统 系统需求 1.程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ****************************** ...
- 名片管理系统python详解_Python综合应用名片管理系统案例详解
本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...
- python名片管理器实验步骤_Python综合应用名片管理系统案例详解
本文实例讲述了python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...
- Java实现宿舍管理系统、基于java、JDBC、GUI(含源文件/综合项目)
1 绪论 1.1 项目概述 本项目是一个小型宿舍管理系统.首先由超管增加.删除.修改.查找.导入超管和宿管信息,再由宿管界面登录负责增加.删除.修改.查找.学生的相关缺寝信息.学生通过注册将信息加到数 ...
- (附源码)Python宿舍管理系统 毕业设计231642
摘要 本论文主要论述了如何使用Django开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述宿舍管理系统的当前背景 ...
- Python宿舍管理系统 毕业设计-附源码231642
摘 要 本论文主要论述了如何使用Django开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述宿舍管理系统的当前背 ...
- Python综合应用(1)--名片管理系统开发
第一个综合应用-名片管理系统 1框架搭建 2完善功能 综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程: 框 ...
最新文章
- vs2019装了WDK后,编译其他vc工程,提示无法打开文件msvcprtd.lib
- llvm编译器实战教程第二版_LLVM编译器实战教程
- 转载: 我如何使用 Django + Vue.js 快速构建项目
- 不懂数据库索引原理?因为你心里没有一点B树
- 如何不用鼠标操作电脑
- 如何理解,互联网架构“高并发”?
- 拓端tecdat|matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
- mysql时间戳_MySQL 时间戳(Timestamp)函数
- 被称为“Google 最大黑科技”,开发谷歌大脑,这位 AI 掌门人到底有多牛?
- java计算税后工资switch语句_计算个人所得税!switch语句
- php 人物换装原理,装备库解析——换装机制,宝石选择原理
- Android系统之路(初识MTK) ------ make update-api长按Power键添加Reboot项/内置默认Ringtone/SMS/Notification/Alarm删除系统铃声
- 爱因斯坦广义相对论: 质量/能量物体是如何影响时空的?
- C#获取汉子对应的拼音(首字母大写或小写,全拼音含首个字母大写)
- poi2011 切题记
- PostgreSQL 修改密码
- 【转】拇指拇外翻的纠正训练
- SMARTS决策引擎使用手册(6)
- 凯文凯利著作《必然》
- xp访问不了win10计算机,如何解决winxp访问win10共享打印机提示凭据不足