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使用MONGODB入门实例
May 11 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
Sanic框架请求与响应实例分析
Jul 16 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
python读取几个G的csv文件方法
Jan 07 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
Python基于gevent实现高并发代码实例
May 15 Python
利用python 读写csv文件
Sep 10 Python
python 将Excel转Word的示例
Mar 02 Python
python 多态 协议 鸭子类型详解
Nov 27 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扩展函数
2006/10/09 PHP
php minixml详解
2008/07/19 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
常用PHP封装分页工具类
2017/01/14 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python基于Selenium的web自动化框架
2019/07/14 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
办护照工作证明范本
2014/01/14 职场文书
思想品德自我评价
2014/02/04 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
殡葬服务心得体会
2014/09/11 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
Go语言怎么使用变长参数函数
2022/07/15 Golang