名片管理系统

1、目标
  综合应用已经学习过的知识点:变量、流程控制、函数、模块

2、开发 
  名片管理系统

3、系统需求
  3.1 程序启动,显示名片管理系统欢迎界面,并显示功能菜单

  3.2 用户用数字选择不同的功能

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

  3.4 用户名片需要记录用户的姓名、电话、qq、邮件

  3.5 如果查询到指定的名片,用户可以选择修改或则删除名片

4、框架搭建
  4.1 目标
  搭建名片管理系统框架结构
    1)准备文件,确定文件名,保证能够在需要的位置编写代码
    2)编写主运行循环,实现基本的用户输入和判断
  4.2 文件准备
    1)新建card_main.py,保存主程序功能代码
      程序的入口
      每次启动名片管理系统都通过main这个文件启动
    2)新建card_tools.py保存所有名片功能函数
      将对名片的新增、查询、修改、删除等功能封装在不同的函数中
  4.3 编写主运行循环

5、保存名片数据的结构
  程序就是用来处理数据的,而变量就是用来存储数据的
  使用字典记录每一张名片的详细信息
  使用列表统一记录所有的名片字典

6、涉及的应用

  1) shebang,即在程序的开头添加#! /usr/bin/python3后修改文件可执行权限chmod +x demo.py,即可直接运行文件./demo.py,而不需要通过python3 demo.py来执行

  2)  提取程序为函数,简化代码结构

7、card_main.py

 1 #! /usr/bin/python3
 2 
 3 import card_tools
 4 
 5 while True:
 6 
 7     # 显示功能菜单
 8     card_tools.show_menu()
 9 
10     # 输入动作,并显示动作
11     action_str = input('请选择希望执行的操作:')
12     print("您选择的操作是:[%s]" % action_str)
13 
14 
15     # 1,2,3针对名片的操作
16     if action_str in ['1','2','3']:
17         # 新增名片
18         if action_str=='1':
19             card_tools.new_card()
20         # 显示全部
21         elif action_str=='2':
22             card_tools.show_all()
23         # 查询名片
24         elif action_str=='3':    
25             card_tools.search_card()
26     # 0 退出系统
27     elif action_str=='0':
28         print('-'*50)
29         print('欢迎再次使用【名片管理系统】')
30         print('-'*50)
31         break;
32     else:
33         print('您输入的不正确,请重新选择')

8、card_tools.py

  1 # 定义一个列表变量,存储名片字典
  2 card_list = []
  3 
  4 
  5 # 名片欢迎界面
  6 def show_menu():
  7     print('\t')
  8     print('*'*50)
  9     print('欢迎使用【名片管理系统】V1.0')
 10     print()
 11     print('1.新建名片')
 12     print('2.显示全部')
 13     print('3.查询名片')
 14     print()
 15     print('0.退出系统')
 16     print('*'*50)
 17 
 18 # 新增名片
 19 def new_card():
 20     """新增名片"""
 21     print('-'*50)
 22     print('新增名片')
 23     print('-'*50)
 24 
 25     # 1提示用户输入名片的详细信息
 26     name_str= input('请输入姓名:')
 27     phone_str = input('请输入电话号码:')
 28     qq_str = input('请输入qq号码:')
 29     email_str = input('请输入邮箱号码:')
 30     # 2使用用户输入的信息建立一个名片字典
 31     card_dict = {'name':name_str,
 32                 'phone':phone_str,
 33                 'qq':qq_str,
 34                 'email':email_str}
 35     # 3将名片字典添加到列表中
 36     card_list.append(card_dict)
 37     # 4提示用户添加成功
 38     print('-'*50)
 39     print('添加%s的名片成功' % name_str)
 40 
 41 
 42 # 显示全部
 43 def show_all():
 44     """显示全部"""
 45     print('-'*50)
 46     print('显示全部')
 47     print('-'*50)
 48 
 49     if card_list:
 50 
 51         # 打印表头
 52         for name in ['姓名','电话','QQ','邮箱']:
 53             print(name,end='\t\t')
 54         # 打印分隔线
 55         print('\t')
 56         print('='*50)
 57     
 58         # 遍历名片列表,依次输出信息
 59         for card_dict in card_list:
 60             print('%s\t\t%s\t\t%s\t\t%s' % (card_dict['name'],
 61                                                 card_dict['phone'],
 62                                                 card_dict['qq'],
 63                                                 card_dict['email']))
 64     else:
 65         print('未存储任何名片,请进行添加')
 66 
 67 # 查询名片
 68 def search_card():
 69     """查询名片"""
 70     print('-'*50)
 71     print('查询名片')
 72     print('-'*50)
 73 
 74     # 1提示用户输入要搜索的姓名
 75     find_name_str = input('请输入要搜索的姓名:')
 76 
 77     # 2遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
 78     for card_dict in card_list:
 79         if card_dict['name']==find_name_str:
 80             print('找到了')
 81             print('='*50)
 82             # 打印表头
 83             for name in ['姓名','电话','QQ','邮箱']:
 84                 print(name,end='\t\t')
 85             # 打印分隔线
 86             print('\t')
 87             print('='*50)
 88             print('%s\t\t%s\t\t%s\t\t%s' % (card_dict['name'],
 89                                                 card_dict['phone'],
 90                                                 card_dict['qq'],
 91                                                 card_dict['email']))
 92 
 93             # 针对找到的名片进行修改和删除的操作
 94             deal_card(card_dict)
 95             break
 96         else:
 97             print('抱歉,没有找到%s' % find_name_str)
 98 
 99 def deal_card(find_dict):
100     """处理名片"""
101     action_str = input("请选择要执行的操作:[1] 修改 [2] 删除 [0] 返回")
102     if action_str=='1':
103         find_dict['name']=input_card_info(find_dict['name'],
104                                         '请输入要修改的姓名:')
105         find_dict['phone']=input_card_info(find_dict['phone'],
106                                         '请输入要修改的电话:')
107         find_dict['qq']=input_card_info(find_dict['qq'],
108                                         '请输入要修改的qq:')
109         find_dict['email']=input_card_info(find_dict['email'],
110                                         '请输入要修改的邮箱:')
111         print('修改名片成功')
112     elif action_str=='2':
113         card_list.remove(find_dict)
114         print('删除名片成功')
115 
116 
117 def input_card_info(dict_value,tip_message):
118     """如果用户输入了内容,返回输入值,否则返回默认值"""
119     # 1提示用户输入内容
120     result_str = input(tip_message)
121     # 2针对用户的输入进行判断,如果用户输入了内容,直接返回结果
122     if len(result_str)>0:
123         return result_str
124     # 3如果用户没有输入内容,返回‘字典中原有的值’
125     else:
126         return dict_value
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值