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 字符串中的字符倒转
Sep 06 Python
python调用java的Webservice示例
Mar 10 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
Python使用getpass库读取密码的示例
Oct 10 Python
python实现员工管理系统
Jan 11 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
python实现网络五子棋
Apr 11 Python
python3 hdf5文件 遍历代码
May 19 Python
这样写python注释让代码更加的优雅
Jun 02 Python
Python初学者必备的文件读写指南
Jun 23 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 第一节 php简介
2012/04/28 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python执行get提交的方法
2015/04/29 Python
Python面向对象特殊成员
2017/04/24 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Python流程控制 if else实现解析
2019/09/02 Python
python绘制动态曲线教程
2020/02/24 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
如何唤起类中的一个方法
2013/11/29 面试题
服务中心夜班服务员岗位职责
2013/11/27 职场文书
医院实习介绍信
2014/01/12 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
学子宴致辞大全
2015/07/27 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
MySQL读取JSON转换的方式
2022/03/18 MySQL