python名片管理系统开发
作者:程序员不掉发 发布时间:2022-06-25 13:43:47
标签:python,名片,管理系统
本文实例为大家分享了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()
更多学习资料请关注专题《管理系统开发》。
来源:https://blog.csdn.net/weixin_42472371/article/details/103868785


猜你喜欢
- 又发现一个IE不标准的地方,unshift方法会返回新数组的长度,但IE6与IE7则返回undefined。var a = [3,2,1,4
- ……最近在学习yolo1、yolo2和yolo3,事实上它们和SSD网络有一定的相似性,我准备汇
- 很对编程语言都支持递归函数,Go语言也不例外,所谓递归函数指的是在函数内部调用函数自身的函数,从数学解题思路来说,递归就是把一个大问题拆分成
- 1.简介本文将介绍首先为什么需要主动关闭goroutine,并介绍如何在Go语言中关闭goroutine的常见套路,包括传递终止信号和协程内
- 一、Lambda表达式Lambda表达式又被称之为匿名函数格式lambda 参数列表:函数体def add(x,y): return x+y
- 前言:不用改掉系统python2.7 ,原来是python2.7,我们还进行python2.7的保留1.编译前准备其他库的安装(使用sudo
- 1. 使用ssh密钥免密远程登录服务器如果你还未曾成功远程登陆过服务器,下面这篇博客或许对你有帮助如果你成功远程登陆过服务器,Let'
- 说到排序,我想起一个故事,大意是说唐僧师徒西游美利坚,孙悟空买了本词典,开始逐条背诵单词。他们第一次下美国馆子的时候,不管服务员推荐什么,孙
- 说明:这里仅展示在已经获取图片链接后的下载方式,对于爬虫获取链接部分参考前面的文章1、利用文件读写的方式下载图片#第一种:用urllib2模
- 一个老程序员,各种开发语言和技术都有涉及。每
- 项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能
- 举个例子来说,要查找出2007-10-12至2007-10-31之间在网站上注册的会员,选择好日期后,点击“查询”按钮,发现2007-10-
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:<!DOCTYPE html> <html> <head&
- 最近导师让我跑模型,生物信息方向的,我一个学计算机的,好多东西都看不明白。现在的方向大致是,用深度学习的模型预测病毒感染人类的风险。既然是病
- 问题官网中给的picker例子,每项只能是个字符串,但我需要它返回每个字符串对应的自定义ID,而不是index。vantUI官网:picke
- 本文实例讲述了python中Genarator函数用法。分享给大家供大家参考。具体如下:Generator函数的定义与普通函数的定义没有什么
- 一、前提解决ES5中只有全局作用域和函数作用域,没有块级作用域而带来的不合理的场景。let基本用法用法和var 一样,只是let声明的变量只
- 有时候会遇到和上面类似的表单字段。我们可以给每个字段限制输入长度,当达到输入长度时自动切换焦点,以增强表单的易用性 <form id=
- 前言今晚就是新年夜啦,为了 刷一波存在感 送出我的祝福,同时让它看起来不像群发消息,我们简单地用三步来实现定制QQ祝福~
- 一、问题描述当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用inp