python学籍管理系统的三种实现

发布于:2023-07-04 ⋅ 阅读:(107) ⋅ 点赞:(0)

在这里插入图片描述

利用python编写学籍管理系统实现下图功能:

注:使用python3.x编写
在这里插入图片描述
所要实现的功能
1、能循环输入内容
2、展示功能

  • 1新增学生
  • 2显示全部
  • 3查询学生
  • 4退出系统

3、让用户输入希望执行的操作
4、新增列表

  • 提示用户输入姓名
  • 输入电话
  • 输入QQ号
  • 输入邮箱
  • 提示新增信息成功

5、显示全部

  • 将所有信息打印出来

6、查询学生
在这里插入图片描述
一、普通实现:

student = [{'姓名':'小明','电话':'666666','QQ':'222222','邮箱':'123@qq.com'}]
student1 = ['姓名','电话','QQ','邮箱']
while True:
    print('学籍管理系统')
    print('-'*50)
    print('1:新增学生',
          '2:显示全部',
          '3:查询学生',
          '4:退出系统')
    print('-'*50)
    dic={}
    sr = input('请输入所要执行的序号:')
    if sr == '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['电话'] = tel
                dic['QQ'] = QQ
                dic['邮箱'] = mail
                student.append(dic)#将字典添加到列表
                print('用户添加成功!')
            if sr == 2:
                for i in student1:
                    print(i.ljust(5), end='\t\t\t')#ljust左对齐
                print()
                for g in student:
                    for h in g.values():
                        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('请输入数字!!')

运行测试:
在这里插入图片描述
续!
在这里插入图片描述
二、函数实现:

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

def show_menu():
    """
    展示功能
    """
    print('学籍管理系统')
    print('-' * 50)
    print('1:新增学生',
          '2:显示全部',
          '3:查询学生',
          '4:退出系统',)
    print('-' * 50)

def add_student():
    """
    新增学员函数
    :return:
    """
    print('-' * 20 +'新增学员'+'-' * 20)
    dic = {}
    dic['name'] = input('请输入姓名:')
    dic['tel'] = input('请输入电话:')
    dic['QQ'] = input('请输入QQ:')
    dic['mail'] = input('请输入邮箱:')
    list1.append(dic)
    print('添加名片成功')

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

def refer_name():
    """
    查询学员信息
    :return:
    """
    print('-' * 20 +'查询学员'+'-' * 20)
    seek_name = input('请输入想要查询的名字:')
    for dic in list1:
        if seek_name == dic['name']:
            print3('姓名:{}\t\t\t电话:{}\t\t\tQQ:{}\t\t\t邮箱:{}\t\t\t'.format(dic['name'],
                                                            dic['tel'],dic['QQ'],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['tel'] = input_card_info(dic['tel'],'请输入新的电话:')
                     dic['QQ'] = input_card_info(dic['QQ'],'请输入新的QQ:')
                     dic['mail'] = input_card_info(dic['mail'],'请输入新的邮箱:')
                     print('修改成功')
                     return
                elif num == '2':
                    list1.remove(dic)
                    print('删除成功')
                    return
                elif num == '0':
                    return
            else:
                 print('输入有误')
        else:
            print('你输入的姓名不存在!')

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

while True:
    show_menu()
    xuhao = input('请输入想要执行的序号:')
    list = ['1','2','3','4']
    if xuhao in list:
        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('输入有误,请看清序号!')

网站公告

今日签到

点亮在社区的每一天
去签到