python实现宿舍管理系统


Posted in Python onNovember 22, 2019

Python综合应用——宿舍管理系统,供大家参考,具体内容如下/p>

通过对 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 相关文章推荐
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
python简易远程控制单线程版
Jun 20 Python
Python实现FTP文件传输的实例
Jul 07 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
python实现简单颜色识别程序
Feb 19 Python
Django认证系统user对象实现过程解析
Mar 02 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
Python接口测试结果集实现封装比较
May 01 Python
python实现经纬度采样的示例代码
Dec 10 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 Python
python实现简易淘宝购物
Nov 22 #Python
Python调用graphviz绘制结构化图形网络示例
Nov 22 #Python
python实现简单图书管理系统
Nov 22 #Python
使用Python生成200个激活码的实现方法
Nov 22 #Python
Python的几种主动结束程序方式
Nov 22 #Python
python实现超市商品销售管理系统
Nov 22 #Python
python实现二分类的卡方分箱示例
Nov 22 #Python
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
webpack3之loader全解析
2017/10/26 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
pyside写ui界面入门示例
2014/01/22 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
Sanic框架配置操作分析
2018/07/17 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
Python API len函数操作过程解析
2020/03/05 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
西安交大自主招生自荐信
2014/01/27 职场文书
搞笑征婚广告词
2014/03/17 职场文书
春节晚会主持词
2014/03/24 职场文书
白酒营销策划方案
2014/08/17 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android
Python的property属性详细讲解
2022/04/11 Python