python小例子-名片管理系统

名片管理系统

思路:

			使用字典包括每张名片的信息, 例如 {'name': '张三', 'tel': '123', 'qq': '321'}
			使用列表包含所有名片的信息, 如:
				user_list = [
    						{'name': '张三', 'tel': '123', 'qq': '321'},
    						{'name': 'lisi', 'tel': '666', 'qq': '999'},
    						{'name': 'jack', 'tel': '888', 'qq': '233'}
				]
系统包含的操作:
​				1.添加名片
​							信息由控制台输入即可,包含信息有用户名,手机号, QQ号
​							**注意:**名片的用户名不能重复, 如果添加是重复了要提示`用户名已被占用`让其重新输入
​				2.删除名片
​							根据名称name删除名片, 并询问是否确定删除
									**注意:** 判断是否名片在名片中
				3. 修改名片
							先根据名片在列表中的编号 让用户选择名片, 再提示输入要哪个键的值 再提示让其输入新值 进而完成修改、
							
				4. 根据名称查询名片
				
				5. 显示所有的名片信息
				
				6. 退出系统
							询问是否退出 确定的情况下才退出

代码实现

cards_list = [
    {'name': '张三', 'tel': '123', 'qq': '321'},
    {'name': 'liSi', 'tel': '666', 'qq': '999'},
    {'name': 'jack', 'tel': '888', 'qq': '233'}
]


def panel():
    print('*' * 25, '名片管理系统', '*' * 25)
    print("┏", "━" * 45, "┓", sep='')
    print("┃本系统包含的操作:")
    print("┃         1.添加名片", "      4.依名称查询名片")
    print("┃         2.删除名片", "      5.显示所有的名片信息 ")
    print("┃         3.修改名片", "      6.退出系统")
    print("┃系统提示: 输入操作前的标号即可完成相应操作!")
    print("┗", "━" * 45, "┛", sep='')


def add_business_card():
    try:
        while 1:
            name = input("添加名片功能运行中\n请输入你添加名片的姓名:\n>>>")
            if name not in get_name_list:
                break
            print("输入的用户名重复,请重新输入")
        tel = input("请输入你添加名片的电话:\n>>>")
        qq = input("请输入你添加名片的QQ号:\n>>>")
        card_dict = dict(name=name, tel=tel, qq=qq)
        cards_list.append(card_dict)
        print("添加名片成功返回主菜单")
    except Exception:
        print("系统进行添加名片功能发生未知错误,现已重启!")


dayin = '''
┏━━━━━━┓━━━━━━━━━┓
┃姓名:   {} 
┣━━━━━━╋━━━━━━━━━┫
┃手机:   {} 
┣━━━━━━╋━━━━━━━━━┫
┃QQ号:   {} 
┗━━━━━━┛━━━━━━━━━┛
'''


def all_business_card():
    for card in cards_list:
        print(dayin.format(card["name"], card["tel"], card["qq"]))


def delete_business_card():
    try:
        name = input("删除名片功能运行中\n请输入你要删除名片的姓名:\n>>>")
        if name not in get_name_list:
            print("你要删除的名片不存在")
        n = get_name_list.index(name)
        if 'y' == input("请问您真的要删除吗:(输入y确认删除)\n>>>"):
            cards_list.pop(n)
            print("删除名片成功返回主菜单")
            return
        print("名片尚未删除")
    except Exception:
        print("系统进行添加名片功能发生未知错误,现已重启!")


def modify_business_card():
    for k, name in enumerate(get_name_list):
        print("用户编号:%s, 用户名:%s" % (k + 1, name))
    try:
        n = int(input("修改名片功能运行中\n请输入你要修改名片的编号:\n>>>"))
        if not (1 <= n <= len(get_name_list)):
            print("你要删除的名片不存在")
            modify_business_card()
            return None
        while 1:
            name = input("添加名片功能运行中\n请输入你添加名片的姓名:\n>>>")
            if name not in get_name_list:
                break
            print("输入的用户名重复,请重新输入")
        tel = input("请输入你添加名片的电话:\n>>>")
        qq = input("请输入你添加名片的QQ号:\n>>>")
        card_dict = dict(name=name, tel=tel, qq=qq)
        cards_list[n - 1] = card_dict
        print("修改名片成功返回主菜单")
    except Exception:
        print("系统进行修改名片功能发生未知错误,现已重启!")


def name_find_card():
    try:
        while 1:
            name = input("查询名片功能运行中\n请输入你要查询名片的姓名:\n>>>")
            if name not in get_name_list:
                print("输入的用户名错误,请重新输入")
                continue
            break
        for k, user in enumerate(get_name_list):
            if user == name:
                card_dict = cards_list[k]
                print(dayin.format(card_dict["name"], card_dict["tel"], card_dict["qq"]))
        print("查询名片成功返回主菜单")
    except Exception:
        print("系统进行查询名片功能发生未知错误,现已重启!")


if __name__ == '__main__':
    while 1:
        get_name_list = list(map(lambda a: a["name"], cards_list))
        panel()
        cz = 0
        try:
            cz = int(input("请输入要完成操作的标号(1-6):\n>>>"))
        except (ValueError, ArithmeticError):
            print("程序发生了数字格式异常,你的输入有误请重新输入")
        if cz == 1:
            add_business_card()
        elif cz == 2:
            delete_business_card()
        elif cz == 3:
            modify_business_card()
        elif cz == 4:
            name_find_card()
        elif cz == 5:
            all_business_card()
        elif cz == 6:
            if 'y' == input("请问您真的要退出吗:(输入y确认退出)\n>>>"):
                print("退出系统成功,谢谢你的使用")
                break
        else:
            print("你的输入有误请重新输入")

实现效果

************************* 名片管理系统 *************************
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃本系统包含的操作:
┃         1.添加名片       4.依名称查询名片
┃         2.删除名片       5.显示所有的名片信息 
┃         3.修改名片       6.退出系统
┃系统提示: 输入操作前的标号即可完成相应操作!
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
请输入要完成操作的标号(1-6):
>>>

功能简单示例:

>>>1
添加名片功能运行中
请输入你添加名片的姓名:
>>>斗破苍穹
请输入你添加名片的电话:
>>>1234242
请输入你添加名片的QQ号:
>>>74231561
添加名片成功返回主菜单

思考与改进

可以使用本地文件存储或者使用数据库保存每次操作的信息, 和操作后名片的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值