Python:简单名片管理系统

名片信息管理系统,功能:新建,显示,查询,修改,删除,退出

1.源代码

  1. cards_main.py
#! /usr/bin/python3
# shebang(#!解释器路径)符号,修改文件执行权限,可直接在终端中执行文件

import cards_tools as ct
"""
主程序功能代码

"""

# 主界面
while True:

    choice=ct.show_menu()  # 用户输入str
    if choice in ["1","2","3"]:
        # 名片操作
        if choice=="1":
            ct.new_card()  # chuagnjian
        elif choice=="2":
            ct.show_all()  # zhanshi
        else:
            ct.search_card()  # chaxun

    elif choice=="0":
        # 退出系统
        print("退出系统")
        exit()
    else:
        # 错误输入,提示
        print("输入错误,请重新输入!")

  1. cards_tools.py
"""
所有名片功能函数
数据结构:
	字典保存名片信息
	列表保存所有名片字典
"""
card_list = []  # 所有名片记录列表


def show_menu():
    """菜单显示"""
    welcome = "*" * 40 + "\n" + \
              "欢迎使用【名片管理系统】V1.0" + "\n" + \
              "1.新建名片\n2.显示全部\n3.查询名片\n0.退出系统" + "\n" + \
              "*" * 40 + "\n" + \
              "请选择操作功能:"

    return input(welcome)  # 用户输入str


def new_card():
    """创建名片"""
    print("-" * 40)
    print("新建名片")
    # 输入
    name = input("请输入名字(不能为空):")

    # 姓名输入不能为空,且重复
    while name == "" or search(name) != 0:
        if search(name) != 0:
            print("此名字已创建,")
        name = input("请重新输入名字:")

    phone = input("请输入电话:")
    email = input("请输入邮箱:")
    # 保存
    infon = {"name": name,
             "phone": phone,
             "email": email}
    card_list.append(infon)

    #
    print("创建成功:")
    print("name:" + infon["name"] + "\t\t" +
          "phone:" + infon["phone"] + "\t\t" +
          "email:" + infon["email"])


def show_all():
    """查询所有名片信息"""
    print("-" * 40)
    print("显示全部")
    # 判断是否为空
    if len(card_list) == 0:
        print("无任何名片信息!")
        return

    print("%-20s\t\t%-20s\t\t%-20s\n" % ("name", "phone", "email") + "-" * 70)
    for info in card_list:
        print("%-20s\t\t%-20s\t\t%-20s" % (info["name"], info["phone"], info["email"]))

    print("-" * 70)


def search_card():
    """搜索相关名片"""
    print("-" * 40)
    print("查询名片")
    search_name = input("请输入名片姓名:")

    c_info = search(search_name)
    if c_info == 0:
        print("没有找到相关信息!")
        return
    print("name:" + c_info["name"] + "\t\t" +
          "phone:" + c_info["phone"] + "\t\t" +
          "email:" + c_info["email"])

    # 其他操作修改
    deal_card(c_info)


def deal_card(find_dict):
    """修改删除"""
    card_operat = input("请输入对名片的操作(1:修改/2:删除/0:返回上一级):")
    while card_operat not in ["1", "2", "0"]:
        card_operat = input("输入错误,请重新输入(1:修改/2:删除/0:返回上一级):")

    if card_operat == "1":
        # 修改
        #name = input("请输入名字(回车跳过):")# 输入
        # 姓名输入不能重复
        # while search(name) != 0:
        #     name = input("此名字已创建,请重新输入名字(回车跳过):")
        phone = input("请输入电话(回车跳过):")
        email = input("请输入邮箱(回车跳过):")
        # 保存
        # if name != "":
        #     find_dict["name"] = name
        if phone != "":
            find_dict["phone"] = phone
        if email != "":
            find_dict["email"] = email

        print("成功修改:"+str(find_dict))
    elif card_operat == "2":
        # 删除
        if_del=input("是否确认删除(Y):")
        if if_del not in ["y","Y"]:
            print("取消")
            return

        c_del = card_list.pop(card_list.index(find_dict))
        if search(c_del["name"]) == 0:
            print("已经删除:" + str(c_del))
    else:
        # 返回上一级
        return


def search(name):
    """搜索
    :param name:
    :return:
    """
    for info in card_list:
        if name == info["name"]:
            return info  # 找到
    return 0  # 没有找到

2. 结果展示

****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:1
----------------------------------------
新建名片
请输入名字(不能为空):123
请输入电话:123
请输入邮箱:213
创建成功:
name:123		phone:123		email:213
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:1
----------------------------------------
新建名片
请输入名字(不能为空):352345
请输入电话:43454
请输入邮箱:34534
创建成功:
name:352345		phone:43454		email:34534
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:2
----------------------------------------
显示全部
name                		phone               		email               
----------------------------------------------------------------------
123                 		123                 		213                 
352345              		43454               		34534               
----------------------------------------------------------------------
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:3
----------------------------------------
查询名片
请输入名片姓名:352345
name:352345		phone:43454		email:34534
请输入对名片的操作(1:修改/2:删除/0:返回上一级):1
请输入电话(回车跳过):
请输入邮箱(回车跳过):
成功修改:{'name': '352345', 'phone': '43454', 'email': '34534'}
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:3
----------------------------------------
查询名片
请输入名片姓名:352345
name:352345		phone:43454		email:34534
请输入对名片的操作(1:修改/2:删除/0:返回上一级):1
请输入电话(回车跳过):00
请输入邮箱(回车跳过):0
成功修改:{'name': '352345', 'phone': '00', 'email': '0'}
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:2
----------------------------------------
显示全部
name                		phone               		email               
----------------------------------------------------------------------
123                 		123                 		213                 
352345              		00                  		0                   
----------------------------------------------------------------------
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:3
----------------------------------------
查询名片
请输入名片姓名:352345
name:352345		phone:00		email:0
请输入对名片的操作(1:修改/2:删除/0:返回上一级):2
是否确认删除(Y):d
取消
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:3
----------------------------------------
查询名片
请输入名片姓名:352345
name:352345		phone:00		email:0
请输入对名片的操作(1:修改/2:删除/0:返回上一级):2
是否确认删除(Y):y
已经删除:{'name': '352345', 'phone': '00', 'email': '0'}
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:2
----------------------------------------
显示全部
name                		phone               		email               
----------------------------------------------------------------------
123                 		123                 		213                 
----------------------------------------------------------------------
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:1
----------------------------------------
新建名片
请输入名字(不能为空):12312
请输入电话:32143
请输入邮箱:2341
创建成功:
name:12312		phone:32143		email:2341
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:2
----------------------------------------
显示全部
name                		phone               		email               
----------------------------------------------------------------------
123                 		123                 		213                 
12312               		32143               		2341                
----------------------------------------------------------------------
****************************************
欢迎使用【名片管理系统】V1.0
1.新建名片
2.显示全部
3.查询名片
0.退出系统
****************************************
请选择操作功能:0
退出系统

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值