python实战项目 名片管理系统

前言 :

1.名片管理系统的重要性:

2.博客内容概要:

3.学习此名片管理系统的益处:

4.名片管理系统要求 :

5.注意:

6.代码实现 :

6.1第一种方法的设计思路

6.2第一种方法的代码实现 

6.3第二种方法的设计思路 

6.4第二种方法的代码实现

7.总结 :

致谢:


前言 :

欢迎来到我们的Python名片系统博客!在这里,我们将与您分享关于Python编程语言的种种奇妙之处,以及如何利用它构建一个简单而强大的名片管理系统。

Python作为一种简洁、易读的编程语言,深受程序员和初学者的喜爱。通过本博客,您将了解到如何利用Python的优势,快速搭建一个功能完善的名片管理系统,为您的工作和生活带来便利。

无论您是想要提升自己的编程技能,还是寻找一个实用的项目来实践,本博客都将为您提供有益的指导和灵感。让我们一起探索Python的魅力,打造一个个性化、高效率的名片系统吧!

1.名片管理系统的重要性:

名片管理系统在现代社会中具有重要性,主要体现在以下几个方面:

组织信息:名片管理系统可以帮助个人或组织有效地组织和管理大量的联系信息。通过系统化的存储和分类,用户可以快速查找需要的联系人信息,提高工作效率。

提升专业形象:一个规范、完善的名片管理系统不仅展示了用户的组织能力,也反映了其对工作的认真态度。在处理商务往来时,有序的名片管理系统能够增强个人或企业的专业形象。

便捷沟通:通过名片管理系统,用户可以随时随地访问联系人信息,并通过各种方式快速与其沟通,如电话、邮件、社交媒体等。这为合作、沟通和交流提供了便利。

数据分析:名片管理系统还可以通过数据分析功能,帮助用户更好地了解自己的人脉关系,发现潜在的商机或合作伙伴。通过数据统计和分析,用户可以更有针对性地进行人际关系管理。

综上所述,名片管理系统不仅是一个简单的联系信息数据库,更是一个提升工作效率、加强人际关系、拓展商务渠道的重要工具。通过合理利用名片管理系统,用户可以更加高效地管理自己的人脉资源,实现个人和组织的发展目标。

2.博客内容概要:

名片管理系统的设计思路和需求分析:介绍名片管理系统的基本功能和设计理念,包括用户需求调研、系统功能设计等方面。

Python编程基础:对Python编程语言的基础知识进行训练熟悉,包括数据类型、条件语句、循环结构等,为后续系统开发打下基础。

构建名片管理系统的关键功能:详细讲解如何使用Python实现名片管理系统的关键功能,如添加名片、删除名片、查询名片信息等。

数据库应用与文件存储:介绍如何利用数据库或文件存储来保存名片信息,以及如何与Python程序进行交互实现持久化存储。

用户界面设计与交互体验优化:探讨如何通过Python图形界面库,设计友好的用户交互界面,提升用户体验和操作便捷性。

高级功能拓展与优化:进一步讨论如何加入搜索功能、数据统计分析等高级功能,让名片管理系统更加强大和实用。

通过这些内容,读者将能够全面了解如何使用Python编程语言,构建一个功能完善的名片管理系统,并且在实践中提升自己的编程能力和项目开发经验。

3.学习此名片管理系统的益处:

学习Python编程:通过实际项目的开发,读者将有机会深入学习和理解Python编程语言的基础知识和高级应用技巧。这将为他们打下坚实的编程基础,提升技术能力。

实践项目经验积累:通过参与名片管理系统的构建,读者将积累丰富的实践项目经验,包括需求分析、功能设计、代码实现、测试调试等全流程的项目实施经验。这将对其未来的职业发展具有重要意义。

提升工作效率:如果读者能够将名片管理系统应用到实际工作中,将大大提升其工作效率,帮助其更好地管理人脉资源,拓展商务渠道。

增强编程实战能力:通过参与实际项目的开发,读者将加强自己的编程实战能力,提高问题解决和系统设计能力,为日后的项目开发打下坚实基础。

综上所述,本博客将为读者提供学习、实践和提升的机会,帮助他们在Python编程领域取得更多成就,同时也能够在实际工作和生活中受益。

4.名片管理系统要求 :

'''
1.程序启动就会显示名片管理面板,并显示功能菜单
2.用户用数字选择不同的功能
3.根据功能选择,执行不同的功能
4.用户名片需要记录用户的 姓名、电话、年龄
5.如果查询到指定的名片,用户可以选择 修改 或者 删除 名片

'''

