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()
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值