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中的自定义函数学习笔记
Sep 23 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
python图形用户接口实例详解
Dec 16 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
python手写均值滤波
Feb 19 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
你需要学会的8个Python列表技巧
Jun 24 Python
python如何实现图片压缩
Sep 11 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
深入解析Python中的线程同步方法
2016/06/14 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
python实现音乐下载器
2018/04/15 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
python标准库os库的函数介绍
2020/02/12 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
马智宇婚礼主持词
2014/03/22 职场文书
转让协议书范本
2014/09/13 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python
css弧边选项卡的项目实践
2023/05/07 HTML / CSS