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中声明只包含一个元素的元组数据方法
Aug 25 Python
python处理csv数据的方法
Mar 11 Python
Python中input与raw_input 之间的比较
Aug 20 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
Django实现表单验证
Sep 08 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
自定义django admin model表单提交的例子
Aug 23 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
总结python多进程multiprocessing的相关知识
Jun 29 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
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
Numpy的简单用法小结
2019/08/28 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
使用django自带的user做外键的方法
2020/11/30 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
如何定义一个可复用的服务
2014/09/30 面试题
关于读书的演讲稿1000字
2014/08/27 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
Django REST framework 限流功能的使用
2021/06/24 Python