实现通讯录的面向对象03

class User:
    name = ""
    qq = ""
    phone = ""
    mail = ""

    def __init__(self, name, qq, phone, mail):
        self.name = name
        self.qq = qq
        self.phone = phone
        self.mail = mail

    def get_name(self):
        return self.name

    def get_qq(self):
        return self.qq

    def get_phone(self):
        return self.phone

    def get_mail(self):
        return self.mail


class Userlist:
    user_list = []

    def add(self):
        while True:
            u_name = input("请输入姓名:")
            u_qq = input("请输入QQ:")
            u_phone = input("请输入电话号码:")
            u_mail = input("请输入邮箱:")
            user = User(u_name, u_qq, u_phone, u_mail)
            self.user_list.append(user)
            print('添加成功,当前通讯录存在:')
            j = 1
            print('通信数据列表'.center(87, '~'))
            print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format("序号", "姓名", "QQ", "电话", "邮箱", chr(12288)),
                  end='')
            print()
            for i in self.user_list:
                print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format(str(j), i.name, i.qq, i.phone,
                                                                                 i.mail, chr(12288)))
                j = j + 1
            print('~' * 90)
            s = input("请输入[q]返回首页,输入其他字符将继续增加信息:")
            if s == 'q':
                break;

    def dele(self):
        while True:
            i = input("请输入需删除学生的序号:")
            if i.isdigit():
                j = int(i)
                if (j > len(self.user_list)):
                    print('数值越界,请重新输入')
                    continue
                else:
                    self.user_list.pop(j - 1)
                    print('删除成功,删除后当前通讯录为:')
                    j = 1
                    print('通信数据列表'.center(87, '~'))
                    print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format("序号", "姓名", "QQ", "电话", "邮箱",
                                                                                     chr(12288)),
                          end='')
                    print()
                    for i in self.user_list:
                        print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format(str(j), i.name, i.qq, i.phone,
                                                                                         i.mail, chr(12288)))
                        j = j + 1
                    print('~' * 90)
            else:
                print('输入非法,请重新输入')
                continue
            s = input("请输入[q]返回首页,输入其他字符将继续删除信息:")
            if s == 'q':
                break;

    def modify(self):
        while True:
            i = input("请输入需修改学生的序号:")
            if i.isdigit():
                j = int(i)
                if j > len(self.user_list) or j <= 0:
                    print('不存在的编号,请重新输入')
                    continue
                else:
                    i_name = input("请输入姓名:")
                    i_qq = input("请输入QQ:")
                    i_phone = input("请输入电话号码:")
                    i_mail = input("请输入邮箱:")
                    if i_name != ' ' and i_name != '':
                        self.user_list[j - 1].name = i_name
                    if i_qq != ' ' and i_qq != '':
                        self.user_list[j - 1].qq = i_qq
                    if i_phone != ' ' and i_phone != '':
                        self.user_list[j - 1].phone = i_phone
                    if i_mail != ' ' and i_mail != '':
                        self.user_list[j - 1].mail = i_mail
                    print('修改成功,修改后为:')
                    j = 1
                    print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format("序号", "姓名", "QQ", "电话", "邮箱",
                                                                                     chr(12288)),
                          end='')
                    print()
                    for i in self.user_list:
                        print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format(str(j), i.name, i.qq, i.phone,
                                                                                         i.mail,
                                                                                         chr(12288)))
                        j = j + 1
            else:
                print('输入非法,请重新输入')
                continue
            s = input("请输入[q]返回首页,输入其他字符将继续修改信息:")
            if s == 'q':
                break

    def read(self):
        while True:
            j = 1
            print('通信数据列表'.center(87, '~'))
            print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format("序号", "姓名", "QQ", "电话", "邮箱", chr(12288)),
                  end='')
            print()
            for i in self.user_list:
                print("{0:<5}\t\t{1:<5}\t\t{2:<15}\t\t{3:<18}\t\t{4:<25}".format(str(j), i.name, i.qq, i.phone, i.mail,
                                                                                 chr(12288)))
                j = j + 1
            print('~' * 90)
            s = input("请输入[q]返回首页,输入其他字符将继续查询:")
            if s == 'q':
                break;


def show_menu():
    print('*' * 90)
    print('南开大学软件学院通讯录管理系统v0.01a'.center(90))
    print()
    print('添加数据请按[a]'.center(90))
    print('查看数据请按[s]'.center(90))
    print('删除数据请按[d]'.center(90))
    print('修改数据请按[m]'.center(90))
    print('退出请按[q]'.rjust(88))
    print('*' * 90)


if __name__ == '__main__':
    u_list = Userlist()
    while True:
        show_menu()
        op = input()
        if op == 'a':
            u_list.add()
        elif op == 's':
            u_list.read()
        elif op == 'd':
            u_list.dele()
        elif op == 'm':
            u_list.modify()
        elif op == 'q':
            break
        else:
            print('您的输入有误')
            s = input('按任意键继续...')
            continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_45754783

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值