Python答优大作业[名片管理系统(完整代码)]

导读:本篇文章讲解 Python答优大作业[名片管理系统(完整代码)],希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

文章目录


前言

        这几天在学javaweb没有什么好的案例,这是我一年前python大作业写的答优代码,勉强拿了90分,答辩和报告书写的不怎么好。老师这方面扣分比较严重。这里我发上来给初学者观看,也是一些基础的语法,没有用到数据库之类的。只是按照作业要求完成了对名片管理系统的增删改查操作。不过在此基础上我添加了一些新的功能,比如添加加载进度条、还有以文件的形式保存数据,等。下面我一个功能一个功能的讲述一下。这几天没素材发,翻出来以前的代码顺便看看,回顾一下知识点,顺便发上来分享给大家。


一、要求描述

通过本项目的学习,学员可以了彩项目开发的流程,掌握项目需求分析、设计与功能的代码实现。提高同学们独立分析需求与功能实现的能力。

项目知识点:变量、流程控制、函数、惯块等python基中常用的知识点。使用python设计一个名片管理系统,能提供下列服务:

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

        2.用户用数字选择不同的功能。

        3.根据功能选择,执行不同的动能。

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

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

二、函数功能及代码描述

1.函数jiemian()进度条制作

首先是加载页面,引入time,time.sleep每0.5秒执行一次循环。\r是光标回到起始位置,for循环每次*多.少的趋势执行,就形成了一种进度条的样式。

import time
def jeimian():#加载页面
    print("正在加载名片管理系统。。。".center(50,"="))
    m=10
    for i in range(m+1):
        a="*"*i
        b="."*(m-i)
        c=i/m*100
        print("\r[{}>{}]{:3.0f}%".format(a,b,c),end="")
        time.sleep(0.5)
    print("")
    print("加载成功".center(50,"="))
    print("")

2. 函数function()功能页面描述

这个就是要封装起来放到主页面main的while循环里,每次执行完功能都会重新展示一遍,交互性好些。当然,在执行while循环前也得显示一遍让用户进行选择相应的操作。

def function():#功能页面
    print("您已进入名片管理系统".center(50,"="))
    print("【1】新建名片")
    print("【2】查询名片")
    print("【3】删除名片")
    print("【4】修改名片")
    print("【5】显示全部名片")
    print("【6】保存名片数据")
    print("【7】退出系统")

3.函数add_B_card()增加名片信息功能

这里也是创建了一个集合,用来放用户信息的键值对,把用户输入的信息保存起来,存放一个用户的信息。然后b_card_lt=[]就是用来存放每一个用户的信息。

def add_B_card():#新建名片
    print("您已进入新建名片功能".center(50,"="))
    b_card_zd={}
    add_name=input("请输入新建用户的姓名:")
    add_phone=input("请输入新建用户的电话:")
    add_qq=input("请输入新建用户的qq:")
    add_mail=input("请输入新建用户的邮件:")
    add_address=input("请输入新建用户的地址:")
    b_card_zd["name"]=add_name
    b_card_zd["phone"]=add_phone
    b_card_zd["qq"]=add_qq
    b_card_zd["mail"]=add_mail
    b_card_zd["address"]=add_address
    b_card_lt.append(b_card_zd)
    print("用户名片添加成功!!!".center(50,"="))
    print("")

4.函数find_B_card()查询名片信息功能

用户输入完查询的用户名字后,用for循环进行查找,你没有找到的情况就是sum的值等于了存放用户信息的长度。

def find_B_card():#查询名片
    print("您已进入查询名片功能".center(50, "="))
    print("请输入您要查询用户名片的姓名:")
    find_name=input()
    len1=len(b_card_lt)
    sum=0
    for i in b_card_lt:
        sum+=1
        if i["name"]==find_name:
            sum-=1
            print("查询结果".center(50,"="))
            print(i)
            break
    if sum==len1:
        print("查询结果".center(50,"="))
        print("用户名片里没有您所查询的用户!".center(50,"*"))
    print("")

 5.函数delete_B_card()删除名片信息功能

 这个也是先查找,找到了才能进行删除。用remove方法来删除信息。

def delete_B_card():#删除名片
    print("您已进入删除名片功能".center(50, "="))
    print("请输入您要删除用户名片的姓名:")
    delete_name=input()
    len2 = len(b_card_lt)
    sum = 0
    for i in b_card_lt:
        sum += 1
        if i["name"] == delete_name:
            sum -= 1
            print("删除结果".center(50, "="))
            b_card_lt.remove(i)
            print("删除成功!".center(50,"="))
            break
    if sum == len2:
        print("删除结果".center(50, "="))
        print("用户名片里没有您要删除的用户!".center(50, "*"))
    print("")

