欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python--简单的名片管理系统(包括增删改查,内附源代码,可直接运行)

程序员文章站 2022-05-13 14:58:26
...

这个管理系统主要包括三个部分,1、新建名片(包括姓名、电话、QQ、邮箱);2、显示全部名片;3、查询名片(键入要查询的信息,若查到则可以选择修改/删除操作,反之则不)

将下面两个.py文件(do_cards.py(第一段代码),hello_users.py(第二段代码))放在同一目录下,直接运行hello_users.py:

class Execute:
    def __init__(self, data):
        self.data = data

    def add_new_cards(self, num):
        """
        添加名片
        :return:添加后的数据
        """
        index = 1
        keys = ['姓名', '电话', 'QQ', '邮箱']
        while index <= num:
            print('输入第%d个数据:' % index)
            new_dict = dict.fromkeys(keys)
            for key in new_dict:
                new_dict[key] = input(key + '为:')
            self.data.append(new_dict)
            index += 1

        return self.data

    def query_card(self,search_name):
        """
        查到指定名片后,用户可以选择修改或者删除名片
        :return:
        """
        find = []
        for one_dict in self.data:
            for key, value in one_dict.items():
                if value == search_name:
                    find.append(one_dict)
        if find:
            return find
        else:
            return '未找到'

    def delete_cards(self,search_name):
        """
        删除该名片
        :return: 删除后的数据,删除的个数
        """
        item = self.query_card(search_name)
        for i in self.data:
            if i in item:
                self.data.remove(i)

        return self.data, len(item)

    def update_cards(self,search_name):
        data = self.delete_cards(search_name)
        new_data = self.add_new_cards(data[1])
        return new_data


if __name__ == '__main__':
    news = [{'姓名': '小明', '电话': '110', 'QQ': '12345', '邮箱': '[email protected]'},
            {'姓名': '小花', '电话': '120', 'QQ': '54321', '邮箱': '[email protected]'}]
    cards = Execute(news)
    print(cards.delete_cards('110'))
import do_cards

keys = ['姓名', '电话', 'QQ', '邮箱']
user_list = []
with_cards = do_cards.Execute(user_list)


def hello_users():
    """
    名片管理系统的主界面
    :return:
    """
    print('*' * 50)
    print('欢迎使用【名片管理系统】')
    print('1、新建名片')
    print('2、显示全部')
    print('3、查询名片')
    print('')
    print('0、退出系统')
    print('*' * 50)


def add_cards():
    """
    记录用户的姓名、电话、QQ、邮件
    :return:卡片列表
    """
    num = input('请您输入需要添加用户的个数:')
    while not num.isdecimal() or len(num) < 0:
        print('输入有误,请重新输入')
        num = input('请您输入需要添加用户的个数:')
    with_cards.add_new_cards(int(num))
    return user_list


hello_users()
cards = []
choice = input('请选择操作功能:')
while choice != '0':
    if (choice not in ['0', '1', '2', '3']) or (len(choice) < 1):
        while (choice not in ['0', '1', '2', '3']) or (len(choice) < 1):
            print('您输入的内容有误,请重新输入!')
            choice = input('请选择操作功能:')
    else:
        print('您选择的操作是:%d' % int(choice))
        # 添加数据
        if int(choice) == 1:
            cards = add_cards()
            print('添加成功!')

        # 显示所有数据
        elif int(choice) == 2:
            if cards:
                for i, j in enumerate(cards):
                    if i == 0:
                        for key, value in j.items():
                            print('{0:<20}'.format(key), end='\t')
                    print('')
                    for key, value in j.items():
                        print('{0:<20}'.format(value), end='\t')
                print('')
            else:
                print('暂无数据,请添加数据!')

        # 查询数据(修改/删除)
        elif int(choice) == 3:
            search_name = input('请输入你要查找的姓名/电话/QQ/邮箱:')
            message = with_cards.query_card(search_name)
            if message == '未找到':
                print('未找到内容!')
            else:
                edit_choice = input('请选择操作(0:不操作,1:修改名片,2、删除名片):')
                while len(edit_choice) < 1 or edit_choice not in ['0', '1', '2']:
                    print('输入有误,请重新输入')
                    edit_choice = input('请输入0:不操作,1:修改名片,2、删除名片')
                if edit_choice == '0':
                    print('暂无操作!')
                elif edit_choice == '1':
                    with_cards.update_cards(search_name)
                    print('修改成功!')
                elif edit_choice == '2':
                    with_cards.delete_cards(search_name)
                    print('删除成功!')

        print('')
        hello_users()
        choice = input('请选择操作功能:')
else:
    print('退出系统!')

欢迎指正!