ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

微项目:名片管理系统

2022-01-22 12:34:44  阅读:196  来源: 互联网

标签:名片 项目 管理系统 dict print input find card


  名片管理系统是一个检验Python初学者入门的实战小项目,它覆盖了Python程序设计的一些基础知识,其中包括有模块、输入/输出、while语句、if…elif…else语句、for循环语句、占位符/制表符、列表和字典等知识点。

功能描述

1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单,如下:

 

2. 用户选择不同数字进入与数字对应的功能

3. 根据功能选择,执行不同的功能

4. 名片需要记录用户的姓名、电话、QQ、邮件

5. 查询指定的名片,用户可以修改和删除名片

 问题分析

      准备两个文件,一个是cards_main.py保存主程序功能代码,它是程序的入口,另一个是cards_tools.py保存所有名片功能函数,对名片进行新增、显示、查询、修改、删除等功能操作。

主程序:cards_main.py

from card_manage_system import cards_tools
while True:
    cards_tools.show_menu()
    action = input("请输入操作功能:")
    print("你输入的操作是:%s"%action)
    if action in ["1","2","3"]:
        if action == "1":
            cards_tools.new_card()
        elif action == "2":
            cards_tools.show_all()
        elif action == "3":
            cards_tools.search_card()
    elif action == "0":
        print("退出系统,欢迎下次使用名片管理系统")
        break
    else:
        print("输入错误,请重新输入")

名片功能函数:cards_tools.py

  此模块包含show_menu()、new_card()、show_all()、search_card()、deal_card()、input_card_info()等六个不同的功能函数。以下是源代码:

card_list = []
 
def show_menu():
    '''显示菜单'''
    print("*"*60)
    print("欢迎使用【名片管理系统】V1.0")
    print("1. 新建名片")
    print("2. 显示全部")
    print("3. 查询名片")
    print("0. 退出系统")
    print("*"*60)
 
def new_card():
    '''新建名片'''
    # 1.提示用户输入名片信息
    name = input("请输入你的姓名:")
    number = int(input("请输入你的手机号码:"))
    QQnumber = int(input("请输入你的QQ号码:"))
    email = input("请输入你的邮箱;")
    # 2.使用用户输入的信息建立一个名片字典
    card_dict = {"name":name,"phonenumber":number,"QQnumber":QQnumber,"email":email}
    # 3.将名片字典添加到列表中
    card_list.append(card_dict)
    # 4.提示用户名片添加成功
    print("添加%s的名片成功"%name)
 
def show_all():
    '''显示全部名片 '''
    print('*'*60)
    print('显示所有名片')
    # 判断列表中是否存在名片,如果没有,提示用户并返回
    if len(card_list) == 0:
        print("名片系统中没有名片")
        return
    # 打印表头
    print("姓名\t\t手机号码\t\tQQ号码\t\t邮箱")
    # 遍历名片列表依次输出字典信息
    for card_dict in card_list:
        print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                        card_dict["phonenumber"],
                                        card_dict["QQnumber"],
                                        card_dict["email"]))
 
def search_card():
    '''查找名片'''
    # 1.提示用户输入要搜索的姓名
    find_name = input("请输入你要查找的名片:")
    # 2.遍历名片列表,查询要搜索的姓名,如果没有搜索到,提示给用户
    for card_dict in card_list:
        if card_dict["name"] == find_name:
            for name in ["姓名","手机号码","QQ号码","邮箱"]:
                print(name,end="\t\t")
            print("")
            print("-"*60)
            print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                            card_dict["phonenumber"],
                                            card_dict["QQnumber"],
                                            card_dict["email"]))
            print("-"*60)
            deal_card(card_dict)
            break
    else:
        print("没有找到%s的名片"%find_name)
 
def deal_card(find_dict):
    '''操作搜索到的名片'''
    print(find_dict)
    action_str = input("请选择要执行的操作【1】修改【2】删除")
    # 替换已经存在的键值对
    if action_str == "1":
        find_dict["name"] = input_card_info(find_dict['name'],'姓名:')
        find_dict["phonenumber"] = input_card_info(find_dict['phonenumber'],'电话:')
        find_dict["QQnumber"] = input_card_info(find_dict['QQnumber'],'QQ:')
        find_dict["email"] = input_card_info(find_dict['email'],'邮箱:')
        print("%s的名片修改成功"%find_dict)
    elif action_str == "2":
        card_list.remove(find_dict)
        print("删除成功")
 
def input_card_info(dict_value,tip_message):
    # 1.提示用户出入内容
    result_str = input(tip_message)
    # 2.如果用户输入内容,则返回输入值,否则返回字典值
    if len(result_str) > 0:
        return result_str
    else:
        return dict_value

参考文献

“❤️万字【Python基础】保姆式教学❤️,小白快速入门Python!”一文中综合性练手项目_退休的龙叔

Python名片管理系统_新海说

基于python下的综合名片管理系统_Logbook怪

标签:名片,项目,管理系统,dict,print,input,find,card
来源: https://www.cnblogs.com/shujian/p/15832799.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有