python 学籍管理系统的简单实现

所要实现的功能:

功能:
1.能循环输入内容
2.展示功能
  -1.新增名片
  -2.显示全部
  -3.查询名片
  -0.退出系统
3.让用户输入希望执行的操作 例如输入1,2,3,0
4.新增列表
  - 提示用户输入姓名,
  - 输入电话
  - 输入qq号
  - 输入邮箱
  - 提示新增名片成功。
5.显示全部
  - 将所有的名片打印出来,格式如下:
  姓名         电话       QQ               邮箱
  zs         110          1337765076       [email protected]

6.查询名片
  - 提示请输入要搜索查找用户的姓名
    - 如果用户存在--->显示用户的信息
      -提示用户【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。
        -修改操作,可以修改用户名,电话,qq、邮箱。
        - 删除操作,将用户删除。
        - 返回上一级操作,回到欢迎界面,让用户继续操作。

    - 如果用户不存在-->提示查找的用户不存在。

普通方式:

student = [{'姓名': '小明', "电话": "1234", 'QQ': '1234234', '邮箱': '34567'}]
student1 = ['姓名', '电话', 'QQ', '邮箱']
while True:
    print('-' * 40)
    print('1:新增名片',
          '2:显示全部',
          '3:查询名片',
          '4:退出系统')
    print('-' * 40)
    dic = {}
    sr = input('请输入所要执行的序号:')
    if sr == '4':  # 当输入的序号为4时退出程序
        print('程序退出中^^^^^')
        break
    if sr.isdigit():  # 判断输入的是否是数字
        sr = int(sr)
        if 0 < sr < 4:  # 判断输入的数字是否查出范围
            if sr == 1:
                name = input('请输入姓名:')
                tel = input('请输入电话:')
                QQ = input('请输入QQ号:')
                mail = input('请输入邮箱:')
                dic['姓名'] = name
                dic['姓名'] = name
                dic['电话'] = tel
                dic['QQ'] = QQ
                dic['邮箱'] = mail
                student.append(dic)  # 将字典添加到列表中
                print('用户添加成功啦!')
            if sr == 2:
                for i in student1:  # 便利student1 以便于当信息没有时只输出student1中的内容
                    print(i.ljust(5), end='\t\t\t') # ljust左对齐
                print()
                for g in student:
                    for h in g.values():  # 便利列表student列表中字典的value值
                        print(h.ljust(5), end='\t\t\t')
                    print()
                continue
            if sr == 3:
                cz = input('请输入所要查询的姓名:')
                for a in range(0, len(student)):  # 查看student中字典存在个数
                    if student[a]['姓名'] == cz:  # 当输入的姓名和字典中姓名一样,就往下执行
                        print('姓名:{} 电话:{} QQ: {} 邮箱:{}'.format(student[a]['姓名'], student[a]['电话'],
                                                                student[a]['QQ'], student[a]['邮箱']))
                        print('【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。')
                        caozuo = input('请输入你要执行操作的序号:')
                        if caozuo == '0':
                            print('正在返回上一级菜单。')
                            break
                        if caozuo == '1':
                            new_name = input('请输入新的姓名:')
                            new_tel = input('请输入新的电话:')
                            new_qq = input('请输入新的QQ:')
                            new_mail = input('请输入新的邮箱:')
                            student[a]['姓名'] = new_name
                            student[a]['电话'] = new_tel
                            student[a]['QQ'] = new_qq
                            student[a]['邮箱'] = new_mail
                            print('修改成功!!')
                        if caozuo == '2':
                            del student[a]
                            print('删除成功##')
                    elif a == len(student) - 1:
                        print('输入的姓名不存在')
        else:
            print('请看清范围在输入...')
    else:
        print('请输入数字!!')

函数实现:

lst1 = []  # 保存所有学员信息


def show_menu():
    """
    展示功能
    """
    print('-' * 40)
    print('1:新增名片',
          '2:显示全部',
          '3:查询名片',
          '4:退出系统')
    print('-' * 40)


def add_student():
    """
    新增学员函数
    """
    print('-----------新增名片---------------')
    dic = {}
    dic['name'] = input('请输入姓名:')
    dic['age'] = input('请输入年龄:')
    dic['tel'] = input('请输入电话:')
    dic['mail'] = input('请输入邮箱:')
    lst1.append(dic)
    print('添加名片成功!')


def show_student():
    """
    显示所有学员信息
    """
    print('------------显示所有名片内容--------------')
    if not lst1:
        print('还没有添加学员。')
        return
    for i in ['姓名', '年龄', '电话', '邮箱']:
        print(i, end='\t\t\t')
    print()
    for dic in lst1:
        name = dic['name']
        age = dic['age']
        tel = dic['tel']
        mail = dic['mail']
        print('{}\t\t\t{}\t\t\t{}\t\t\t{}\t\t\t'.format(name, age, tel, mail))


