Python阶段项目:名片管理系统

前言:

我们将这个项目分成两个模块去写:

1、主模块:主要针对显示界面,后分别调用工具模块中的函数去完善显示界面的选项

2、工具模块:通过创造不同功能的函数,为主模块提供工具

代码实现——工具模块

(为方便阅读,我们先把工具准备好哈)

# 定义一个空列表,可嵌套字典
card_list=[]
# 显示界面
def show_menu():
    """显示菜单"""
    print("*"*50)
    print("欢迎使用名片管理系统")
    print("")
    print("1.新增名片")
    print("2.显示名片")
    print("3.搜素名片")
    print("0.退出系统")
    print("*"*50)

#添加名片
def new_card():
    print("-"*50)
    print("新增名片")
    #  1.提示用户输入详细信息
    name_str=input("请输入姓名")
    phone_str=input("请输入电话")
    qq_str=input("请输入QQ号")
    email_str=input("请输入邮箱号")
    # 2.使用用户输入信息建立一个字典
    card_dict={"name":name_str,
               "phone":phone_str,
               "qq":qq_str,
               "email":email_str}
    # 3.将名片字典添加到列表中
    card_list.append(card_dict)
    # 提示用户添加成功
    print(card_list)
    print("添加%s的名片已成功!!" % name_str)


# 显示所有名片
def show_all():
    print("-" * 50)
    print("显示所有名片")
    if len(card_list)==0:
        print("当前无名片可显示")
        return
    # 打印表头
    for s in ["姓名","电话","QQ","邮箱"]:
        print(s,end="\t\t")
    print("")
    print("="*50)
    #  遍历名片列表显示名片字典
    for card_dict in card_list:
        print("%s\t\t%s\t\t%s\t\t%s" %(card_dict["name"],
                                      card_dict["phone"],
                                      card_dict["qq"],
                                      card_dict["email"]))



# 搜索名片
def search_card():
    print("-" * 50)
    print("搜索名片")
    # 提示用户要搜索的姓名
    find_name=input("请输入您要搜索的姓名:")
    for card_dict in card_list:
        if card_dict["name"]==find_name:
            print("姓名\t\t电话\t\tQQ\t\t邮箱")
            print("="*50)
            print("%s\t\t%s\t\t%s\t\t%s", (card_dict["name"],
                                           card_dict["phone"],
                                           card_dict["qq"],
                                           card_dict["email"]))
            # 对找到的名片进行修改、删除
            deal_card(card_dict)
            break
    else:
        print("抱歉,没有找到%s!"% find_name)


 # 处理搜索到的字典
def deal_card(find_dict):
    """
处理查找到的名片
    :param find_dict: 查找到的名片
    """
    print(find_dict)
    action_str=input("请选择要执行的操作:"
                     "【1】修改【2】删除【0】返回上级菜单")
    if action_str=="1":
        find_dict["name"]=input_card_info(find_dict["name"],"姓名:")
        find_dict["phone"]=input_card_info(find_dict["phone"],"电话:")
        find_dict["qq"]=input_card_info(find_dict["qq"],"QQ:")
        find_dict["email"]=input_card_info(find_dict["email"],"邮箱:")
        print("修改名片成功!")
    elif action_str=="2":
        card_list.remove(find_dict)
        print("已经删除名片")



# 输入函数升级
def input_card_info(dict_value,tip_message):
    """
输入名片信息
    :param dict_value:字典中原有的值
    :param tip_message:输入提示信息
    :return:如果用户输入内容则返回内容,否则就返回原有信息
    """
    # 提示用户输入内容
    result_str=input(tip_message)
    if len(result_str)>0:
        # 输入了信息则返回新信息
        return result_str
    else:
        # 没有输入信息则返回原有值
        return dict_value

代码解读:

1.显示界面我们主要有4个功能选项,纯输出

2.添加名片为了遍历方便,我们采用列表嵌套字典的方式

3、为了搜索功能之后可以修改信息,我们可以单独封装一个输入修改的函数

代码实现——主模块

import  cards__tools
while True:
    #  显示功能菜单1
    cards__tools.show_menu()
    action_str=input("请输入您的选项")
    print("您选择的操作是%s" %action_str)
    if action_str in ["1","2","3"]:
    # 如果在编写程序时不希望立刻编制代码,则可用pass关键字:
    # 表示一个占位符,程序执行时不会执行任何操作
        if action_str=="1":
            cards__tools.new_card()
        elif action_str=="2":
            cards__tools.show_all()
        elif action_str=="3":
            cards__tools.search_card()
    elif action_str=="0":
        print("欢迎再次使用名片管理系统")
    else:
        print("您输入的选项不正确,请重新选择")

 注:为了使用工具模块的函数,我们在主模块中必须先导包

运行结果(部分):

修改后的:

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值