热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python实现宿舍管理系统的方法

这篇文章将为大家详细讲解有关python实现宿舍管理系统的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通

这篇文章将为大家详细讲解有关python实现宿舍管理系统的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

通过对 python 的函数,变量的应用,编写简单的关系系统

实现功能:

1.新增学生
2.显示全部学生信息
3.搜索学生
可按照学生姓名,班级,学号,宿舍号标准进行查询
4.修改信息(按照用户名进行检索标准)

程序代码如下:

1 主函数,整体系统的框架

 import tools_apartment  # 调用工具函数
 #无限循环,由用户主动决定什么时候退出
 while True:  
 #TODO注释,用于标记需要去做的工作

 tools_apartment.show_menu()

 action_str = raw_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 工具函数,系统功能的存放处

 def show_menu():   # 主菜单函数
 """显示菜单"""
 print '*' * 50
 print '欢迎使用【宿舍管理系统】'
 print ''
 print '1.新增学生'
 print '2.显示全部'
 print '3.搜索学生'
 print '4.修改信息'
 print '0.退出系统'
 print '*' * 50


 def new_card():   # 增加学生信息的函数
 """新增名片"""
 print '-' * 50
 print '新增学生'
 # 1.提示用户输入名片的详细信息
 name_str = raw_input('请输入姓名:')
 class_str = raw_input('请输入班级:')
 ID_str = raw_input('请输入学号:')
 room_str = raw_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,
 print ''
 # 打印分隔线
 print '=' * 50

 # 遍历名片列表依次输出字典信息
 for card_dict in card_list:
  # print card_dict
  print '%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 = raw_input("请选择希望执行的操作: ")
 print("你选择的操作是 %s" % action_str)
 #1,2,3针对名片的操作
 if action_str in ["1","2","3","4","0"]:
  if action_str == "1":
  find_name = raw_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 针对找到的名片记录执行修改和删除的操作
   # 在我们的日常编写程序中,如果一个函数的代码太多,阅读和编写都是一件困难的事情,
   # 而在开发中,可以针对一个具体独立的功能来封装一个函数,由这个函数来处理具体的
   # 操作,这样就能保证每个函数中的代码清晰明了,功能明确
   break

   else:
   print '抱歉,没有找到学生:%s' % find_name
  elif action_str == "2":
  find_class = raw_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 = raw_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'])
   break
   else:
   print '抱歉,没有找到学号:%s' % find_ID


  elif action_str == "4":
  find_room = raw_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":
  pass


 def search_name():  # 信息修改前进行查找的函数
 """修改信息"""
 print '-' * 50
 print '进行学生信息的修改'

 # 1.提示用户输入要搜索的姓名
 find_name = raw_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
 action_str = raw_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 = raw_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实现宿舍管理系统的方法

关于“python实现宿舍管理系统的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


推荐阅读
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 射频系统中IM3、IIP3、OIP3、增益和P1dB的关系解析
    本文探讨了噪声系数与非线性失真对射频系统性能的影响,详细分析了IM3、IIP3、OIP3、增益(G)和1dB压缩点(P1dB)之间的关系,并提供了相关公式和图表解释。 ... [详细]
  • 本文提供了一系列Python编程基础练习题,涵盖了列表操作、循环结构、字符串处理和元组特性等内容。通过这些练习题,读者可以巩固对Python语言的理解并提升编程技能。 ... [详细]
  • JavaScript实现表格数据的实时筛选功能
    本文介绍如何使用JavaScript实现对表格数据的实时筛选,帮助开发者提高用户体验。通过简单的代码示例,展示如何根据用户输入的关键字动态过滤表格内容。 ... [详细]
  • 装饰器是一种用于在不修改原函数代码的情况下,动态地添加功能的工具。它允许你在函数执行前后插入额外的逻辑,从而增强或改变函数的行为。 ... [详细]
author-avatar
好人木庄子mzz
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有