6.函数change_B_card()修改名片信息

这个也是先查找,找到的话让用户重新输入修改后的值,然后重新赋值给要修改的用户信息就可以。

def change_B_card():#修改名片
    print("您已进入修改名片功能".center(50, "="))
    print("请输入您要修改用户名片的姓名:")
    change_neme=input()
    len3=len(b_card_lt)
    sum=0
    for i in b_card_lt:
        sum+=1
        if i["name"]==change_neme:
            sum-=1
            new_name=input("请重新输入用户的姓名:")
            new_phone=input("请重新输入用户的电话:")
            new_qq = input("请重新输入用户的qq:")
            new_mail = input("请重新输入用户的邮件:")
            new_address=input("请重新输入用户的地址:")
            i["name"]=new_name
            i["phone"]=new_phone
            i["qq"]=new_qq
            i["mail"]=new_mail
            i["address"]=new_address
            print("修改成功!".center(50,"="))
            break
        if sum==len3:
            print("修改结果".center(50,"="))
            print("用户名片里没有您要修改的用户!".center(50, "*"))
    print("")

7.函数show_B_card()显示所有名片

这个就是一个查询,前面的看懂这个就非常简单了。

def show_B_card():  # 显示名片
    print("您已进入显示名片功能".center(50, "="))
    print("所有名片如下表所示".center(50,"="))
    k=1
    if len(b_card_lt)!=0:
        for i in b_card_lt:
            print("第{}名用户的信息:{}".format(k, i))
            k += 1
        print("所有名片显示完成".center(50, "="))
    else:
        print("该名片管理系统无用户名片!".center(50,"="))
    print("")

8. 函数save_to_file()保存数据

 创建了一个文本文件,将数据用write()方法写进去。

def save_to_file():#保存数据
    file=open("backup.txt","w")
    file.write(str(b_card_lt))
    file.close()
    print("该名片数据已保存成功".center(50,"="))
    print("")

9.函数recover_data()恢复数据

这个就是如果下次运行的话有上次操作的数据,数据会保护下来,运行时先加载数据。

def recover_data():#恢复数据
    global b_card_lt
    file=open("backup.txt")
    content=file.read()
    b_card_lt=eval(content)
    file.close()

三、主函数

1.首先调用recover_data()、jeimian()函数,就是上述的恢复数据和进度条。

2.然后进行循环调用功能页面函数。

3.让用户选择要操作的功能

4.跳转到对应的函数去执行

5.最后进行了用户退出的判断与交互效果。

import card_system
b_card_lt=[]
card_system.recover_data()
card_system.jeimian()
print("欢迎使用【名片管理系统】V1.0".center(50,"="))
while True:
    card_system.function()
    choice = input("请输入数字1~7表示你要进行的操作:")
    if choice in ['1', '2', '3', '4', '5', '6', '7']:
        if choice == '1':
            card_system.add_B_card()
        elif choice == '2':
            card_system.find_B_card()
        elif choice == '3':
            card_system.delete_B_card()
        elif choice == '4':
            card_system.change_B_card()
        elif choice == '5':
            card_system.show_B_card()
        elif choice == '6':
            card_system.save_to_file()
        elif choice == '7':
            print("您确定要退出名片管理系统?".center(50, "="))
            choice1 = input("请输入yes/no:")
            if choice1 in ['yes', 'no']:
                if choice1 == 'yes':
                    print("感谢使用名片管理系统,See you!".center(50, "="))
                    break
            else:
                print("您的输入不合法,请重新输入".center(50, "*"))
    else:
        print("您的输入不合法,请重新输入".center(50, "*"))

四、完整代码

card_system.py代码

import time
def jeimian():#加载页面
    print("正在加载名片管理系统。。。".center(50,"="))
    m=10
    for i in range(m+1):
        a="*"*i
        b="."*(m-i)
        c=i/m*100
        print("\r[{}>{}]{:3.0f}%".format(a,b,c),end="")
        time.sleep(0.5)
    print("")
    print("加载成功".center(50,"="))
    print("")

def function():#功能页面
    print("您已进入名片管理系统".center(50,"="))
    print("【1】新建名片")
    print("【2】查询名片")
    print("【3】删除名片")
    print("【4】修改名片")
    print("【5】显示全部名片")
    print("【6】保存名片数据")
    print("【7】退出系统")

