第四天——实战演练
以面向对象的方法写名片管理系统,思路如下:
- 创建名片类
- 创建系统管理类
- 在系统管理类中实现操作功能
- 程序运行后,除非用户自己选择退出系统,否则重复执行功能
操作功能如下:
- 添加名片
- 删除名片
- 修改名片
- 查询名片
- 退出系统
代码如下:
# 构建名片类
class BusinessCard(object):
"""名片类"""
# 初始化属性
def __init__(self, name, qq, weixin, address):
self.name = name
self.qq = qq
self.weixin = weixin
self.address = address
# 创建系统管理类
class MySystem(object):
"""名片管理系统"""
# 初始化属性
def __init__(self):
self.card_infors = []
# 打印主菜单
def print_munu(self):
print("=" * 50)
print("名片管理系统 V0.01")
print("1, 添加一个新的名片")
print("2, 删除一个名片 ")
print("3, 修改一个名片")
print("4, 查询一个名片")
print("5, 显示所有名片")
print("6, 退出系统 ")
print("=" * 50)
# 添加一个新的名片
def add_new_card_infor(self):
new_name = input("请输入新的名字")
new_qq = input("请输入新的QQ")
new_weixin = input("请输入新的微信")
new_address = input("请输入新的地址")
# 定义一个新的对象,用来储存一个新的名片
new_infor = BusinessCard(new_name, new_qq, new_weixin, new_address)
# 将一个字典添加到列表中
self.card_infors.append(new_infor)
print("添加成功!")
# 根据姓名查找名片
def find_card_by_name(self, name):
# 默认没有找到
find_flag = None
for temp in self.card_infors:
if name == temp.name:
# 表示找到了
find_flag = temp
break
return find_flag
# 查询名片
def find_card_infor(self):
find_name = input("请输入要查找的姓名")
find_flag = self.find_card_by_name(find_name)
# 判断是否找到
if find_flag == None:
print("查无此人。。。。")
else:
print("找到了!")
print("姓名\tQQ\t微信\t地址" )
print("%s\t%s\t%s\t%s" % (find_flag.name, find_flag.qq, find_flag.weixin, find_flag.address))
# 删除名片
def delete_card_infors(self):
find_name = input("请输入要删除信息的姓名")
find_flag = self.find_card_by_name(find_name)
# 判断是否找到
if find_flag == None:
print("查无此人,删除失败")
else:
self.card_infors.remove(find_flag)
print("删除成功!")
# 修改名片
def update_card_infor(self):
find_name = input("请输入要更新信息的名字:")
find_flag = self.find_card_by_name(find_name)
# 判断是否找到
if find_flag == None:
print("查无此人,修改失败")
else :
new_qq = input("请输入新的QQ:")
new_weixin = input("请输入新的微信:")
new_address = input("请输入新的地址:")
find_flag.qq = new_qq
find_flag.weixin = new_weixin
find_flag.address = new_address
print("修改成功!")
# 显示所有名片
def show_all_infor(self):
print("姓名\tQQ\t微信\t地址")
for temp in self.card_infors:
print("%s\t%s\t%s\t%s" % (temp.name, temp.qq, temp.weixin, temp.address))
# 定义开始
def begin(self):
while True:
# 获取用户的输入选择
num = int(input("\n请输入操作序号:"))
# 根据输入数据做相应处理
if num == 1:
self.add_new_card_infor()
elif num == 2:
self.delete_card_infors()
elif num == 3:
self.update_card_infor()
elif num == 4:
self.find_card_infor()
elif num == 5:
self.show_all_infor()
elif num == 6:
break
else:
print("输入有误,请重新输入!")
# 构建主函数
if __name__ == '__main__':
mySystem = MySystem()
mySystem.print_munu()
mySystem.begin()
结语
如果愿意点个赞,加个关注的话,梦码在这里感激不尽,你小小的行为,确实对我成长路上的巨大鼓励