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综合应用——宿舍管理系统相关推荐

  1. python代码案例详解-Python综合应用名片管理系统案例详解

    本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  2. Python 综合应用 —— 名片管理系统

    综合应用 -- 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...

  3. 基于Python的简易宿舍管理系统(课程作业附课程小论文)

    本文所有基础知识可通过此链接进行训练点我开练 本次为三个月学校学习的课程作业,仅用到Python入门知识,简旦易懂. 涉及到的主要有:列表,字典,函数定义调用,循环结构等入门知识 可满足大部分学校此课 ...

  4. python综合应用名片管理系统_综合应用——名片管理系统

    目的: 综合应用已经学过的 变量 流程控制 函数 模块 开发名片管理系统 系统需求 1.程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ****************************** ...

  5. 名片管理系统python详解_Python综合应用名片管理系统案例详解

    本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  6. python名片管理器实验步骤_Python综合应用名片管理系统案例详解

    本文实例讲述了python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  7. Java实现宿舍管理系统、基于java、JDBC、GUI(含源文件/综合项目)

    1 绪论 1.1 项目概述 本项目是一个小型宿舍管理系统.首先由超管增加.删除.修改.查找.导入超管和宿管信息,再由宿管界面登录负责增加.删除.修改.查找.学生的相关缺寝信息.学生通过注册将信息加到数 ...

  8. (附源码)Python宿舍管理系统 毕业设计231642

    摘要 本论文主要论述了如何使用Django开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述宿舍管理系统的当前背景 ...

  9. Python宿舍管理系统 毕业设计-附源码231642

    摘 要 本论文主要论述了如何使用Django开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述宿舍管理系统的当前背 ...

  10. Python综合应用(1)--名片管理系统开发

    第一个综合应用-名片管理系统 1框架搭建 2完善功能 综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程: 框 ...

最新文章

  1. vs2019装了WDK后,编译其他vc工程,提示无法打开文件msvcprtd.lib
  2. llvm编译器实战教程第二版_LLVM编译器实战教程
  3. 转载: 我如何使用 Django + Vue.js 快速构建项目
  4. 不懂数据库索引原理?因为你心里没有一点B树
  5. 如何不用鼠标操作电脑
  6. 如何理解,互联网架构“高并发”?
  7. 拓端tecdat|matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
  8. mysql时间戳_MySQL 时间戳(Timestamp)函数
  9. 被称为“Google 最大黑科技”,开发谷歌大脑,这位 AI 掌门人到底有多牛?
  10. java计算税后工资switch语句_计算个人所得税!switch语句
  11. php 人物换装原理,装备库解析——换装机制,宝石选择原理
  12. Android系统之路(初识MTK) ------ make update-api长按Power键添加Reboot项/内置默认Ringtone/SMS/Notification/Alarm删除系统铃声
  13. 爱因斯坦广义相对论: 质量/能量物体是如何影响时空的?
  14. C#获取汉子对应的拼音(首字母大写或小写,全拼音含首个字母大写)
  15. poi2011 切题记
  16. PostgreSQL 修改密码
  17. 【转】拇指拇外翻的纠正训练
  18. SMARTS决策引擎使用手册(6)
  19. 凯文凯利著作《必然》
  20. xp访问不了win10计算机,如何解决winxp访问win10共享打印机提示凭据不足

热门文章

  1. 割平面法 matlab,割平面法matlab
  2. 如何修改已编译的dll文件
  3. GISAXS和GIWAXS的分析
  4. 【2020年“科创中国”】先导技术榜单、新锐企业榜单、产学研融通组织榜单发
  5. 如何获取微信应用appid
  6. DOS窗口查找电脑端口占用情况
  7. 牛客练习赛63 牛牛的树行棋
  8. 【Vue】转-Vue.js经典开源项目汇总
  9. sqlite3命令行把.db文件导成.txt时报错及中文乱码
  10. 高效记忆/形象记忆(13)110数字编码表 71-80