def add_B_card():#新建名片
    print("您已进入新建名片功能".center(50,"="))
    b_card_zd={}
    add_name=input("请输入新建用户的姓名:")
    add_phone=input("请输入新建用户的电话:")
    add_qq=input("请输入新建用户的qq:")
    add_mail=input("请输入新建用户的邮件:")
    add_address=input("请输入新建用户的地址:")
    b_card_zd["name"]=add_name
    b_card_zd["phone"]=add_phone
    b_card_zd["qq"]=add_qq
    b_card_zd["mail"]=add_mail
    b_card_zd["address"]=add_address
    b_card_lt.append(b_card_zd)
    print("用户名片添加成功!!!".center(50,"="))
    print("")

def find_B_card():#查询名片
    print("您已进入查询名片功能".center(50, "="))
    print("请输入您要查询用户名片的姓名:")
    find_name=input()
    len1=len(b_card_lt)
    sum=0
    for i in b_card_lt:
        sum+=1
        if i["name"]==find_name:
            sum-=1
            print("查询结果".center(50,"="))
            print(i)
            break
    if sum==len1:
        print("查询结果".center(50,"="))
        print("用户名片里没有您所查询的用户!".center(50,"*"))
    print("")

def delete_B_card():#删除名片
    print("您已进入删除名片功能".center(50, "="))
    print("请输入您要删除用户名片的姓名:")
    delete_name=input()
    len2 = len(b_card_lt)
    sum = 0
    for i in b_card_lt:
        sum += 1
        if i["name"] == delete_name:
            sum -= 1
            print("删除结果".center(50, "="))
            b_card_lt.remove(i)
            print("删除成功!".center(50,"="))
            break
    if sum == len2:
        print("删除结果".center(50, "="))
        print("用户名片里没有您要删除的用户!".center(50, "*"))
    print("")

def change_B_card():#修改名片
    print("您已进入修改名片功能".center(50, "="))
    print("请输入您要修改用户名片的姓名:")
    change_neme=input()
    len3=len(b_card_lt)
    sum=0
    for i in b_card_lt:
        sum+=1
        if i["name"]==change_neme:
            sum-=1
            new_name=input("请重新输入用户的姓名:")
            new_phone=input("请重新输入用户的电话:")
            new_qq = input("请重新输入用户的qq:")
            new_mail = input("请重新输入用户的邮件:")
            new_address=input("请重新输入用户的地址:")
            i["name"]=new_name
            i["phone"]=new_phone
            i["qq"]=new_qq
            i["mail"]=new_mail
            i["address"]=new_address
            print("修改成功!".center(50,"="))
            break
        if sum==len3:
            print("修改结果".center(50,"="))
            print("用户名片里没有您要修改的用户!".center(50, "*"))
    print("")

def show_B_card():  # 显示名片
    print("您已进入显示名片功能".center(50, "="))
    print("所有名片如下表所示".center(50,"="))
    k=1
    if len(b_card_lt)!=0:
        for i in b_card_lt:
            print("第{}名用户的信息:{}".format(k, i))
            k += 1
        print("所有名片显示完成".center(50, "="))
    else:
        print("该名片管理系统无用户名片!".center(50,"="))
    print("")

def save_to_file():#保存数据
    file=open("backup.txt","w")
    file.write(str(b_card_lt))
    file.close()
    print("该名片数据已保存成功".center(50,"="))
    print("")

def recover_data():#恢复数据
    global b_card_lt
    file=open("backup.txt")
    content=file.read()
    b_card_lt=eval(content)
    file.close()

main函数.py代码 

import card_system
b_card_lt=[]
card_system.recover_data()
card_system.jeimian()
print("欢迎使用【名片管理系统】V1.0".center(50,"="))
while True:
    card_system.function()
    choice = input("请输入数字1~7表示你要进行的操作:")
    if choice in ['1', '2', '3', '4', '5', '6', '7']:
        if choice == '1':
            card_system.add_B_card()
        elif choice == '2':
            card_system.find_B_card()
        elif choice == '3':
            card_system.delete_B_card()
        elif choice == '4':
            card_system.change_B_card()
        elif choice == '5':
            card_system.show_B_card()
        elif choice == '6':
            card_system.save_to_file()
        elif choice == '7':
            print("您确定要退出名片管理系统?".center(50, "="))
            choice1 = input("请输入yes/no:")
            if choice1 in ['yes', 'no']:
                if choice1 == 'yes':
                    print("感谢使用名片管理系统,See you!".center(50, "="))
                    break
            else:
                print("您的输入不合法,请重新输入".center(50, "*"))
    else:
        print("您的输入不合法,请重新输入".center(50, "*"))

总结

这里也是写完了,Python语言还是比较容易理解的,所以只说了下大概思路,里面具体的操作都是英文看的懂应该都没有问题的。还有这里面也是我一年前的大作业,大家如果感兴趣的话可以在此基础上添加id查找、修改等功能。这几天在学习javaweb,等学的差不多我会做几个案例发上来分享给大家的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114657.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!