python-名片管理系统

发布时间 2023-12-06 22:25:39作者: zp0513

一、系统需求

  1. 目的一、回顾前面学过的变量、流程控制、函数、模块等
  2.   程序启动,显示名片和欢迎界面,并提示用户进行操作
  3. 用户选择不同的功能,执行不同的操作
  4. 用户名片中要记录的信息:姓名、电话、联系方式、邮件
  5. 用户查询到指定的名片,可以进行修改、删除操作

二、步骤

  1. 框架搭建
  2. 新增名片
  3. 显示所有名片
  4. 查询名片
  5. 查询成功后修改、删除名片

  01、框架搭建

  1、创建一个名片管理系统的文件夹,把所有的代码写到此文件里

  2、编写一个主程序,实现用户输入和判断的操作

    在文件夹中创建一个cards_main.py并保存

    每一次启动通过这个主函数启动

  3、新建一个cards_tools.py保存所有的名片功能函数;实现对名片的增删改查等操作

   02、编写框架

 2.1 主函数入口

while True:
    # 显示系统菜单
    action = input("请选择操作功能:")
    print("您的选择操作是:%s" % action) #不带分号

    #根据用户的输入进行后续的操作
    if action in ["1","2","3"]:
        pass
    elif action == "0":
        print("欢迎再次使用")
        break
    else:
        print("输入错误,请重新输入")

  1、字符串判断:使用in针对列表判断,避免使用or或if拼接复杂的逻辑条件

   if action in ["1","2","3"]:

  2、没有使用int类型,避免用户一旦输入的不是数字,导致程序运行出错

  2.2 在cards_tools中增加四个函数,分别对应不同的功能,代码如下:

# -*- coding: utf-8 -*-

def show_menu():
    """显示菜单"""
    pass
def new_card():
    """新建名片"""
    print("_" *50)
    print("新建名单")

def show_all():
    """显示全部"""
    print("_"*50)
    print("显示全部")

def search_card():
    """搜索名片"""
    print("_"*50)
    print("搜索功能")

def delete_card():
    """删除名片"""
    print("_"*50)
    print("删除功能")

2.3  在card-main.py中使用import导入cards_tools模块,并修改while循环中的代码

# -*- coding: utf-8 -*-
#导入模块
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("输入错误,请重新输入")

   03、完成函数功能

    1、show_menu函数

def show_menu():
    """显示菜单"""
    print("_"*50)
    print("欢迎使用名片管理系统")
    print("")
    print("1.新建名片")
    print("2.显示全部")
    print("3.查询名片")
    print("")
    print("0.退出系统")
    print("_"*50)

  运行结果:【但是输入后,还会再次出现这个提示】

 2、名片的数据结构用什么来存【列表、字典、元组、集合】

  •   使用字典记录每一个名片
  •   使用列表统一记录所有名片字典
  • 列表是[]来进行存放元素,中间用,隔开,里面的元素基本都是都一类型的
  • 字典:字典的表示方式 {key1:value1, key1:value1,key1:value1}键值对存放的
  • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可,元组的元素不能修改

  在cards_tools.py的文件顶部创建一个列表变量

#所有名片记录列表
card_lst = []

2、new_card函数

  • 提示用户依次输入名片信息
  • 将名片信息保存到一个字典中
  • 将字典添加到列表中
  • 提示名片添加完成

 代码如:

def new_card():
    """新建名片"""
    print("_" *50)
    print("新建名单")

    #1、提示用户一次输入名片信息
    name = input("请输入姓名:")
    phone = input("请输入电话:")
    qq = input("请输入qq号码:")
    email = input("请输入邮箱:")
    #2、将名片信息保存到一个字典中
    card_dict = {"name":name,
                 "phone":phone,
                 "qq":qq,
                 "email":email
                 }
    #3、将用户字典添加到列表中
    card_lst.append(card_dict)
    print(card_lst)
    #4、提示添加成功
    print("成功添加 %s 的名片 " % card_dict["name"])

  显示效果不好:优化如下

def show_all():
    """显示全部"""
    print("_"*50)
    print("显示全部")
    # for card_dict in card_lst:
    #     print(card_dict)
    #打印表头
    for name in ["姓名","电话","qq邮箱","邮箱"]:
        print(name ,end="\t\t")

    print("")
    #打印分割线
    print("_"*50)
    for card_dict in card_lst:
        print(f"%s\t\t%s\t\t%s\t\t%s" %(card_dict["name"], card_dict["phone"],card_dict["qq"],card_dict["email"]))

3、增加没有名片记录

    #1、判断是否有名片记录
    if len(card_lst) == 0:
        print("提示:没有任何记录")

        return

4、查询功能

  •   提示用户要搜索的姓名
  •   根据用户输入的姓名遍历列表
  •   搜索到指定的名片后,执行后续的操作
def search_card():
    """搜索名片"""
    print("_"*50)
    print("搜索功能")

    #1、提示用户输入要搜索的姓名
    find_name = input("请输入要搜索的姓名:")
    #2、遍历字典
    for card_dict in card_lst:
        if card_dict["name"] == find_name:
            print("姓名\t\t电话\t\tqq\t\t邮箱\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"])
            print("_"*50)

            break
        else:
            print("对不起,没找到 %s" %find_name)

 5、修改功能

def modify_card():
    global card_lst
    mod_name = input("请输入要修改的名字:")
    for temp in card_lst:
        if mod_name == temp["name"]:
            temp["name"] = input("请输入新的姓名:")
            temp["phone"] = input("请输入电话:")
            temp["qq"] = input("qq")
            temp["email"] = input("email")
            print("修改完成")
            return
    print("查无此人")

6、删除功能