def refer_name():
    """
查询学员信息
    """
    print('-------------查询名片--------------')
    seek_name = input('请输入想要查询的名字:')
    for dic in lst1:
        if seek_name == dic['name']:
            print('姓名:{}\t\t\t年龄:{}\t\t\t电话:{}\t\t\t邮箱:{}\t\t\t'.format(dic['name'], dic['age'], dic['tel'],
                                                                        dic['mail']))
            print('【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。')
            num = input('请输入操作的序号:')
            if num in ['1', '2', '0']:
                if num == '1':
                    dic['name'] = input_card_info(dic['name'], '请输入新姓名:')
                    dic['age'] = input_card_info(dic['age'], '请输入新年龄:')
                    dic['tel'] = input_card_info(dic['tel'], '请输入新电话:')
                    dic['mail'] = input_card_info(dic['mail'], '请输入新邮箱:')
                    print('修改成功!')
                    return
                elif num == '2':
                    lst1.remove(dic)
                    print('删除成功!')
                    return
                elif num == '0':
                    return
            else:
                print('输入有误。')

    else:
        print('你输入的姓名不存在!')


def input_card_info(dic_value, tip_massage):
    """判断用户是否输入了内容"""
    # 1.提示用户输入内容
    result_str = input(tip_massage)
    # 2.针对用户输入的进行判断,如果输入,直接返回结果
    if len(result_str) > 0:
        return result_str
    # 3.如果没有输入内容将会返回原来内容
    else:
        return dic_value


while True:
    show_menu()
    xuhao = input('请输入想要执行的序号:')
    lst = ['1', '2', '3', '4']
    if xuhao in lst:
        if xuhao == '1':
            add_student()
        elif xuhao == '2':
            show_student()
        elif xuhao == '3':
            refer_name()
        elif xuhao == '4':
            print('程序退出中--->盘它')
            break
    else:
        print('输入有误,请看清序号!')

面向对象实现:

class StudentManage(object):
    lst1 = []  # 保存所有学员信息

    @staticmethod
    def show_menu():
        """
        展示功能
        """
        print('-' * 40)
        print('1:新增名片',
              '2:显示全部',
              '3:查询名片',
              '4:退出系统')
        print('-' * 40)

    def add_student(self):
        """
        新增学员函数
        """
        print('-----------新增名片---------------')
        dic = {}
        dic['name'] = input('请输入姓名:')
        dic['age'] = input('请输入年龄:')
        dic['tel'] = input('请输入电话:')
        dic['mail'] = input('请输入邮箱:')
        self.lst1.append(dic)
        print('添加名片成功!')

    def show_student(self):
        """
        显示所有学员信息
        """
        print('------------显示所有名片内容--------------')
        if not self.lst1:
            print('还没有添加学员。')
            return
        for i in ['姓名', '年龄', '电话', '邮箱']:
            print(i, end='\t\t\t')
        print()
        for dic in self.lst1:
            name = dic['name']
            age = dic['age']
            tel = dic['tel']
            mail = dic['mail']
            print('{}\t\t\t{}\t\t\t{}\t\t\t{}\t\t\t'.format(name, age, tel, mail))

    def refer_name(self):
        """
    查询学员信息
        """
        print('-------------查询名片--------------')
        seek_name = input('请输入想要查询的名字:')
        for dic in self.lst1:
            if seek_name == dic['name']:
                print('姓名:{}\t\t\t年龄:{}\t\t\t电话:{}\t\t\t邮箱:{}\t\t\t'.format(dic['name'], dic['age'], dic['tel'],
                                                                            dic['mail']))
                print('【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作。')
                num = input('请输入操作的序号:')
                if num in ['1', '2', '0']:
                    if num == '1':
                        dic['name'] = self.input_card_info(dic['name'], '请输入新姓名:')
                        dic['age'] = self.input_card_info(dic['age'], '请输入新年龄:')
                        dic['tel'] = self.input_card_info(dic['tel'], '请输入新电话:')
                        dic['mail'] = self.input_card_info(dic['mail'], '请输入新邮箱:')
                        print('修改成功!')
                        return
                    elif num == '2':
                        self.lst1.remove(dic)
                        print('删除成功!')
                        return
                    elif num == '0':
                        return
                else:
                    print('输入有误。')

        else:
            print('你输入的姓名不存在!')

    def input_card_info(self, dic_value, tip_massage):
        """判断用户是否输入了内容"""
        # 1.提示用户输入内容
        result_str = input(tip_massage)
        # 2.针对用户输入的进行判断,如果输入,直接返回结果
        if len(result_str) > 0:
            return result_str
        # 3.如果没有输入内容将会返回原来内容
        else:
            return dic_value


while True:

    StudentManage.show_menu()
    student = StudentManage()
    xuhao = input('请输入想要执行的序号:')
    lst = ['1', '2', '3', '4']
    if xuhao in lst:
        if xuhao == '1':
            student.add_student()
        elif xuhao == '2':
            student.show_student()
        elif xuhao == '3':
            student.refer_name()
        elif xuhao == '4':
            print('程序退出中--->盘它')
            break
    else:
        print('输入有误,请看清序号!')

 

你可能感兴趣的:(习题,python,学籍管理系统)