扣丁学堂Python培训项目实战之实现名片管理系统

2018-11-30 13:16:02 305浏览

今天扣丁学堂Python培训老师为大家分享一篇关于python实现名片管理系统的具体代码,希望对同学们学习Python开发有所帮助,下面我们一起来看一下吧。

系统需求

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

**************************************************

欢迎使用【名片管理系统】V1.0

1.新建名片

2.显示全部

3.查询名片

0.退出系统

**************************************************

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

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

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

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

信息保存本地

需求分析

采用分文件的方式进行开发,主文件cards_main.py复杂业务逻辑,cards_tool.py文件负责具体的功能实现。

新建名片、显示全部、查询名片对应相应的功能函数。如果代码过长,再进行拆分。

数据结构的选择?一条名片包含多个键值对采用字典数据类型,所有名片信息采用列表数据结构。

保证名片信息的本地保存和读取使用python的文件操作,进入名片系统先对名信息文件进行读取,在退出名片系统时,将所有名片信息重新写入到名片文件中。

代码实现

import cards_tool
# 主业务逻辑
cards_tool.read_card()
  
  
# 1.显示用户主界面
while True:
  cards_tool.show_menu()
  menu_str = input("请选择执行的操作:")
  print("您选择的功能:%s" % menu_str)
  if menu_str == "1":
    cards_tool.create_card()
  elif menu_str == "2":
    cards_tool.show_card_all()
  elif menu_str == "3":
    cards_tool.search_card()
  elif menu_str == "0":
    cards_tool.write_card()
    break
  else:
    print("输入有误,请重新输入")

cards_tool.py

import os
card_info_all = [] # 所有名片信息
# 名片管理 具体功能
def write_card():
  """退出系统时,将名片信息保存到文件夹中"""
  f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt", "w")
  f.write(str(card_info_all))
  f.close()
  
  
def read_card():
  """进入系统时,将名片信息加载到内存中"""
  is_exist = os.path.exists("E:\\workspace_python\\FirstDemo\\名片管理系统.txt")
  if is_exist:
    # 文件存在将信息加载到内存中
    f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt","r")
    global card_info_all
    card_info_all = eval(f.read())
    # print(card_info_all)
    f.close()
  else:
    # 没有文件创建空文件
    f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt", "w")
    f.close()
  print(is_exist)
  
  
def show_menu():
  """主菜单页面展示"""
  print("*"*30)
  print("欢迎使用[命名管理系统] v1.0")
  print()
  print("1.新建名片")
  print("2.显示全部")
  print("3.查询名片")
  print()
  print("0.退出系统")
  print("*"*30)
  
  
def create_card():
  """新建名片"""
  print("功能:新建名片")
  name = input("请输入姓名:")
  phone = input("请输入电话:")
  qq = input("请输入qq号:")
  email = input("请输入邮箱:")
  card_info = {"name":name,"phone":phone, "qq":qq, "email":email}
  card_info_all.append(card_info)
  print("添加%s的名片成功" % name)
  
  
def show_card_all():
  """显示所有名片"""
  print("功能:显示全部")
  if not len(card_info_all):
    print("没有任何名片")
    return
  print("name".ljust(14),"phone".ljust(14),"qq".ljust(14),"email".ljust(14),sep="")
  print("-"*56)
  for card in card_info_all:
    print(card["name"].ljust(14),card["phone"].ljust(14),card["qq"].ljust(14),card["email"].ljust(14),sep="")
    print("-"*56)
  
  
def search_card():
  """查询名片"""
  print("功能:查询名片")
  name = input("请输入查询的姓名:")
  for card in card_info_all:
    if name == card["name"]:
      print("name".ljust(14), "phone".ljust(14), "qq".ljust(14), "email".ljust(14), sep="")
      print("-" * 56)
      print(card["name"].ljust(14), card["phone"].ljust(14), card["qq"].ljust(14), card["email"].ljust(14),sep="")
      # 名片高级处理
      set_card(card)
      break;
  else:
    print("没有找到%s" % name)
  
  
def set_card(card):
  """名片的高级设置"""
  while True:
    menu = input("请输入对名片的操作:1.修改/ 2.删除/ 0.返回上一级")
    if menu == "1":
      name = input("请输入姓名:")
      phone = input("请输入电话:")
      qq = input("请输入qq号:")
      email = input("请输入邮箱:")
      card["name"] = name
      card["phone"] = phone
      card["qq"] = qq
      card["email"] = email
      print("%s 的名片修改成功" % name)
      return
    elif menu == "2":
      card_info_all.remove(card)
      print("删除名片成功")
      return
    elif menu == "0":
      return
    else:
      print("输入有误,请重新输入")

代码运行结果



以上就是扣丁学堂Python培训项目实战之实现名片管理系统的全部内容,希望对大家的学习有所帮助,扣丁学堂有时俱进的课程体系和大量的Python视频教程让学员免费观看学习,想要学好Python的小伙伴快到扣丁学堂来了解详情吧。扣丁学堂Python技流群:279521237。

扣丁学堂微信公众号 


关注微信公众号获取更多学习资料 

 

查看更多关于"Python开发资讯"的相关文章>

标签: Python培训 Python视频教程 Python在线视频 Python学习视频 Python培训班

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号