码迷,mamicode.com
首页 > 其他好文 > 详细

名片管理系统

时间:2020-04-02 09:11:49      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:文件名   添加   姓名   chmod   分隔线   break   import   dem   控制   

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

 

名片管理系统

标签:文件名   添加   姓名   chmod   分隔线   break   import   dem   控制   

原文地址:https://www.cnblogs.com/nuochengze/p/12617130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!