• 名片管理系统


      设计名片管理系统,比如说,某公司员工名片信息管理系统,或者班级学生名片信息管理系统。

    要求:

      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("姓名	年龄	手机号	   地址")#打印全部信息的抬头
            for temp in card_infor:
                if temp['name']==get_name:
                    print("%s	  %d	%s	%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr']))
                    find_flag = 1
            if find_flag==0:
                print("查无此人...")
        #打印全部名片信息
        elif num==5:
            print("姓名	年龄	手机号	   地址")#打印全部信息的抬头
            #循环列表card_infor中的信息
            for temp in card_infor:
                print("%s	  %d	%s	%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr']))
        #退出系统
        elif num==6:
            print("你已经退出系统")
            break
        #输入操作序号错误
        else:
            print("输入有误,请重新输入操作序号...") 
    View Code

      第一种方法,程序看起来散乱,不够模块化,可以利用函数,把全部程序分成多个模块进行处理,请看第二种方法。

      第二种方法,运用列表和字典的增删改查功能,并且利用模块函数封装,全局变量,局部变量

    #运用列表字典的增删改查,使用模块函数封装,全局变量局部变量
    
    #存储全部的名片信息,全局变量
    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("姓名	年龄	手机号	   地址")#打印全部信息的抬头
        for temp in card_infor:
            if temp['name']==get_name:
                print("%s	  %d  	%s	%s"%(temp['name'],temp['age'],temp['Tel'],temp['addr']))
                find_flag = 1
        if find_flag==0:
            print("查无此人...")
            
    def all_name():
        '''完成打印全部的名片信息'''    #函数文档说明
        print("姓名	年龄	手机号	   地址")#打印全部信息的抬头
        #循环列表card_infor中的信息
        for temp in card_infor:
            print("%s	  %d	%s	%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()
    View Code

      执行结果:

    注:其中部分功能没有测试,同理可以测试其他功能

    所有内容,仅作参考,可能有不足或错误之处,欢迎留言批评指正
  • 相关阅读:
    struts2在result中使用el表达式碰到的问题
    JSP学习笔记—— jsp中include文件指令乱码的三种解决方案
    SSH整合,applicationContext.xml中配置hibernate映射文件问题
    struts上传文件失败 ContentType not allowed错误解决方法【转】
    mysql5 乱码问题解决方案
    java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决
    JQuery使用on绑定动态生成元素时碰到的问题
    Oracle异常处理
    C#窗口拦截键盘事件
    Oracle中动态SQL详解
  • 原文地址:https://www.cnblogs.com/DreamRJF/p/8735500.html
Copyright © 2020-2023  润新知