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处理json数据中的中文
Mar 06 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
教你使用python画一朵花送女朋友
Mar 29 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
Django 限制用户访问频率的中间件的实现
Aug 23 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
pandas之分组groupby()的使用整理与总结
Jun 18 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
Python requests上传文件实现步骤
Sep 15 Python
Python request中文乱码问题解决方案
Sep 17 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 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处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
js tab 选项卡
2009/04/26 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
用Python写冒泡排序代码
2016/04/12 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python django生成迁移文件的实例
2019/08/31 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
面向对象编程OOP的优点
2013/01/22 面试题
Python如何实现单例模式
2016/06/03 面试题
JS原生实现轮播图的几种方法
2021/03/23 Javascript
土木工程专业自荐信
2013/10/04 职场文书
超市总经理岗位职责
2014/02/02 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
女娲补天教学反思
2014/02/05 职场文书
村长贪污检举信
2014/04/04 职场文书
离职证明标准格式
2014/09/15 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
公司财务经理岗位职责
2015/04/08 职场文书