《Python程序设计》实验报告 实验一 名片管理设计

前言

一、实验目的

1、 掌握列表的定义、常见操作、列表的访问等
2、 掌握字典的定义、常见操作、字典的访问等
3、 掌握函数的定义、函数的调用等

二、实验内容

1、 定义一个名片管理器菜单
具体格式如下:

1.添加一个新的名片
2.删除一个名片
3.修改一个名片
4.查询一个名片
5.显示所有的名片	
6.退出系统

2、 每一个名片信息包括:姓名、性别、年龄、工作单位、联系电话、QQ、微信号等,名片信息以字典形式存储在列表中;
3、 定义添加名片的函数:def add_new_card_infor():
4、 定义删除名片的函数(根据姓名来删除):def dele_card_infor():
5、 定义查找名片的函数(根据姓名来进行查找):
def find_card_infor():
6、 定义显示所有名片信息的函数:def show_all_infor():
7、 定义主函数完成对整个程序的控制:
def main():
8、调用主函数:main()

三、程序实现

1.代码

# 来个菜单
def display_menu():
    print('='*35)
    print('         1.添加名片')
    print('         2.删除名片')
    print('         3.修改名片')
    print('         4.查询名片')
    print('         5.获取所有名片信息')
    print('         6.退出系统')
    print('='*35)


# 获取用户信息
def get_choice():
    selected_key = input("请输入选择的序号:")
    return int(selected_key)


# 1.添加名片
def add_new_card_infor():
    card={}
    new_name = input('请输入姓名:')
    new_gender = input('请输入性别:')
    new_age = input('请输入年龄:')
    new_work = input('请输入工作单位:')
    new_phone = input('请输入联系电话:')
    new_QQ = input('请输入QQ号:')
    new_WX = input('请输入微信号:')
    card['姓名'] = new_name
    card['性别'] = new_gender
    card['年龄'] = new_age
    card['工作单位'] = new_work
    card['联系电话'] = new_phone
    card['QQ号'] = new_QQ
    card['微信号'] = new_WX
    list.append(card)
    print("信息存入成功!!")
    print("您存入的信息为:")
    print(card)
    re = input("请输入任意键返回菜单列表...")


# 2.删除名片
def dele_card_infor(del_list):
    name = input('请输入要删除的名片的姓名:')
    count = 0
    flag_1 = 0
    for i in reversed(range(len(del_list))):
        count += 1
        k = del_list[i].get("姓名","none")
        if k == name :
            #显示将要删除的信息功能实现
            print("您即将删除的信息为:\n",del_list[i])
            #确认删除
            j = 1
            while (j):
                in_content = input("是否确认删除(Y/N)?")
                if in_content == "Y" or in_content == "y":
                    del del_list[i]
                    print("执行成功!")
                    flag_1 = 1
                    j = 0
                elif in_content == "N" or in_content == "n":
                    flag_1 = 1
                    j = 0
                else:
                    print("你输入有误,请重输入!")
        if count == len(del_list) and flag_1 == 0:
            print("查无此姓名!")
            break

    re = input("请输入任意键返回菜单列表...")

# 3,修改名片
def modify_info(mod_list):
    name = input('请输入要修改的名片的姓名:')
    count = 0
    for i in reversed(range(len(mod_list))):
        count += 1
        k = mod_list[i].get("姓名", "none")
        if k == name:
            card = {}
            new_name = input('请输入姓名:')
            new_gender = input('请输入性别:')
            new_age = input('请输入年龄:')
            new_work = input('请输入工作单位:')
            new_phone = input('请输入联系电话:')
            new_QQ = input('请输入QQ号:')
            new_WX = input('请输入微信号:')
            card['姓名'] = new_name
            card['性别'] = new_gender
            card['年龄'] = new_age
            card['工作单位'] = new_work
            card['联系电话'] = new_phone
            card['QQ号'] = new_QQ
            card['微信号'] = new_WX
            mod_list[i] = card
            print("您修改后的信息为:")
            print(card)
            break
        if count == len(mod_list):
            print("查无此名片!")
            break
    # 方便用户看到提示信息
    re = input("请输入任意键返回菜单列表...")

# 4,查询名片
def find_card_infor(find_list):
    name = input('请输入要查询的名片的姓名:')
    count = 0
    for i in reversed(range(len(find_list))):
        count += 1
        k = find_list[i].get("姓名", "none")
        if k == name:
            print(find_list[i])
        if count == len(find_list):
            print("查无此编号!")
            break
    re = input("请输入任意键返回菜单列表...")
# 5,查看所有名片的信息
def show_all_infor(show_list):
    print('='*110)
    for info in show_list:
        print(' '*50,'所有名片信息:')
        print(info)
    print('='*110)
    re = input("请输入任意键返回菜单列表...")


list = []      # 定义一个空列表用来装我的用户
def main():
    i = 0
    while i < 1:
        display_menu()
        key = get_choice()
        if key == 1:
           add_new_card_infor()
        elif key == 2:
            dele_card_infor(list)
        elif key == 3:
            modify_info(list)
        elif key == 4:
            find_card_infor(list)
        elif key == 5:
            show_all_infor(list)
        elif key == 6:
            break
        else:
            print('输入有误,请重新输入.............')
main()


2.实验结果(包括输入数据和输出结果)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、总结

  1. 问题:存入名片信息和修改信息不够直观,不能让用户感受到确实修改或存入的感觉
    解决方法:存入或修改完成后输出一遍
  2. 问题:代码执行命令展示完成存入信息后结束过快,用户可能没看清楚
    解决方法:加入键盘获取,当用户输入任意键后再返回主菜单
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西又X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值