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实现文件按照日期命名的方法
Jul 09 Python
Python中http请求方法库汇总
Jan 06 Python
Python实现购物程序思路及代码
Jul 24 Python
python3.5基于TCP实现文件传输
Mar 20 Python
django主动抛出403异常的方法详解
Jan 04 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 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
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
Js 本页面传值实现代码
2009/05/17 Javascript
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
Python中多线程及程序锁浅析
2015/01/21 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
继电保护工岗位职责
2014/01/05 职场文书
节能减排倡议书
2014/04/15 职场文书
教师个人读书活动总结
2014/07/08 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
打架检讨书
2015/01/27 职场文书
黄山导游词
2015/01/31 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
MySQL 数据类型选择原则
2021/05/27 MySQL
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android