设计名片管理系统,比如说,某公司员工名片信息管理系统,或者班级学生名片信息管理系统。
要求:
1、系统可以添加新名片,包括名片姓名,年龄,手机号,地址信息。
2、系统可以删除旧名片,包括名片姓名,年龄,手机号,地址信息。
3、系统可以更改已有名片,包括名片姓名,年龄,手机号,地址信息。
4、系统可以查找已有名片,包括名片姓名,年龄,手机号,地址信息。
5、系统可以打印全部已有名片,包括名片姓名,年龄,手机号,地址信息。
6、系统可以随时退出。
7、系统可以重复操作,除非主动退出系统。
名片管理系统程序大框架:
#名片管理系统-大框架 #1、提示名片管理系统功能 print("="*50) print(" 名片管理系统v2.0") print("1:添加名片信息") print("2:删除名片信息") print("3:更改名片信息") print("4:查找名片信息") print("5:打印全部名片信息") print("6:退出系统") print("="*50) #2、选择获取操作系统功能 num = int(input("请输入需要的操作序号:")) #3、根据功能选择,执行系统操作 #添加名片信息 if num==1: pass #删除名片信息 elif num==2: pass #更改名片信息 elif num==3: pass #查找名片信息 elif num==4: pass #打印全部名片信息 elif num==5: pass #退出系统 elif num==6: pass #输入操作序号错误 else: pass
具体程序如下:
第一种方法,运用列表和字典的增删改查功能
#运用列表字典的增删改查 #1、提示名片管理功能 print("="*50) print(" 名片管理系统v2.0") print("1:添加名片信息") print("2:删除名片信息") print("3:更改名片信息") print("4:查找名片信息") print("5:打印全部名片信息") print("6:退出系统") print("="*50) #存储全部的名片信息 card_infor = [] while True: #2、获取用户操作信息 num = int(input("请输入需要的操作序号:")) #3、根据用户操作信息,执行程序 #添加名片信息 if num==1: new_name = input("请输入你的姓名:") new_age = int(input("请输入你的年龄:")) #判断输入手机号为11位号码 while True: new_tel = input("请输入你的手机号:") if len(new_tel)!=11: print("输入号码有误,请重新输入") else: break new_addr = input("请输入你的地址:") #存储新名片的信息 new_infor = {} new_infor['name'] = new_name new_infor['age'] = new_age new_infor['Tel'] = new_tel new_infor['addr'] = new_addr #存储新输入的名片信息 card_infor.append(new_infor) #print(card_infor) #for test #删除名片信息 elif num==2: del_name = input("请输入你要删除的名片姓名:") del_flag = 0 #用来标记 #循环查找需要删除的元素 for temp in card_infor: if del_name==temp.get('name'): card_infor.remove(temp)#删除要名片信息 print(card_infor) del_flag = 1#如果删除名片信息,标记赋值为1 #系统中不存在删除名片信息 if del_flag==0: print("系统中不存在此名片") #更改名片信息 elif num==3: alter_name = input("请输入要更改的名片姓名:") alter_flag = 0 #进行标记 for temp in card_infor: if alter_name==temp['name']: alter_flag = 1 #系统中名片姓名存在,标记赋值为1 #循环输入可能修改信息 while True: #输入需要更改的信息 alter = int(input("请输入你要更改的信息 0:name 1:age 2:Tel 3:addr 4:退出修改 ")) if alter==0: #修改姓名 temp['name'] = input("请输入你要修改的名字:") elif alter==1: #修改年龄 temp['age'] = int(input("请输入你要修改的年龄:")) elif alter==2:#修改手机号 #判断是否为11位号码 while True: temp['Tel']=input("请输入你要修改的手机号:") if len(temp['Tel'])!=11: print("输入修改手机号错误,请重新输入") else: break elif alter==3: #修改地址 temp['addr'] = input("请输入你要修改的地址:") elif alter==4: break else: #输入不是0 1 2 3 print("输入错误,请重新输入序号") if alter_flag==0: print("系统中不存在此名片") #print(card_infor) #for test #查找名片信息 elif num==4: get_name = input("请输入你要查找的名片姓名:") find_flag = 0 #用来计数 print("姓名\t年龄\t手机号\t 地址")#打印全部信息的抬头 for temp in card_infor: if temp['name']==get_name: print("%s\t %d\t%s\t%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr'])) find_flag = 1 if find_flag==0: print("查无此人...") #打印全部名片信息 elif num==5: print("姓名\t年龄\t手机号\t 地址")#打印全部信息的抬头 #循环列表card_infor中的信息 for temp in card_infor: print("%s\t %d\t%s\t%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr'])) #退出系统 elif num==6: print("你已经退出系统") break #输入操作序号错误 else: print("输入有误,请重新输入操作序号...")
第一种方法,程序看起来散乱,不够模块化,可以利用函数,把全部程序分成多个模块进行处理,请看第二种方法。
第二种方法,运用列表和字典的增删改查功能,并且利用模块函数封装,全局变量,局部变量
#运用列表字典的增删改查,使用模块函数封装,全局变量局部变量 #存储全部的名片信息,全局变量 card_infor = [] #1、提示名片管理功能 def print_menu(): '''完成提示名片管理系统的操作功能''' #函数文档说明 print("="*50) print(" 名片管理系统v2.0") print("1:添加名片信息") print("2:删除名片信息") print("3:更改名片信息") print("4:查找名片信息") print("5:打印全部名片信息") print("6:退出系统") print("="*50) def new_name(): '''完成添加新名片''' #函数文档说明 new_name = input("请输入你的姓名:") new_age = int(input("请输入你的年龄:")) #判断输入手机号为11位号码 while True: new_tel = input("请输入你的手机号:") if len(new_tel)!=11: print("输入号码有误,请重新输入") else: break new_addr = input("请输入你的地址:") #存储新名片的信息 #函数文档说明 new_infor = {} new_infor['name'] = new_name new_infor['age'] = new_age new_infor['Tel'] = new_tel new_infor['addr'] = new_addr #存储新输入的名片信息 card_infor.append(new_infor) #print(card_infor) #for test def del_name(): '''完成删除已有名片''' #函数文档说明 del_name = input("请输入你要删除的名片姓名:") del_flag = 0 #用来标记 #循环查找需要删除的元素 for temp in card_infor: if del_name==temp.get('name'): card_infor.remove(temp)#删除要名片信息 #print(card_infor) #for test del_flag = 1#如果删除名片信息,标记赋值为1 #系统中不存在删除名片信息 if del_flag==0: print("系统中不存在此名片") def alter_name(): '''完成更改名片的信息''' #函数文档说明 alter_name = input("请输入要更改的名片姓名:") alter_flag = 0 #进行标记 for temp in card_infor: if alter_name==temp['name']: alter_flag = 1 #系统中名片姓名存在,标记赋值为1 #循环输入可能修改信息 while True: #输入需要更改的信息 alter = int(input("请输入你要更改的信息 0:name 1:age 2:Tel 3:addr 4:退出修改 ")) if alter==0: #修改姓名 temp['name'] = input("请输入你要修改的名字:") elif alter==1: #修改年龄 temp['age'] = int(input("请输入你要修改的年龄:")) elif alter==2:#修改手机号 #判断是否为11位号码 while True: temp['Tel']=input("请输入你要修改的手机号:") if len(temp['Tel'])!=11: print("输入修改手机号错误,请重新输入") else: break elif alter==3: #修改地址 temp['addr'] = input("请输入你要修改的地址:") elif alter==4: break else: #输入不是0 1 2 3 print("输入错误,请重新输入序号") if alter_flag==0: print("系统中不存在此名片") #print(card_infor) #for test def find_name(): '''完成查找名片信息''' #函数文档说明 get_name = input("请输入你要查找的名片姓名:") find_flag = 0 #用来计数 print("姓名\t年龄\t手机号\t 地址")#打印全部信息的抬头 for temp in card_infor: if temp['name']==get_name: print("%s\t %d \t%s\t%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr'])) find_flag = 1 if find_flag==0: print("查无此人...") def all_name(): '''完成打印全部的名片信息''' #函数文档说明 print("姓名\t年龄\t手机号\t 地址")#打印全部信息的抬头 #循环列表card_infor中的信息 for temp in card_infor: print("%s\t %d\t%s\t%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr'])) def main_name(): '''完成对全部程序控制''' #函数文档说明 #调用打印功能提示函数 print_menu() #循环操作 while True: #2、获取用户操作信息 num = int(input("请输入需要的操作序号:")) #3、根据用户操作信息,执行程序 #添加新名片 if num==1: new_name() #调用添加名片函数 #删除名片 elif num==2: del_name() #调用删除名片函数 #更改名片信息 elif num==3: alter_name() #调用更改名片函数 #查找名片 elif num==4: find_name() #调用查找名片函数 #打印全部名片信息 elif num==5: all_name() #调用全部名片信息函数 #退出系统 elif num==6: print("你已经退出系统") break #操作序号有误 else: print("输入有误,请重新输入操作序号...") #调用主函数 main_name()
执行结果:
注:其中部分功能没有测试,同理可以测试其他功能