python实现名片管理系统


Posted in Python onNovember 29, 2018

本文实例为大家分享了python实现名片管理系统的具体代码,供大家参考,具体内容如下

系统需求

程序启动,显示名片管理系统欢迎界面,并显示功能菜单

**************************************************
欢迎使用【名片管理系统】V1.0
 
1. 新建名片
2. 显示全部
3. 查询名片
 
0. 退出系统
**************************************************

  • 用户用数字选择不同的功能
  • 根据功能选择,执行不同的功能
  • 用户名片需要记录用户的 姓名、电话、QQ、邮件
  • 如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
  • 信息保存本地

需求分析

  • 采用分文件的方式进行开发,主文件cards_main.py复杂业务逻辑,cards_tool.py文件负责具体的功能实现。
  • 新建名片、显示全部、查询名片 对应相应的功能函数。如果代码过长,再进行拆分。
  • 数据结构的选择?一条名片包含多个键值对采用字典数据类型,所有名片信息 采用列表数据结构。
  • 保证名片信息的本地保存和读取使用python的文件操作,进入名片系统先对名信息文件进行读取,在退出名片系统时,将所有名片信息重新写入到名片文件中。

代码实现

代码很简洁,注释太多 容易凌乱。

cards_main.py

import cards_tool
# 主业务逻辑
cards_tool.read_card()
 
 
# 1.显示用户主界面
while True:
 cards_tool.show_menu()
 menu_str = input("请选择执行的操作:")
 print("您选择的功能:%s" % menu_str)
 if menu_str == "1":
  cards_tool.create_card()
 elif menu_str == "2":
  cards_tool.show_card_all()
 elif menu_str == "3":
  cards_tool.search_card()
 elif menu_str == "0":
  cards_tool.write_card()
  break
 else:
  print("输入有误,请重新输入")

cards_tool.py

import os
card_info_all = [] # 所有名片信息
# 名片管理 具体功能
def write_card():
 """退出系统时,将名片信息保存到文件夹中"""
 f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt", "w")
 f.write(str(card_info_all))
 f.close()
 
 
def read_card():
 """进入系统时,将名片信息加载到内存中"""
 is_exist = os.path.exists("E:\\workspace_python\\FirstDemo\\名片管理系统.txt")
 if is_exist:
  # 文件存在将信息加载到内存中
  f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt","r")
  global card_info_all
  card_info_all = eval(f.read())
  # print(card_info_all)
  f.close()
 else:
  # 没有文件创建空文件
  f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt", "w")
  f.close()
 print(is_exist)
 
 
def show_menu():
 """主菜单页面展示"""
 print("*"*30)
 print("欢迎使用[命名管理系统] v1.0")
 print()
 print("1.新建名片")
 print("2.显示全部")
 print("3.查询名片")
 print()
 print("0.退出系统")
 print("*"*30)
 
 
def create_card():
 """新建名片"""
 print("功能:新建名片")
 name = input("请输入姓名:")
 phone = input("请输入电话:")
 qq = input("请输入qq号:")
 email = input("请输入邮箱:")
 card_info = {"name":name,"phone":phone, "qq":qq, "email":email}
 card_info_all.append(card_info)
 print("添加%s的名片成功" % name)
 
 
def show_card_all():
 """显示所有名片"""
 print("功能:显示全部")
 if not len(card_info_all):
  print("没有任何名片")
  return
 print("name".ljust(14),"phone".ljust(14),"qq".ljust(14),"email".ljust(14),sep="")
 print("-"*56)
 for card in card_info_all:
  print(card["name"].ljust(14),card["phone"].ljust(14),card["qq"].ljust(14),card["email"].ljust(14),sep="")
  print("-"*56)
 
 
def search_card():
 """查询名片"""
 print("功能:查询名片")
 name = input("请输入查询的姓名:")
 for card in card_info_all:
  if name == card["name"]:
   print("name".ljust(14), "phone".ljust(14), "qq".ljust(14), "email".ljust(14), sep="")
   print("-" * 56)
   print(card["name"].ljust(14), card["phone"].ljust(14), card["qq"].ljust(14), card["email"].ljust(14),sep="")
   # 名片高级处理
   set_card(card)
   break;
 else:
  print("没有找到%s" % name)
 
 
def set_card(card):
 """名片的高级设置"""
 while True:
  menu = input("请输入对名片的操作:1.修改/ 2.删除/ 0.返回上一级")
  if menu == "1":
   name = input("请输入姓名:")
   phone = input("请输入电话:")
   qq = input("请输入qq号:")
   email = input("请输入邮箱:")
   card["name"] = name
   card["phone"] = phone
   card["qq"] = qq
   card["email"] = email
   print("%s 的名片修改成功" % name)
   return
  elif menu == "2":
   card_info_all.remove(card)
   print("删除名片成功")
   return
  elif menu == "0":
   return
  else:
   print("输入有误,请重新输入")

代码运行结果

python实现名片管理系统

python实现名片管理系统

练习总结

这个小练习主要是对python基础知识的综合运用,入手python 这些基本知识一定要掌握,有过其他编程语言经验的小伙伴是不是感觉很简单。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中__name__的使用实例
Apr 14 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
python将数组n等分的实例
Dec 02 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
Python的in,is和id函数代码实例
Apr 18 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
Python自动化操作实现图例绘制
Jul 09 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
matplotlib之多边形选区(PolygonSelector)的使用
Feb 24 Python
Django展示可视化图表的多种方式
Apr 08 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 #Python
Python中logging.NullHandler 的使用教程
Nov 29 #Python
Mac下Anaconda的安装和使用教程
Nov 29 #Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
Nov 29 #Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 #Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 #Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 #Python
You might like
php session应用实例 登录验证
2009/03/16 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
brook javascript框架介绍
2011/10/10 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
js加强的经典分页实例
2013/03/15 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
python实现滑雪者小游戏
2020/02/22 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
教师简历自我评价
2014/02/03 职场文书
《雷雨》教学反思
2014/02/20 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
酒店开业策划方案
2014/06/02 职场文书
授权委托书公证
2014/09/14 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
单位政审意见范文
2015/06/04 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL