编程题
1、名片管理程序
现需制作-一个名片管理器程序,能够实现名片的增删改查功能,每张名片主要内容有:姓名、职位、住址。程序若未退出前,则一直循环运行。
程序编写要求: 按要求定义8个函数,并实现相应功能,提供的部分代码如下所示:i=0
card_dict = {} #保存数据
while i < 1:
#打印菜单
display_menu ()#函数1
#等待用户选择
key = get_choice() #函 数2
if key == 1:
add_info()#函数3
elif key == 2:
del_info()#函数4
elif key == 3:
revise_info() #函数5
elif key == 4:
seek_info()#函数6
elif key == 5:
print_all_info() #函数7
elif key == 6:
i=exit_menu()#函数8
else:
print("输入有误,请重新输入...")
编程思路
1、从题目要求看,程序中采用字典card_dict存储名片信息,其中每张名片内容为姓名、职位、住址,也是一个字典信息。因此我们采用字典的嵌套,作为数据的存储结构。将姓名作为字典的Key值,其他信息作为字典的Value值。如{张三:{职位:工程师,住址:深圳}}
2、按题目要求依次定义函数,主要涉及的知识点为字典的增、删、改、查操作。
编程实现#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author : 青松
# @Time : 2020/4/9 9:11
# @Site : www.itclub16.com
#显示目录
def display_menu():
print("-"*20)
print("\t名片管理系统 V1.0\n"\
"1.添加名片\n"\
"2.删除名片\n"\
"3.修改名片\n"\
"4.查询名片\n"\
"5.获取所有名片信息\n"\
"6.退出系统")
print("-"*20)
#获取选择的序号
def get_choice():
key=int(input("请输入选择的序号:"))
return key
#新增名片信息
def add_info():
newName = input("请输入姓名:")
newJob = input("请输入职位:")
newAdd = input("请输入住址:")
#将姓名作为字典的key,其他信息(字典)作为字典的value
newInfo={} #定义字典
newInfo["job"]= newJob
newInfo["add"]= newAdd
#判断名片中是否已存在
if newName not in card_dict.keys():
card_dict[newName]=newInfo
else:
print("该名片已存在!")
#删除名片信息
def del_info():
delName=input("请输入要删除的名片:")
if delName in card_dict.keys():
del card_dict[delName]
else:
print("该名片不存在!")
#修改名片信息
def revise_info():
cardSel=input("请输入要修改的名片姓名:")
if cardSel in card_dict.keys():
while True:
numSel=int(input("选择要修改的内容:1:职位 2:住址 0:结束修改"))
if numSel == 1:
card_dict[cardSel]["job"]=input("请输入新的职位:")
elif numSel ==2:
card_dict[cardSel]["add"] = input("请输入新的住址:")
else:
break
else:
print("该名片不存在!")
#查询名片信息
def seek_info():
seekName=input("请输入要查询的名片姓名")
#判断是否在名片内
if seekName in card_dict.keys():
print("*"*20)
print("姓名 职位 住址")
print("*" * 20)
print("%s\t%s\t%s" % (seekName,card_dict[seekName]["job"],card_dict[seekName]["add"],))
print("*" * 20)
else:
print("未查询到该名片!")
#获取所有名片信息
def print_all_info():
print("所有名片信息如下:")
print("*"*20)
print("姓名 职位 住址")
print("*"*20)
for cardname,cardinfo in card_dict.items():
print("%s\t%s\t%s"%(cardname,cardinfo["job"],cardinfo["add"]))
print("*" * 20)
#退出系统
def exit_menu():
print("退出系统")
return 1
i=0
card_dict = {} #保存数据
while i < 1:
#打印菜单
display_menu ()#函数1
#等待用户选择
key = get_choice() #函 数2
if key == 1:
add_info()#函数3
elif key == 2:
del_info()#函数4
elif key == 3:
revise_info() #函数5
elif key == 4:
seek_info()#函数6
elif key == 5:
print_all_info() #函数7
elif key == 6:
i=exit_menu()#函数8
else:
print("输入有误,请重新输入...")
运行结果: