"""
通讯录的面向对象实现
"""
class Usr:
num = ""
name = ""
qq = ""
tel = ""
email = ""
def __init__(self, num, name, qq, tel, email):
self.num = num
self.name = name
self.qq = qq
self.tel = tel
self.email = email
def getnum(self, num):
self.num = num
def usrinput(self):
self.name = input("{: <}".format("请输入您的姓名: "))
temp = input("{: <}".format("请输入您的QQ号码: "))
while temp.isnumeric() is False and temp != "":
print("QQ号码格式错误!请不要输入数字以外的字符!")
temp = input("{: <}".format("请输入正确的QQ号码: "))
self.qq = temp
temp = input("{: <}".format("请输入您的电话号码: "))
while temp.isnumeric() is False and temp != "":
print("电话号码格式错误!请不要输入数字以外的字符!")
temp = input("{: <}".format("请输入正确的电话号码: "))
self.tel = temp
self.email = input("{: <}".format("请输入您的邮箱: "))
def print_menu():
print("{:#^60}".format("#"))
print("{: ^50}".format("南开大学软件学院通讯录管理系统v0.01a"))
print("")
print("{: ^50}".format("添加数据请按【a】"))
print("{: ^50}".format("查看数据请按【s】"))
print("{: ^50}".format("删除数据请按【d】"))
print("{: ^50}".format("修改数据请按【m】"))
print("{: >56}".format("返回菜单请按【q】"))
print("{:#^60}".format("#"))
return
class yellowPaper:
def __init__(self):
self.usr_list = [] # 用户列表
def add(self):
num = len(self.usr_list) + 1
usr = Usr('', '', '', '', '')
usr.getnum(num)
usr.usrinput()
self.usr_list.append(usr)
print("{: <}".format("添加成功!"))
def delete(self):
num = int(input("请输入需删除的序号: "))
while num > len(self.usr_list) or num < 0:
print("序号不存在,请重新输入")
num = int(input("请输入需删除的序号: "))
if num != 0:
self.usr_list.pop(num-1)
print("删除成功")
elif num == 0:
print("返回命令输入")
def show_menu(self):
print("{:~^76}".format("通讯录数据列表"))
print("{0:<5}{1:<10}{2:<15}{3:<15}{4:<15}".format("序号", "姓名", "QQ", "电话", "邮箱"))
num = len(self.usr_list) - 1
i = 0
while i <= num:
print("{0:<6}{1:<11}{2:<15}{3:<16}{4:<16}".format(self.usr_list[i].num, self.usr_list[i].name,
self.usr_list[i].qq, self.usr_list[i].tel,
self.usr_list[i].email))
i = i + 1
print("~" * 80)
def show_menu_update(self, num):
print("{:~^77}".format("修改数据"))
print("{0:<5}{1:<10}{2:<15}{3:<15}{4:<15}".format("序号", "姓名", "QQ", "电话", "邮箱"))
print("{0:<6}{1:<11}{2:<15}{3:<16}{4:<16}".format(self.usr_list[num - 1].num, self.usr_list[num - 1].name,
self.usr_list[num - 1].qq,
self.usr_list[num - 1].tel,
self.usr_list[num - 1].email))
print("~" * 80)
def show_menu_add(self):
print("{:~^77}".format("添加数据"))
print("{0:<5}{1:<10}{2:<15}{3:<15}{4:<15}".format("序号", "姓名", "QQ", "电话", "邮箱"))
num = len(self.usr_list) - 1
print("{0:<6}{1:<11}{2:<15}{3:<16}{4:<16}".format(self.usr_list[num].num,
self.usr_list[num].name,
self.usr_list[num].qq,
self.usr_list[num].tel,
self.usr_list[num].email))
print("~" * 80)
def update(self):
num = int(input("请输入需修改的序号(不需要修改的选项请直接回车跳过): "))
while num > len(self.usr_list) or num < 0:
print("序号不存在,请重新输入")
num = int(input("请输入需修改的序号: "))
if num != 0:
name = input("{: <}".format("请输入您的姓名: "))
temp = input("{: <}".format("请输入您的QQ号码: "))
while temp.isnumeric() is False and temp != "":
print("QQ号码格式错误!请不要输入数字以外的字符!")
temp = input("{: <}".format("请输入正确的QQ号码: "))
qq = temp
temp = input("{: <}".format("请输入您的电话号码: "))
while temp.isnumeric() is False and temp != "":
print("电话号码格式错误!请不要输入数字以外的字符!")
temp = input("{: <}".format("请输入正确的电话号码: "))
tel = temp
email = input("{: <}".format("请输入您的邮箱: "))
print("修改成功")
name = name if name else self.usr_list[num - 1].name
qq = qq if qq else self.usr_list[num - 1].qq
tel = tel if tel else self.usr_list[num - 1].tel
email = email if email else self.usr_list[num - 1].email
usr = Usr(num, name, qq, tel, email)
self.usr_list.pop(num-1)
self.usr_list.insert(num-1, usr)
elif num == 0:
print("返回命令输入")
if __name__ == '__main__':
print_menu()
obj = yellowPaper()
while True:
command = input("{: <50}".format("请输入相应的命令(返回菜单请按q)"))
if command not in "asdmq":
command = input("{: <50}".format("请输入正确的命令(返回菜单请按q)"))
if "a" == command:
obj.add()
obj.show_menu_add()
elif "s" == command:
obj.show_menu()
elif "d" == command:
obj.delete()
elif "m" == command:
obj.update()
elif "q" == command:
print_menu()
06-09
09-26
1332