python实现名片管理系统
作者:Laymond_ 发布时间:2021-04-02 22:21:40
本文实例为大家分享了python实现名片管理系统的具体代码,供大家参考,具体内容如下
系统需求
程序启动,显示名片管理系统欢迎界面,并显示功能菜单
**************************************************
欢迎使用【名片管理系统】V1.0
1. 新建名片
2. 显示全部
3. 查询名片
0. 退出系统
**************************************************
用户用数字选择不同的功能
根据功能选择,执行不同的功能
用户名片需要记录用户的 姓名、电话、QQ、邮件
如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
信息保存本地
需求分析
采用分文件的方式进行开发,主文件cards_main.py复杂业务逻辑,cards_tool.py文件负责具体的功能实现。
新建名片、显示全部、查询名片 对应相应的功能函数。如果代码过长,再进行拆分。
数据结构的选择?一条名片包含多个键值对采用字典数据类型,所有名片信息 采用列表数据结构。
保证名片信息的本地保存和读取使用python的文件操作,进入名片系统先对名信息文件进行读取,在退出名片系统时,将所有名片信息重新写入到名片文件中。
代码实现
代码很简洁,注释太多 容易凌乱。
cards_main.py
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 这些基本知识一定要掌握,有过其他编程语言经验的小伙伴是不是感觉很简单。
更多学习资料请关注专题《管理系统开发》。
来源:https://blog.csdn.net/qq_29542611/article/details/79052860
猜你喜欢
- 概述一个状态管理工具Store:保存数据的地方,你可以把它看成一个容器,整个应用只能有一个 Store。State:包含所有数据,如果想得到
- tensorflow2.0实现cnn图像识别import tensorflow as tffrom t
- <% Function ReplaceUrl2(HTMLstr) Dim n,st
- 缓存(Cache)对于创建一个高性能的网站和提升用户体验来说是非常重要的,然而对我们这种只用得起拼多多的码农而言最重要的是学会如何使用缓存。
- 一、使用python内置commands模块执行shellcommands对Python的os.popen()进行了封装,使用SHELL命令
- 本文为大家分享一个简单商城购物车的python代码,供大家参考,具体内容如下要求:1、写一段商城程购物车序的代码2、用列表把商城的商品清单存
- 前言如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有
- 我很想自己写一个这样的程序,不过wordpress是php的,我blog是ASP的,只好用ASP写代码了。经过一番折腾测试,终于让我的梦想变
- 前言:图像处理是常用的技术,python 拥有丰富的第三方扩展库,Pillow 是 Python3 最常用的图像处理库,目前最高版本5.2.
- 我就废话不多说了,大家还是直接看代码吧~'''Created on 2018-4-16'''
- 以下所描述无理论依据,纯属经验谈。MySQL使用4.1以上版本,管他是什么字符集,一律使用默认。不用去设置MySQL。然后举个使用GB231
- 普通方法:爬取梨视频import reimport timeimport randomimport requestsfrom lxml im
- 1**:请求收到,继续处理2**:操作成功收到,分析、接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务
- 代码如下: public function fillzero(l1) if len(l1)=1 then fillzero="0&
- 开发微信小程序过程中,有个需求需要用到日期时间筛选器,查看微信官方文档后,发现官方文档的picker筛选器只能单独支持日期或者是时间,所以为
- !DOCTYPE--------------------------------------------------------------
- 还有种片面的观点认为,做网站设计与平面差不多,比如老罗发布的这则招聘中提到:年薪十万招擅长做下列网站设计风格的平面设计师一名。在专业角度,网
- 使用 NetBox 可以方便的将 asp 应用编译成为独立运行的执行程序,完全摆脱 iis 的束缚,在几乎所有的 Windows
- 参数Parameters解析响应时间resolveTimeout 数据类型:长整型。简单地说就是程序对目标主机的名字解析解析的一个过程时间。
- 一、概念梳理链表是计算机科学里面应用应用最广泛的数据结构之一。它是最简单的数据结构之一,同时也是比较高阶的数据结构(例如棧、环形缓冲和队列)