python名片管理系统V2

主程序:

#! /usr/bin env python3
# -*- coding: utf-8 -*-

# 项目三:
# 1、要求:编写一个名片管理系统,功能如下:
# 用户输入相对应的指令,实现对名片进行增、删、改、查的功能

# 2、分析
# 首先要定义python文件,一个是对程序进行操作的python文件(入口程序),另一个是作为工具的python文件,然后添加以下功能
# (1)增:
# 为增的功能做一个函数,当用户输入指令为增时,提供用户输入信息,如:姓名、年龄、工号、工资等,保存用户录入的信息。
# 当有多个用户录入信息时,录入的信息采用字典的方式保存每个用户的详细信息,再用列表来保存每个用户的信息
# (2)查:
# 为查看的功能做一个函数,当用户输入查看功能时,将所有用户的详细信息都逐一展示出来。
# (3)修改和删除:
# 先做一个搜索的功能的函数,用户只需要输入人名、工号,如果存在于字典中,则显示出被搜索到的人的所有详细信息,
# (3.1)添加删除功能,用户输入删除指令后,删除被搜索到的人的所有信息
# (3.2)添加修改功能,用户输入修改指令后,对被搜索到的人的详细信息逐一进行修改
import hw_02_名片管理系统工具

print("*" * 50)
print("欢迎进入名片管理系统")
print("*" * 50)

while True:
    print("本系统功能:【1】新增名片 【2】查看所有名片信息 【3】 搜索名片 [0] 退出")
    user = input("请选择你的功能:")

    # 1,2,3针对名片的操作
    if user in ["1", "2", "3"]:

        # 新增名片
        if user == "1":
            hw_02_名片管理系统工具.card_add()
            print(hw_02_名片管理系统工具.cards_list)
            # 显示所有
        elif user == "2":
            hw_02_名片管理系统工具.show_all()
        # 搜索名片
        elif user == "3":
            hw_02_名片管理系统工具.card_serach()

    elif user == "0":
        print("欢迎再次使用【名片管理系统】")
        break
    else:
        print("非法输入")

工具程序:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

# 记录所有的名片字典
cards_list = []


def card_add():
    """ 新增名片

    """
    print("新增名片")
    user_name = input("请输入你的姓名:")
    user_phone = input("请输入你的电话:")
    user_qq = input("请输入你的QQ:")
    user_email = input("请输入你的邮箱:")

    # 用户输入的信息建立添加到名片字典
    cards_dict = {
        "name": user_name,
        "phone": user_phone,
        "qq": user_qq,
        "email": user_email
    }

    # 将名片字典添加到列表中
    cards_list.append(cards_dict)
    print("添加成功")


def show_all():
    """显示所有名片"""

    print("-" * 50)
    print("查看所有名片")

    # 判断是否存在名片记录
    if len(cards_list) > 0:

        # 打印表头
        for header in ["姓名","电话","QQ","email"]:
            print(header,end="\t\t")
        print("")
        print("=" * 50)

        # 遍历名片列表依次输出字典信息
        for card_dict in cards_list:
            print("%s\t\t%s\t\t%s\t\t%s" %(
                card_dict["name"],
                card_dict["phone"],
                card_dict["qq"],
                card_dict["email"]
            ))
    else:
        print("还未添加名片,请按【1】新增名片")


def card_serach():
    """
    搜索名片
    :return:
    """
    print("搜索名片")
    print("-" * 50)
    user_find = input("请输入要查找的信息:")
    # 遍历名片列表,查询要搜索的姓名,电话,qq,email,如果没有找到,要提示用户
    for card_dict in cards_list:
        if (card_dict["name"] == user_find or
            card_dict["phone"] == user_find or
            card_dict["qq"] == user_find or
            card_dict["email"] == user_find
        ):
            print("找到了")
            print(card_dict)

            # 针对找到的名片信息执行修改和删除的操作
            deal_card(card_dict)
            break

    else:
        print("没有找到")


def deal_card(find_dict):
    """处理查找到的名片

    :param find_dict: 查找到的名片
    """
    user_input_info = input("请选择功能:【1】修改 【2】删除 ")
    if user_input_info == "1":
        find_dict["name"] = input_info_card(find_dict["name"],"姓名:")
        find_dict["phone"] = input_info_card(find_dict["phone"],"电话:")
        find_dict["qq"] = input_info_card(find_dict["qq"],"QQ: ")
        find_dict["email"] = input_info_card(find_dict["email"],"邮箱:")
        print("修改名片成功!")

    elif user_input_info == "2":

        cards_list.remove(find_dict)
        print("删除成功")
    else:
        print("非法输入")


def input_info_card(dict_value,prompt):
    """输入名片信息

    :param dict_value: 字典中原有的值
    :param prompt:  输入的提示信息
    :return: 如果用户输入了内容,就返回内容,否则返回字典中原有的值
    """
    user_change_info = input(prompt)
    if user_change_info:
        return user_change_info
    else:
        print("您输入的为空")
        return dict_value

 

posted @ 2018-06-09 17:23  暗黒骑士  阅读(452)  评论(1编辑  收藏  举报
levels of contents