五、黑马名片管理系统#

1. 需求#

1
2
3
4
5
程序启动,显示名片管理系统欢迎界面,并显示功能菜单
用户用数字选择不同的功能
根据功能选择,执行不同的功能
用户名片需要记录用户的 姓名、电话、QQ、邮件
如果查询到指定的名片,用户可以选择 修改 或者 删除 名片

2. 菜单功能#

菜单需要多次输出,所以可以放在死循环中,如果退出程序直接break循环即可

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
while True:
    print('*' * 50)
    print('欢迎使用[名片管理系统]V1.0')
    print()
    print('1.新建名片')
    print('2.显示名片')
    print('3.查询名片')
    print()
    print('0.退出系统')
    print('*' * 50)

3. 输入处理#

输入不同的数字代表不同的操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
while True:
    ...
    type = int(input('请输入执行的操作:'))
    if type == 1:
        # 新建名片
    elif type == 2:
        # 显示全部
    elif type == 3:
        # 搜索名片
    elif type == 0:
        break

4. 新建名片#

1、定义列表保存所有的名片

1
cardList = [] # 名片数据列表  [姓名,电话,qq,email]

名片包含四个属性,可以再通过列表按照姓名、电话、qq、email的顺序保存

2、定义createCard创建名片函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
def createCard():
    '''
    创建新名片
    :return:
    '''
    print('您选择的功能是: 1')
    print('功能: 新建名片')
    name = input('请输入姓名:')
    phone = input('请输入电话:')
    qq = input('请输入QQ:')
    email = input('请输入邮箱:')
    # 每一个名片是列表数据
    # [姓名,电话,qq,email]
    card = [name,phone,qq,email]
    # 添加到列表中
    cardList.append(card)

3、在循环中调用

1
2
3
4
5
6
7
while True:
    ...
    type = int(input('请输入执行的操作:'))
    if type == 1:
        # 新建名片
        createCard()
    ...

5. 显示全部名片#

1、定义显示所有名片的showAll函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def showAll():
    '''
    显示所有的名片
    :return:
    '''
    print('您选择的功能: 2')
    print('功能提示: 显示全部')
    # 表头
    print('姓名\t电话\tQQ\t邮件')
    print('-'*50)
    # 找到所有的名片并打印
    for card in cardList:
        # name = card[0]
        # phone = card[1]
        # qq = card[2]
        # email = card[3]
        print('%s\t%s\t%s\t%s'%tuple(card))
    print('-'*50)

2、调用

1
2
3
4
5
6
while True:
    ...
    type = int(input('请输入执行的操作:'))
    ...
    elif type == 2:
        showAll()

6. 搜索名片#

搜索出名片

1、定义searchCard函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def searchCard():
    '''
    查询名片
    :return:
    '''
    print('您选择的功能是: 3')
    print('功能: 查询名片')
    name = input('请输入查询的姓名:')
    # 查询名片
    for card in cardList:
        # 判断当前card的名字和name是否相同
        if card[0]==name:
            # 找到了
            # 执行其它的操作
            handleCard(card)
            # 退出当前的循环
            break
    else:
        print('没有找到对应的用户:%s'%name)

其中:handleCard函数是对搜索的结果进行处理,后面实现

2、调用

1
2
3
4
5
6
while True:
    ...
    type = int(input('请输入执行的操作:'))
    ...
    elif type == 3:
        searchCard()

对搜索的名片进行操作

handleCard函数是对搜索的名片操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def handleCard(card):
    '''
    处理名片
    :param card:
    :return:
    '''
    while True:
        type = int(input('请输入对名片的操作: 1.修改/ 2.删除/ 0.返回上一级:'))
        # 根据不同的type做判断
        if type==1:
            # 修改
            modifyCard(card)
            # 跳出循环
            break
        elif type==2:
            # 删除
            deleteCard(card)
            break
        elif type==0:
            # 返回上一级
            break
        else:
            print('输入错误,请重新输入')

输入1进行修改,对应modifyCard函数

输入2进行删除,对应deleteCard函数

修改名片modifyCard

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def modifyCard(card):
    '''
    修改名片
    :param card:
    :return:
    '''
    name = input('请输入姓名:')
    phone = input('请输入电话:')
    qq = input('请输入QQ:')
    email = input('请输入邮箱:')
    # 修改名片
    card[0] = name
    card[1] = phone
    card[2] = qq
    card[3] = email

删除名片deleteCard

1
2
3
4
5
6
7
def deleteCard(card):
    '''
    删除名片
    :param card: 名片列表
    :return:
    '''
    cardList.remove(card)