5.注意:

此名片管理系统我们可以用两种方法分别实现 ,虽然两种名片管理系统的方法不同但是实现的功能是一样的 ,并且可以实现举一反三 ,融会贯通。

6.代码实现 :

6.1第一种方法的设计思路

用户交互:通过展示菜单和根据用户选择执行不同功能的方式,实现了与用户的简单、直观交互。用户可以通过输入数字选择相应的功能,从而完成新增、查询、修改、删除等操作。

数据结构:使用列表来存储名片信息,每个名片信息以字典的形式存储,包括姓名、年龄、电话等字段。这种数据结构简单且易于管理,便于对名片信息进行增删改查操作。

模块化设计:将不同功能拆分成独立的函数,如显示菜单、显示全部名片、查询名片、修改名片、删除名片等,使得代码结构清晰,方便维护和扩展。

错误处理:在用户输入错误或不存在的名片信息时,有相应的提示信息并要求重新输入,提高了程序的容错性和用户体验。

循环控制:通过主循环实现持续的菜单显示和用户操作,直到用户选择退出系统为止,保持程序持续运行并提供服务。

6.2第一种方法的代码实现 

代码实现入下 

'''
1.程序启动就会显示名片管理面板,并显示功能菜单
2.用户用数字选择不同的功能
3.根据功能选择,执行不同的功能
4.用户名片需要记录用户的 姓名、电话、年龄
5.如果查询到指定的名片,用户可以选择 修改 或者 删除 名片

'''
# 存储名片信息的列表,每个名片是一个字典
xinxi = []

# 定义一个菜单
def menu():
    print('____________________________________\n')
    print("欢迎使用【名片管理系统】")
    print("1.新建名片")
    print("2.显示全部")
    print("3.查询名片")
    print("0.退出系统")
    print('____________________________________\n')

# 显示全部名片
def people_print():
    print("姓名\t年龄\t手机号")
    for card in xinxi:
        print(f"{card['name']}\t{card['age']}\t{card['phone']}")

# 查询名片
def chaxun():
    name = input('请输入你要查询的人的姓名:')
    for card in xinxi:
        if card['name'] == name:
            print("找到名片:")
            print(f"姓名: {card['name']}, 年龄: {card['age']}, 电话: {card['phone']}")
            after_search(card)
            return
    print('没有此人的信息,请认真核对信息是否准确\n')

# 在查询名片后的操作:修改或删除
def after_search(card):
    while True:
        user_choice = input("请选择要执行的操作 [1] 修改 [2] 删除 [0] 返回上级菜单:")
        if user_choice == "1":
            change_people(card)
            break
        elif user_choice == "2":
            delete(card)
            break
        elif user_choice == "0":
            break
        else:
            print("输入有误,请重新输入!")

# 修改名片
def change_people(card):
    print("当前名片信息:")
    print(card)
    age = input('请输入修改后的年龄(留空则不修改):')
    phone = input('请输入修改后的电话(留空则不修改):')
    if age:
        card['age'] = age
    if phone:
        card['phone'] = phone
    print("名片修改成功!")

# 删除信息
def delete(card):
    xinxi.remove(card)
    print(f"{card['name']}的信息已删除")

# 主循环
while True:
    menu()
    choice = input("请输入数字选择操作:")
    if choice == '1':  # 新建名片
        name = input("请输入名字:")
        age = input("请输入年龄:")
        phone = input("请输入手机号:")
        xinxi.append({"name": name, "age": age, "phone": phone})
    elif choice == '2':  # 显示全部
        people_print()
    elif choice == '3':  # 查询名片
        chaxun()
    elif choice == '0':  # 退出系统
        print("感谢使用【名片管理系统】,再见!")
        break
    else:
        print("输入有误,请重新输入!")

6.3第二种方法的设计思路 

1.数据结构设计:

使用一个空字典dict来存储名片信息,其中包括三个键值对:"name"用于存储名字列表,"age"用于存储年龄列表,"phone"用于存储手机号列表。同时定义了三个空列表list、list1、list2分别用于存储名字、年龄、手机号。
2.功能函数设计:
people_tips():打印欢迎提示和功能菜单。
people_print(dict):显示所有名片信息。
people_edit(list):修改指定名片的年龄和手机号。
people_find(dict, list):查询指定名片的信息。
people_pop(dict, list):删除指定名片的信息。
3.主程序逻辑:
通过循环显示菜单,根据用户输入的数字执行相应的功能:

