python综合应用_班级管理系统

建立一个名片管理系统,要求:
1)输入1—>新添学生信息
新增的名片信息为:姓名,电话,QQ,邮箱
2)输入2—>显示全部信息
显示所有学生信息,如果没有名片信息提示用户添加
3)输入3—>查询学生信息
输入要查找的姓名,查询到之后选择删除或者修改,如果直接回车没有修改,就保持学生原来的信息,如果没有搜索到,需要提示用户
4)输入0—>退出管理系统
具体操作:
建立cards_main文件:整体系统的框架

import cards_tools
while True:
    cards_tools.menu()
    action = raw_input('请输入您要执行的操作:')
    print '您选择的操作是[%s]' % action
    if action in ['1','2','3']:
        if action == '1':
            cards_tools.new_card()
        elif action == '2':
            cards_tools.show_all()
        elif action == '3':
            cards_tools.search_card()
    elif action == '0':
        print '欢迎再次使用'
        break
    else:
        print '您输入的不正确,请重新输入:'

建立cards_tools文件:系统功能存放处

card_list = []
def menu():
    print '欢迎使用【班级管理系统】'
    print '*' * 50
    print '1.新添学生信息'
    print '2.显示全部信息'
    print '3.查询学生信息'
    print '0.退出管理系统'
    print '*' * 50

def new_card():
    """新增学生信息"""
    print '-' * 50
    print '新增名片'
    # 1.提示用户输入学生的详细信息
    name_str = raw_input('请输入姓名:')
    phone_str = raw_input('请输入电话:')
    qq_str = raw_input('请输入QQ:')
    email_str = raw_input('请输入邮箱:')

    # 2.使用用户输入的信息建立一个名片字典
    card_dict = {'name_str': name_str,
                 'phone_str': phone_str,
                 'qq_str': qq_str,
                 'email_str': email_str}

    # 3.将名片字典添加到列表中
    card_list.append(card_dict)  # 把一个字典追加到一个列表中
    print card_list
    # 4.提示用户添加成功
    print '添加%s 的名片成功' % name_str


def show_all():
    """显示所有信息"""
    print '-' * 50
    print '显示所有信息'

    # 判断是否存在名片记录,如果没有,提示用户并且返回
    if len(card_list) == 0:
        print '当前没有任何的信息记录,请使用新增功能添加学生信息'
        # return 可以返回一个函数的执行结果
        # 下方的代码不会被执行
        # 如果return后面没有任何的内容,表示会返回到调用函数的位置
        # 并且不返回任何结果
        return
    # 打印表头
    for name in ["姓名", "电话", "QQ", "邮箱"]:
        print name,
    print ''
    # 打印分隔线
    print '=' * 50

    # 遍历名片列表依次输出字典信息
    for card_dict in card_list:
        # print card_dict
        print '%s\t\t%s\t\t%s\t\t%s' % (card_dict['name_str'],
                                        card_dict['phone_str'],
                                        card_dict['qq_str'],
                                        card_dict['email_str'])


def search_card():
    """搜索学生信息"""
    print '-' * 50
    print '搜索名片'

    # 1.提示用户输入要搜索的姓名
    find_name = raw_input('请输入要搜索的姓名:')
    # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
    for card_dict in card_list:
        if card_dict['name_str'] == find_name:
            print '姓名 电话 QQ 邮箱'
            print '=' * 50
            print '%s %s %s %s' % (card_dict['name_str'],
                                   card_dict['phone_str'],
                                   card_dict['qq_str'],
                                   card_dict['email_str'])

            # TODO 针对找到的名片记录执行修改和删除的操作
            # 在我们的日常编写程序中,如果一个函数的代码太多,阅读和编写都是一件困难的事情,而在开发中,可以针对一个具体独立的功能来封装一个函数,由这个函数来处理具体的操作,这样就能保证每个函数中的代码清晰明了,功能明确
            deal_card(card_dict)
            break

        else:
            print '抱歉,没有找到%s' % find_name


def deal_card(find_dict):
    print find_dict
    action_str = raw_input('请选择要执行的操作 '
                           '[1] 修改 [2] 删除 :')
    # 替换已经存在的键值对
    if action_str == '1':
        find_dict['name_str'] = input_card_info(find_dict['name_str'], '姓名:')
        find_dict['phone_str'] = input_card_info(find_dict['phone_str'], '电话:')
        find_dict['qq_str'] = input_card_info(find_dict['qq_str'], 'QQ:')
        find_dict['email_str'] = input_card_info(find_dict['email_str'], '邮箱:')

        print '修改信息成功!!!'
    elif action_str == '2':

        card_list.remove(find_dict)

        print '删除信息成功!!!'

def input_card_info(dict_value, tip_message):


    """
    :param dict_value:字典中原有的值
    :param tip_message:输入的提示文字
    :return:如果用户输入了内容,就返回内容,否则返回字典中原有的值
    """
    # 1.提示用户输入内容

    result_str = raw_input(tip_message)
    # 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:
        return result_str
    # 3.如果用户没有输入内容,返回‘字典中原有的值’
    else:
        return dict_value

运行结果:
1.新增学生信息
python综合应用_班级管理系统_第1张图片
2.显示全部信息
python综合应用_班级管理系统_第2张图片
3.搜索学生信息并修改姓名
python综合应用_班级管理系统_第3张图片
查看是否修改成功
python综合应用_班级管理系统_第4张图片
4.搜索学生信息并删除
python综合应用_班级管理系统_第5张图片
5.显示所有信息
python综合应用_班级管理系统_第6张图片
6.退出系统
python综合应用_班级管理系统_第7张图片

你可能感兴趣的:(python综合应用_班级管理系统)