python名片管理系统开发


Posted in Python onJune 18, 2020

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

利用面向对象的开发方法,开发名片管理系统,要求用文件存储数据

#定义名片类
class Card(object):
 def __init__(self,name,phone,QQ,Email):
  self.name=name
  self.phone=phone
  self.QQ=QQ
  self.Email=Email

 def __str__(self):
  return f"{self.name},{self.phone},{self.QQ},{self.Email}"
#定义名片管理类
class Card_mannager(object):
 def __init__(self):
  self.card_list=[]
#新建名片
 def new_card(self):
  name=input("请输入姓名:")
  phone=input("请输入电话:")
  QQ=input("请输入QQ:")
  Email=input("请输入Email:")
  card=Card(name,phone,QQ,Email)
  self.card_list.append(card)
#显示名片
 def show_card(self):
  if len(self.card_list)>0:
   print("所以名片信息如下:")
   print("")
   for i in self.card_list:
    print("姓名:"+i.name,"电话:"+i.phone,"QQ:"+i.QQ,"Email:"+i.Email)
  else:
   print("没有该联系人信息!")
 #查找名片
 def search_card(self):
  name=input("请输入你要查找的姓名:")
  for i in self.card_list:
   if i.name==name:
    print("查找成功!")
    print("姓名:"+i.name,"电话:"+i.phone,"QQ:"+i.QQ,"Email:"+i.Email)
    print(" ")
    print("-"*80)
    print("1:删除")
    print("2:修改")
    print("0:返回上一级菜单")
    action=int(input("请选择操作功能:"))
    while True:
     if action == 1:
      self.card_list.remove(i)
      self.save_card()
      print("删除成功!")
      break
     elif action==2:
      i.name=input("请输入姓名:")
      i.phone=input("请输入电话:")
      i.QQ=input("请输入QQ:")
      i.Email=input("请输入Email:")
      self.save_card()
      print("修改成功!")
      break
     elif action==0:
      break
     else:
      print("输入有误,请重新输入!")
      break
    break
  else:
   print("没有该联系人信息!")
#保存名片
 def save_card(self):
  flie = open("data.data","w")
  cardlist=[i.__dict__ for i in self.card_list]
  flie.write(str(cardlist))
  flie.close()
#加载名片
 def load_card(self):
  try:
   flie = open("data.data","r")
  except:
   flie = open("data.data","w")
  else:
   data=eval(flie.read())
   if len(data)>0:
    for i in data:
     card=Card(i["name"],i["phone"],i["QQ"],i["Email"])
     self.card_list.append(card)
  finally:
   flie.close()
#菜单
 @staticmethod
 def show_menu():
  print("*"*80)
  print("欢迎使用【名片管理系统】V2.0")
  print()
  print("1.新建名片")
  print("2.显示全部名片")
  print("3.查询名片")
  print()
  print("0.退出系统")
  print("*"*80)

 def run(self):
  self.load_card()
  while True:
   self.show_menu()
   action=int(input("请选择操作功能:"))
   print("您的选择是:{0}".format(action))
   if action==1:
    self.new_card()
    self.save_card()
    print("添加成功!")
   elif action==2:
    self.show_card()
   elif action==3:
    self.search_card()
   elif action==0:
    print("欢迎再次使用!")
    break
   else:
    print("输入有误,请重新输入!")

if __name__=="__main__":
 A=Card_mannager()
 A.run()

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

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

Python 相关文章推荐
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
关于Python数据结构中字典的心得
Dec 04 Python
对python中Json与object转化的方法详解
Dec 31 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Python 3.8新特征之asyncio REPL
May 28 Python
python按行读取文件并找出其中指定字符串
Aug 08 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
python 等差数列末项计算方式
May 03 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
Jan 09 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
详解Python模块化编程与装饰器
Jan 16 Python
一文轻松掌握python语言命名规范规则
Jun 18 #Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 #Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 #Python
Python Switch Case三种实现方法代码实例
Jun 18 #Python
Python3开发环境搭建详细教程
Jun 18 #Python
Python collections.defaultdict模块用法详解
Jun 18 #Python
python实现批量命名照片
Jun 18 #Python
You might like
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
python3实现高效的端口扫描
2019/08/31 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
如何教少儿学习Python编程
2020/07/10 Python
python如何删除列为空的行
2020/07/17 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
销售队伍口号
2014/06/11 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
大学生安全教育主题班会
2015/08/12 职场文书