输入1:新建名片,要求输入名字、年龄、手机号,并将信息存入字典dict和对应的列表中。
输入2:显示全部名片信息,调用people_print(dict)函数。
输入3:进入查询菜单,可选择修改、查看或删除名片信息。
输入0:退出系统
4.错误处理:
对于手机号格式不正确的情况,要求重新输入手机号。
5.持续运行:通过主循环while True保持程序持续运行,直到用户选择退出系统。

6.4第二种方法的代码实现
dict = {}  # 定义一个空字典,用于存储信息。
list = []  # 定义一个列表,存储name值
list1 = []  # 存储age值
list2 = []  # 存储phone值


def people_tips():  # 提示
    print("*****" * 10)
    print("欢迎使用【名片管理系统】")
    print("1.新建名片")
    print("2.显示全部")
    print("3.查询名片")
    print("0.退出系统")
    print("*****" * 10)


def people_print(dict):  # 显示全部
    len1 = len(dict["name"])  # 获取名片人数
    for i in range(len1):
        for j in dict.keys():
            print(dict[j][i], end="\t")
        print()


def people_edit(list):  # 修改名片
    print("请输入要修改的名片姓名:")
    name = input()
    for index, values in enumerate(list):
        if name == values:
            print("请输入修改后的年龄:")
            age = input()
            dict["age"][index] = age
            print("请输入修改后的手机号:")
            phone = input()
            dict["phone"][index] = phone


def people_find(dict, list):  # 查询名片
    print("请输入要查询的名片姓名:")
    name = input()
    print("姓名   年龄      手机号")
    for index, values in enumerate(list):
        if name == values:
            print(dict["name"][index], end='\t')
            print(dict["age"][index], end='\t')
            print(dict["phone"][index])


def people_pop(dict, list):  # 删除名片
    name = input("请输入要删除的名片名字:")
    for index, values in enumerate(list):
        if name == values:
            dict["name"].pop(index)
            dict["age"].pop(index)
            dict["phone"].pop(index)


while True:
    people_tips()
    x = int(input("请输入数字:"))
    if x == 1:  # 新建名片
        print("**" * 20)
        print("功能,新建名片")
        print("**" * 20)
        print("请输入名字:")
        name = input()
        list.append(name)
        dict["name"] = list
        print("请输入年龄:")
        age = int(input())
        list1.append(age)
        dict["age"] = list1
        print("请输入手机号:")
        phone = input()
        if len(phone) != 11:
            print("手机号格式不对,请重新输入:")
            phone = input()
            list2.append(phone)
            dict["phone"] = list2
        else:
            list2.append(phone)
            dict["phone"] = list2
        print(dict)
    if x == 2:  # 显示全部
        print("**" * 20)
        print("功能:显示全部")
        print("**" * 20)
        print("姓名   年龄      手机号")
        people_print(dict)
    if x == 3:  # 查询名片
        while True:
            print("**" * 20)
            print("0.退出系统")
            print("1.修改名片")
            print("2.查看名片")
            print("3.删除名片")
            print("**" * 20)
            y = int(input("请输入数字:"))
            if y == 0:
                break
            if y == 1:
                people_edit(list)
            if y == 2:
                people_find(dict, list)
            if y == 3:
                people_pop(dict, list)
    if x == 0:
        print("**" * 20)
        print("功能,退出系统")
        print("**" * 20)
        break

7.总结 :

功能完整:

该系统实现了新建名片、显示全部、查询名片、修改名片和删除名片等功能,涵盖了基本的名片管理需求。
数据结构合理:

使用字典dict和列表list等数据结构来存储和管理名片信息,简洁明了。
用户友好:

通过菜单提示和交互式操作,使用户能够方便地使用系统进行各种操作。
错误处理:

系统对手机号格式不正确的情况进行了处理,要求用户重新输入,提高了系统的健壮性。
代码结构清晰:

代码结构清晰,功能模块化,易于阅读和维护。

致谢:

如果这篇文章可以帮到你的话可以留下您的关注、收藏和点赞!我会继续努力为您提供优质的服务和帮助。如果您有任何问题或需求,请随时联系我,我会尽力满足您的需求。再次感谢您的支持!祝您一切顺利!如果需要帮助,请随时告诉我!