Python高级——实现简单名片管理系统
一、任务要求:
二、代码实现:
class Person:
def __init__(self,name,phone,qq,address):
self.name = name
self.phone = phone
self.qq = qq
self.address = address
def __str__(self):
return f"姓名:{self.name},联系方式:{self.phone},QQ号:{self.qq},住址:{self.address}"
class CardMenu:
def __init__(self,file):
self.file = file
self.cards = self.load_cards()
def load_cards(self):
try:
with open(self.file,"r",encoding="utf-8") as file:
lines = file.readlines()
cards = []
for line in lines:
name,phone,qq,address = line.strip().split(',')
cards.append(Person(name,phone,qq,address))
return cards
except Exception as e:
print(f"读取文件时出错:{e}")
return []
def save_cards(self):
try:
with open(self.file,"w",encoding="utf-8") as file:
for card in self.cards:
file.write(f"{card.name},{card.phone},{card.qq},{card.address}\n")
except Exception as e:
print(f"保存文件时出错:{e}")
def add_card(self,name,phone,qq,address):
p1 = Person(name,phone,qq,address)
self.cards.append(p1)
self.save_cards()
print("名片添加成功!")
def del_card(self,name):
for card in self.cards:
if card.name == name:
self.cards.remove(card)
self.save_cards()
print("名片删除成功!")
return
print("未找到该名片")
def modify_card(self,name):
for card in self.cards:
if card.name == name:
phone = input("请输入联系方式:")
qq = input("请输入QQ号:")
address = input("请输入住址:")
card.phone = phone
card.qq = qq
card.address = address
self.save_cards()
print("名片修改成功!")
return
print("未找到该名片!")
def find_card(self,name):
for card in self.cards:
if card.name == name:
print(card)
return
print("未找到该名片!")
def show_cards(self):
for card in self.cards:
print(card)
if __name__ == '__main__':
file = "card.txt"
CardMenu = CardMenu(file)
while 1:
print("-------------名片管理系统-------------")
print("1.增加一个名片")
print("2.删除一个名片")
print("3.修改一个名片")
print("4.查找一个名片")
print("5.显示所有名片")
print("6.退出系统")
print("-----------------------------------")
choice = input("请输入选择:")
if choice == '1':
name = input("请输入姓名:")
phone = input("请输入联系方式:")
qq = input("请输入QQ号:")
address = input("请输入住址:")
CardMenu.add_card(name,phone,qq,address)
elif choice == '2':
name = input("请输入要删除的名片的姓名:")
CardMenu.del_card(name)
elif choice == '3':
name = input("请输入要修改的名片的姓名:")
CardMenu.modify_card(name)
elif choice == '4':
name = input("请输入要查找的名片的姓名:")
CardMenu.find_card(name)
elif choice == '5':
CardMenu.show_cards()
elif choice == '6':
break
else:
print("输入选项无效,请重新输入!")
三、结果展示:
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:1
请输入姓名:张三
请输入联系方式:123456789
请输入QQ号:123456
请输入住址:abcd
名片添加成功!
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:5
姓名:1,联系方式:1,QQ号:1,住址:1
姓名:2,联系方式:3,QQ号:3,住址:3
姓名:张三,联系方式:123456789,QQ号:123456,住址:abcd
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:2
请输入要删除的名片的姓名:1
名片删除成功!
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:3
请输入要修改的名片的姓名:未找到该名片!
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:3
请输入要修改的名片的姓名:2
请输入联系方式:1231231
请输入QQ号:323113
请输入住址:1232131
名片修改成功!
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:4
请输入要查找的名片的姓名:2
姓名:2,联系方式:1231231,QQ号:323113,住址:1232131
-------------名片管理系统-------------
1.增加一个名片
2.删除一个名片
3.修改一个名片
4.查找一个名片
5.显示所有名片
6.退出系统
-----------------------------------
请输入选择:6
进程已结束,退出代码为 0
card.txt:
2,1231231,323113,1232131
张三,123456789,123456,abcd