这几天在学javaweb没有什么好的案例,这是我一年前python大作业写的答优代码,勉强拿了90分,答辩和报告书写的不怎么好。老师这方面扣分比较严重。这里我发上来给初学者观看,也是一些基础的语法,没有用到数据库之类的。只是按照作业要求完成了对名片管理系统的增删改查操作。不过在此基础上我添加了一些新的功能,比如添加加载进度条、还有以文件的形式保存数据,等。下面我一个功能一个功能的讲述一下。这几天没素材发,翻出来以前的代码顺便看看,回顾一下知识点,顺便发上来分享给大家。
通过本项目的学习,学员可以了彩项目开发的流程,掌握项目需求分析、设计与功能的代码实现。提高同学们独立分析需求与功能实现的能力。
项目知识点:变量、流程控制、函数、惯块等python基中常用的知识点。使用python设计一个名片管理系统,能提供下列服务:
1.程序启动,显示名片曾理系统欢迎界面,并显示功能菜单。
2.用户用数字选择不同的功能。
3.根据功能选择,执行不同的动能。
4.用户名片需要记录用户的姓名、电话、QQ、邮件。
5.如果查询到指定的名片,用户可以选择修改或者删除名片。
首先是加载页面,引入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("")
这个就是要封装起来放到主页面main的while循环里,每次执行完功能都会重新展示一遍,交互性好些。当然,在执行while循环前也得显示一遍让用户进行选择相应的操作。
def function():#功能页面
print("您已进入名片管理系统".center(50,"="))
print("【1】新建名片")
print("【2】查询名片")
print("【3】删除名片")
print("【4】修改名片")
print("【5】显示全部名片")
print("【6】保存名片数据")
print("【7】退出系统")
这里也是创建了一个集合,用来放用户信息的键值对,把用户输入的信息保存起来,存放一个用户的信息。然后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("")
用户输入完查询的用户名字后,用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("")
这个也是先查找,找到了才能进行删除。用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("")
这个也是先查找,找到的话让用户重新输入修改后的值,然后重新赋值给要修改的用户信息就可以。
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("")
创建了一个文本文件,将数据用write()方法写进去。
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()
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, "*"))
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()
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,等学的差不多我会做几个案例发上来分享给大家的。